Wykład 0

Transkrypt

Wykład 0
Spis treści
Spis treści
1
Poszukiwanie pomocy
2
Powłoka bash i konsola tekstowa
2.1 Uruchamianie programów, skrypty . . . . . . .
2.2 Przekierowanie wejścia i wyjścia, potoki i listy
2.3 Polecenia złożone . . . . . . . . . . . . . . . .
2.4 Instrukcje warunkowe, p˛etle, funkcje . . . . . .
2.5 Podstawienia . . . . . . . . . . . . . . . . . .
1
.
.
.
.
.
2
3
4
5
6
7
3
System plików
3.1 Ścieżki, specjalne katalogi, symbole wieloznaczne . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 System uprawnień . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Struktura katalogów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
9
4
Podstawowe komendy
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
Poszukiwanie pomocy
Poszukiwanie pomocy
• Opcja --help lub -h — krótka ściaga
˛ na temat dost˛epnych opcji i składni polecenia
• Polecenie man (manual - podr˛ecznik)
Wywołanie: man polecenie
• Polecenie info — rozbudowane podr˛eczniki
• Google (!)
Klawisze używane w programie man
spacja stron˛e niżej
PgUP, PgDown strona do góry/w dół
g przewija na poczatek
˛
G przewija na koniec
/ wyszukiwanie
n nast˛epne wystapienie
˛
(w kierunku końca)
N poprzednie wystapienie
˛
(w kierunku poczatku)
˛
q wyjście
Wi˛ecej informacji można znaleźć w podr˛ecznikach man man oraz man less 1 .
1 Program
.
.
.
.
.
man korzysta z usług programu dzielacego
˛
na strony (pagera). Najcz˛eściej jest to less, ale nie jest to jedyna możliwość.
1
Cz˛eści podr˛ecznika man
1. Programy wykonywalne i polecenia powłoki
2. Wywołania systemowe (funkcje udost˛epnianie przez jadro)
˛
3. Funkcje biblioteczne
4. Pliki specjalne
5. Formaty plików, konwencje
6. Gry
7. Różne
8. Administracja systemem
9. Niestandardowe funkcje jadra
˛
Konwencje przyj˛ete w podr˛ecznikach systemowych
pogrubienie
(pojaśnienie)
kursywa
(podkreślenie)
[-abc]
-a|-b
argument ...
[wyrażenie] ...
2
wpisać dokładnie jak pokazano
zastapić
˛ właściwym argumentem
argumenty opcjonalne - dowolna kombinacja lub żaden
alternatywa wykluczajaca
˛ (XOR)
argument jest powtarzalny
wyrażenie jest powtarzalne
Powłoka bash i konsola tekstowa
Klawiatura w powłoce systemowej
enter zatwierdzenie komendy
delete kasuje znal z prawej strony kursora
backspace kasuje znak z lewej strony kursora
tab dopełnienie nazwy polecenia lub nazwy pliku/katalogu
↑↓ przemieszczenie kursora; w linii komend poprzedni/nast˛epny wiersz w historii
←→ przemieszczenie kursora
CTRL + c przerwanie bieżacej
˛ komendy
CTRL + d koniec wejścia
CTRL + z zawieszenie wykonywania programu2
2 Wi˛
ecej
na ten temat w man bg i man bg
2
2.1
Uruchamianie programów, skrypty
Wydawanie poleceń w powłoce systemowej
Składnia
polecenie opcje argumenty
• Opcje (parametry) modyfikuja˛ działanie polecenia
• Argumenty zwykle nazwa pliku lub inny łańcuch znaków na którym wykonywane jest działanie
Uwaga!
W przeciwieństwie do systemu Windows, systemy z rodziny Unix rozróżniaja˛ wielkie i małe litery.
Uruchamianie programów
• Plik programu musi mieć nadany atrybut wykonywalności:
chmod a+x plik_programu
• Jeśli program znajduje si˛e w ścieżce przeszukiwania, uruchamiamy go wpisujac
˛ nazw˛e:
firefox
• Jeśli katalog, w którym znajduje si˛e plik wykonywalny lub zależy nam na wykonaniu programu znajdujacego
˛
si˛e w specyficznej lokalizacji, konieczne jest podanie ścieżki bezwzgl˛ednej lub wzgl˛ednej:
/usr/local/bin/firefox
./firefox
Opcje poleceń i programów
• Wersja krótka (jednoliterowe) – poprzedzone znakiem – jeśli nie wymagaja˛ podania wartości – można łaczyć
˛
ls -al jest równoważne ls -a -l
– zwykle kolejność liter nie ma znaczenia
– wartość parametru nast˛epuje po stosownej literze, oddzielona spacja˛
ls -w 50
• Wersja długa (wi˛ecej niż jedna litera) – poprzedzone -– nie można łaczyć
˛
ls --all --size --human-readable
– wartość parametru podaje si˛e po znaku równości
ls --width=50
• Bardzo cz˛esto opcje w wersji długiej maja˛ krótkie odpowiedniki:
ls --all --size --human-readable
ls -ash
3
Skrypty powłoki
Skrypt jest plikiem tekstowym zawierajacym
˛
ciag
˛ poleceń wykonywanych wsadowo przez powłok˛e.
• Pierwsza linia zawiera specyfikacj˛e użytego interpretera poleceń – w naszym przypadku jest to bash
#!/bin/bash
• Tekst na prawo od symbolu # traktowany jest jako komentarz
• Nast˛epne wiersze zawieraja˛ polecenia
• Jeśli linia polecenia jest zbyt długa, na jej końcu stawiamy znak \(backslash) i kontynuujemy polecenie w nast˛epnej linii
• Składnia, konstrukcje sterujace
˛ oraz wykorzystanie zmiennych opisane sa˛ w podr˛eczniku.
2.2
Przekierowanie wejścia i wyjścia, potoki i listy
Przekierowanie wejścia/wyjścia 1/3
stdin — standardowe wejście — zwykle klawiatura
stdout — standardowe wyjście — zwykle ekran terminala
stderr — Standardowe wyjście bł˛edów — zwykle ekran terminala
Przekierowanie wejścia/wyjścia 2/3
Przekierowanie standardowego wejścia:
• Przekierowanie pliku na standardowe wejście:
mail user < tresc_listu
• Przekierowanie nast˛epnych linii na standardowe wejście:
main [email protected] << END
Witam,
Prosz˛
e zgłosić si˛
e jutro do administratora
Z poważaniem,
Administrator
END
Przekierowanie wejścia/wyjścia 3/3
Przekierowanie standardowego wyjścia:
• Z nadpisaniem istniejacego
˛
pliku:
ls -al > listing.txt
• Z dopisaniem na końcu istniejacego
˛
pliku:
cat plik1 >> plik2
Przekierowanie standardowego wyjścia bł˛edów:
• Przekierowanie stderr do pliku:
cp -a /home/user /backups 2> error.log
• Przekierowanie stdout i stderr do pliku:
find ./ -iname "*ala*" &> plik
4
Potok
[time [-p]] [ ! ] polecenie [ | polecenie2 ... ]
• time podaje czas wykonania potoku
• każde polecenie wykonywane jest w oddzielnej powłoce
• jeśli jest obecny symbol ! to kod zakończenia jest negowany
Listy
• Lista jest potokiem lub sekwencja˛ kilku potoków rozdzielonych operatorem
• Operatory:
; polecenia zostana˛ wykonane sekwencyjnie
& polecenie zostanie wykonane w tle bez oczekiwania na zakończenie
&& lista typu AND
|| lista typu OR
Listy
• Lista typu AND:
polecenie && polecenie2
Polecenie 2 zostanie wykonane wtedy i tylko wtedy, kiedy kod zakończenia pierwszego polecenia b˛edzie równy
0
• Lista typu OR:
polecenie || polecenie2
Polecenie 2 zostanie wykonane wtedy i tylko wtedy, kiedy kod zakończenia pierwszego polecenia b˛edzie różny
od 0
2.3
Polecenia złożone
Polecenia złożone
(lista) lista wykonywana jest w podpowłoce
{ lista; } grupowanie poleceń
((wyrażenie)) obliczanie wartości wyrażenia arytmetycznego
[[ wyrażenie ]] zwraca kod 0 lub 1 w zależności od wartości logicznej wyrażenia
Zasady obliczania wyrażeń arytmetycznych oraz warunkowych opisano w podr˛eczniku man bash
5
2.4
Instrukcje warunkowe, p˛etle, funkcje
Instrukcja if
if lista; then lista;
[ elif lista; then lista; ] ...
[ else lista; ]
fi
Instrukcja case
case słowo in
[ [(] wzorzec [ | wzorzec ] ... ) lista ;; ] ...
esac
Słowo jest porównywane ze wzorcem, jeśli do siebie pasuja˛ - wykonana zostanie odpowiednia lista.
P˛etla for
for nazwa [ in słowo ] ; do
lista ;
done
P˛etla for Składnia alternatywna
for (( wyr1 ; wyr2 ; wyr3 )) ; do
lista ;
done
P˛etle while i until
• P˛etla while jest wykonywana dopóki warunek jest spełniony
while lista; do
lista;
done
• P˛etla until jest wykonywana dopóki warunek jest niespełniony
until lista; do
lista;
done
Deklaracja funkcji
• Deklaracja funkcji: [ function ] nazwa () { lista; }
– return – zakończenie wykonywania funkcji
– local – definicja zmiennych lokalnych
Wi˛ecej w podr˛eczniku man bash
• Wywołanie funkcji: nazwa [parametr] ...
6
2.5
Podstawienia
Podstawienia
• Podstawienie zawartości zmiennej: $nazwa lub ${nazwa} Nawiasy klamrowe sa˛ obowiazkowe,
˛
jeśli nazwa
jest parametrem pozycyjnym o wi˛ecej niż jednej cyfrze lub nast˛epny znak byłby interpretowany jako wchodzacy
˛
w skład nazwy.
• Podstawienie wyniku polecenia: $(polecenie) lub ‘polecenie‘
• Podstawienie wartości wrażenia arytmetycznego: $((wyrażenie)) Wi˛ecej w podr˛eczniku man bash
3
System plików
3.1 Ścieżki, specjalne katalogi, symbole wieloznaczne
Katalogi i ścieżki — terminologia 1/3
Ścieżka dost˛epu (nazwa ścieżki)
Opisuje położenie pliku w systemie plików
• Ścieżka bezwzgl˛edna - w stosunku do korzenia systemu plików
– W systemie Unix - zaczyna si˛e znakiem /
/usr/share/vim
– W systemie Windows - zaczyna si˛e litera˛ dysku
c:\widows\user.dat
• Ścieżka wzgl˛edna - w stosunku do katalogu bieżacego
˛
– ./ - katalog bieżacy
˛
– ../ - katalog poziom wyżej
Katalogi i ścieżki — terminologia 2/3
Katalog bieżacy
˛ (roboczy)
Katalog wskazany w ostatnim poprawnie wykonanym poleceniu zmiany katalogu lub ustalony domyślnie w środowisku zadania.
• W systemie Unix: pwd
• W systemie Windows: cd (bez parametru)
Katalogi i ścieżki — terminologia 3/3
Ścieżka przeszukiwania
Ciag
˛ katalogów przeszukiwany w celu odnalezienia nazwy programu do wykonania.
• zmienna środowiskowa PATH
echo $PATH
Separator ścieżki
• W systemie UNIX — / (slash)
• W systemie Windows — \ (backslash)
7
Symbole wieloznaczne
* zast˛epuje dowolny ciag
˛ (0 lub wi˛ecej) znaków
? zast˛epuje dokładnie jeden znak
• ls
a
aa
aaa
abc
adca
caa
bdc
• ls *c*
abc
adca
caa
bdc
• ls a?c
abc
bdc
3.2
System uprawnień
Kontrola dost˛epu
• W systemie Unix/Linux implementowane sa˛ mechanizmy kontroli dost˛epu do plików
• Prawa określane sa˛ dla właściciela (user), grupy (group) i pozostałych użytkowników (other)
• Typy praw dost˛epu:
read (numerycznie - 4) odczyt pliku,
wyświetlenie zawartości katalogu
write (numerycznie - 2) zapis/zmiana pliku,
tworzenie plików w katalogu
execute (numerycznie 1) wykonanie pliku,
wejście do katalogu
Kontrola dost˛epu ciag
˛ dalszy
• Dodatkowe prawa - pliki wykonywalne:
– Set User ID (suid) – program b˛edzie wykonywany na prawach właściciela a nie uruchamiajacego
˛
– Set Group ID (sgid) – program b˛edzie wykonywany na prawach grupy właściciela
– Sticky Bit – obecnie niewykorzystywany
Ignorowane w przypadku skryptów
• Dodatkowe prawa - katalogi:
– Set User ID (suid) – ignorowany
– Set Group ID (sgid) – utworzone pliki/katalogi b˛eda˛ należały do tej samej grupy co katalog
– Sticky Bit – utworzone pliki/katalogi b˛eda˛ mogły być usuni˛ete tylko przez właściciela
8
Prawa dost˛epu do plików
u
g
- r w x r - r w x - - r w - r - r w s r d r w x r w
d r w x r w
4 2 1 4 2
3.3
x
x
s
x
1
r
r
r
4
o
w
w
2
x
x
x
t
1
numerycznie
751
700
640
4755
2777
1777
Struktura katalogów
Podstawowe katalogi
/ “korzeń” systemu plików
/bin także /usr/bin, programy wykonywalne
/etc pliki konfiguracyjne
/home katalogi domowe użytkowników
/lib biblioteki systemowe
/mnt montowane dodatkowe systemy plików
/opt dodatkowe oprogramowanie
/sbin także /usr/sbin, narz˛edzia administracyjne
/srv pliki serwerów usług
/tmp katalog tymczasowy
/usr oprogramowanie
/var logi, cache, kolejki itp.
Opcjonalne i nie zawsze dost˛epne
/boot jadro
˛ systemu wraz z przyległościami
/dev pliki urzadzeń
˛
/lib32 biblioteki systemowe - wersje 32bit
/lib64 biblioteki systemowe - wersje 64bit
/lost+found uratowane fragmenty plików3
/media nośniki wymienne
/proc wirtualny system plików - m. in. informacje o procesach
/root katalog domowy administratora
/sys wirtualny system plików - parametry jadra
˛
3 Zakładany
w korzeniu każdego systemu plików
9
(suid)
(sgid)
(sticky bit)
4
Podstawowe komendy
Poruszanie si˛e po systemie plików
ls wyświetl zawartość kartoteki
• format długi:
ls -l
• z plikami ukrytymi:
ls -a
pwd wyświetl ścieżk˛e kartoteki roboczej
cd zmień katalog
• powrót do katalogu domowego:
cd
cd ~/
• przejście katalog wyżej:
cd ..
Operacje na plikach i katalogach
mkdir utwórz katalog
rmdir usuń katalog (pusty!)
rm usuń plik
mv przenieś, zmień nazw˛e
cp skopiuj
touch utwórz plik / ustaw dat˛e pliku
ln tworzenie dowiazań
˛
chmod zmiana uprawnień
chown zmiana właściciela
chgrp zmiana grupy
Wyświetlanie zawartości pliku
cat wypisz zawartość pliku (plików) na standardowe wyjście
more wyświetl zatrzymujac
˛ si˛e po każdej stronie
less wyświetl z możliwościa˛ przewijania (i nie tylko!)
head wyświetl poczatek
˛ pliku
tail wyświetl koniec pliku
pr wyświetl przygotowujac
˛ do wydruku
pg wyświetl z podziałem na strony
grep wyświetl linie pasujace
˛ do wzorca
file identyfikacja plików
10
Procesy
ps lista procesów
top lista procesów z uwzgl˛ednieniem wykorzystania zasobów
bg wznów zatrzymany proces w tle
fg wznów zatrzymany proces
jobs lista zatrzymanych procesów
kill zabij proces (prześlij sygnał do procesu)
killall zabij wszystkie procesy
& uruchom proces w tle
acroread Wyklad.pdf &
Kim jestem, gdzie jestem, która godzina
whoami wypisuje nazw˛e użytkownika
who lista zalogowanych użytkowników
id zwraca identyfikator użytkownika i grup do których należy
date wypisuje/ustawia dat˛e i godzin˛e
df ilość wolnego miejsca w systemie plików
du ilość zaj˛etego miejsca w katalogu
uname informacje o systemie
whereis informacja o położeniu pliku wykonywalnego
which wskazanie, który plik wykonywalny jest pierwszy w ścieżce wyszukiwania
Garść ciekawych narz˛edzi
find “kombajn” do wyszukiwania plików
mc narz˛edzie do zarzadzania
˛
plikami
vim edytor tekstu
nano edytor tekstu
sed edytor wierszowy
11

Podobne dokumenty