Page 1


Linux. Komendy i polecenia. Wydanie III Autor: £ukasz Sosna ISBN: 978-83-246-2602-1 Format: 115×170, stron: 144

Odkryj wielk¹ si³ê drzemi¹c¹ w Linuksie! • Jak zainstalowaæ Linux i zarz¹dzaæ zasobami komputera z tym systemem? • Co trzeba wiedzieæ o administrowaniu systemem i tworzeniu skryptów pow³oki? • Jakie dodatkowe komendy i polecenia warto poznaæ w pierwszej kolejnoœci? Linux, jeden z najbardziej znanych i wydajnych systemów operacyjnych, wœród wielu u¿ytkowników komputerów powoli staje siê realn¹ alternatyw¹ dla Windows. Pomijaj¹c ju¿ nawet jego niesamowit¹ elastycznoœæ, ma³e wymagania i œwietnie dzia³aj¹c¹ spo³ecznoœæ, otwart¹ na potrzeby nowych cz³onków, atutem Linuksa jest mo¿liwoœæ sterowania nim z poziomu wiersza poleceñ, co wydatnie skraca czas operacji i pozwala na pe³n¹ kontrolê pracy. Taka komunikacja z systemem jest najefektywniejszym rozwi¹zaniem i wbrew pozorom wcale nie wymaga od u¿ytkownika znajomoœci ¿adnej czarnej magii. Dziœ do Twoich r¹k trafia trzecie ju¿, uzupe³nione o nowy rozdzia³ wydanie popularnej ksi¹¿ki „Linux. Komendy i polecenia”, niezwykle przydatnej pocz¹tkuj¹cym adeptom tego systemu. Znajdziesz w niej wszystko, co trzeba wiedzieæ podczas obs³ugi Linuksa z poziomu linii poleceñ — od kwestii instalacji, przez zasady zarz¹dzania zawartoœci¹ komputera, a¿ po szczegó³owe zagadnienia z zakresu administrowania systemem. Dowiesz siê tak¿e, co to s¹ skrypty pow³oki i nauczysz siê u¿ywaæ zaawansowanych poleceñ oszczêdzaj¹cych Twój czas. W ksi¹¿ce omówiono nastêpuj¹ce tematy: • Dostêpne dystrybucje • Instalacja systemu • Œrodowisko pracy i logowanie siê do systemu • Dyski i partycje • Operacje na plikach i katalogach • Prawa dostêpu, zmiana has³a i zmiana pow³oki • Informacje o sprzêcie i u¿ytkownikach • Poziom uruchomienia systemu • Demony us³ug • U¿ytkownicy i grupy • Tworzenie skryptów pow³oki • Dodatkowe informacje o plikach i katalogach Linux – naucz siê praktycznej i efektywnej obs³ugi systemu!


Spis treci

Wprowadzenie do systemu Linux ...............................................7 Czym jest Linux?

8

Dostpne dystrybucje — jak wybra odpowiedni dla siebie?

9

Instalacja systemu

9

1. Korzystanie z komputera pracujcego pod kontrol systemu Linux ....................................................... 14

rodowisko pracy

14

Logowanie si do systemu

16

Bezpieczne wyczanie i restart komputera

17

Uytkownicy systemu Linux

18

Co znajduje si w poszczególnych katalogach systemu?

19

Dyski i partycje w systemie

21

Pomoc na stronach MAN

22

2. Zarzdzanie zasobami komputera ............................................23 Pliki i katalogi w systemie

23

Wywietlanie zawartoci katalogu

24

Przechodzenie pomidzy katalogami

34

Tworzenie katalogów

35

Usuwanie katalogów

36

Tworzenie plików

38

Usuwanie plików

38

Wywietlenie zawartoci pliku

39

Zmiana dat modyfikacji plików i dostpu do nich

40

3


4

_

Kopiowanie plików i katalogów

43

Przenoszenie plików i katalogów oraz zmiana ich nazwy

46

Nadawanie praw dostpu do plików i katalogów

48

Zmiana hasa

52

Zmiana powoki

53

Uzyskiwanie informacji o typie pliku

54

Zmiana waciciela i grupy pliku

55

Wyszukiwanie plików i katalogów

56

Wypisywanie iloci bajtów, sów i linii

62

Porównywanie plików lub zakresów bajtów

63

Uzyskiwanie informacji o iloci wolnego miejsca na partycjach

64

Ustalanie, ile miejsca zajmuje plik lub katalog

65

Polecenia more i less

67

Montowanie i odmontowywanie systemów plików

68

Aktualna cieka, pod któr pracujemy

70

Przeczanie si na konto innego uytkownika

70

Uzyskiwanie informacji o sprzcie

71

Przegldanie kalendarza

75

Aktualizacja daty i czasu

77

Kontrolowanie wysyania wiadomoci

82

Wysyanie wiadomoci do innego uytkownika

82

Wysyanie wiadomoci z pliku tekstowego

83

Wysyanie komunikatów do wszystkich sieci z pliku tekstowego

83

Pokazywanie ostatnio zalogowanych uytkowników

83

Sprawdzanie, kto jest aktualnie zalogowany na naszym komputerze

86

Informacja o tym, kto jest zalogowany do systemu

86

Sprawdzanie swojej nazwy uytkownika

86

Pokazywanie lub ustawianie nazwy hosta systemowego

87

Spis treci


Wywietlanie i ustalanie parametr贸w interfejsu sieciowego

89

Wyszukiwanie nazwy lub adresu IP zdalnego komputera

90

Sprawdzanie, czy dana domena jest ju zarejestrowana

91

Sprawdzenie dostpnoci hosta

91

Czas, jaki upyn od uruchomienia systemu

92

3. Administrowanie systemem ......................................................93 Poziom uruchomienia systemu

93

Demony usug

94

Uytkownicy

96

Grupy

99

Szukanie acuch贸w w bazie whatis

99

4. Tworzenie skrypt贸w powoki .................................................. 100 Zmienne

102

Wypisywanie tekstu na ekranie uytkownika

103

Wartoci logiczne

106

Polecenie test

107

Instrukcja if

112

Instrukcja case

114

Ptla while

115

Ptla until

115

Ptla for

115

Break

116

Continue

117

Argumenty pobierane z wiersza powoki

117

5. Polecenia dodatkowe ................................................................118 SSH

118

Historia polece uytych w powoce

123

Wypisywanie pierwszych wierszy pliku

124

Spis treci

_

5


Wypisywanie ostatnich linii pliku

125

Uzyskiwanie informacji o trybie tworzenia nowych plików i katalogów

126

Wywietlanie atrybutów plików i katalogów

127

Dodatkowe prawa dostpu do plików

128

Sprawdzanie dodatkowych uprawnie do plików

129

Wyszukiwanie danych w plikach

129

Skorowidz ................................................................................. 139

6

_

Spis treci


Rozdzia 4. Tworzenie skryptów powoki Pisanie skryptów powoki to programowanie odpowiednich instrukcji — programów, które usprawniaj wykonywanie wielu czynnoci. Skrypty powoki obsuguj zmienne, instrukcje warunkowe, ptle i wiele innych przydatnych elementów. Skrypty powoki to po prostu zgrupowane polecenia zapisane w jednym pliku. Podobnie jak przy wpisywaniu polece w okienku terminala, powiniene pamita o tym, jak bd one wpisywane do pliku. Pamitaj o tym, e kada nowa linia to nowe polecenie, wic nie mona zapisywa polecenia w dwóch liniach. Na przykad, aby wywietli list zawartoci swojego katalogu gównego, cae polecenie trzeba zapisa w jednej linii, poniewa zapisanie go w dwóch lub wicej spowoduje bd. #!/bin/bash vdir /home/lukasz [lukasz@localhost ~]$ ./skrypt razem 44 drwx------ 5 lukasz lukasz 4096 gru 29 19:50 Desktop drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Dokumenty drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Muzyka drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Obrazy -rw-r--r-- 1 lukasz lukasz 0 maj 24 13:04 pik.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik2.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik.txt drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Pobieranie -rwxrwxrwx 1 lukasz lukasz 32 cze 10 13:41 skrypt -rwxrwxrwx 1 lukasz lukasz 31 cze 10 13:41 skrypt~ drwx------ 6 lukasz lukasz 4096 maj 24 13:07 tmp drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Wideo ./skrypt: line 3: /home/lukasz: is a directory

Poprawnie zapisany skrypt bdzie wyglda nastpujco: #!/bin/bash vdir /home/lukasz

100 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


Wykonanie skryptu da podany efekt — list zawartoci katalogu gównego. [lukasz@localhost ~]$ ./skrypt razem 44 drwx------ 5 lukasz lukasz 4096 gru 29 19:50 Desktop drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Dokumenty drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Muzyka drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Obrazy -rw-r--r-- 1 lukasz lukasz 0 maj 24 13:04 pik.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik2.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik.txt drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Pobieranie -rwxrwxrwx 1 lukasz lukasz 31 cze 10 13:41 skrypt -rwxrwxrwx 1 lukasz lukasz 29 cze 10 13:40 skrypt~ drwx------ 6 lukasz lukasz 4096 maj 24 13:07 tmp drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Wideo

Skrypty powoki musz zosta poprzedzone odpowiedni instrukcj odwoujc si do interpretera powoki, której uywamy. #!/bin/bash

Dodatkowo plik taki musi mie prawa do wykonywania, które naley nada mu poleceniem chmod (opisywanym we wczeniejszej czci ksiki). [lukasz@localhost ~]$ chmod 777 skrypt

W celu uruchomienia skryptu naley odpowiednio go wywoa . Zapiszmy skrypt w pliku skrypt. Wówczas mamy go w katalogu gównym uytkownika i aby go wywoa , nie wystarczy wpisa jego nazwy, gdy powoka bdzie wyszukiwaa polecenia o takiej nazwie w ciekach wyszukiwania. Przed skryptem naley wpisa pen ciek dostpu do niego, zaczynajc od znaku /, a gdy jestemy w katalogu, w którym jest umieszczony skrypt, wystarczy wpisa ./ (aktualny katalog, w którym znajduje si skrypt). W takim wypadku bdziemy mieli pewno , e skrypt si uruchomi. [lukasz@localhost ~]$ ./skrypt

Rozdzia 4. Tworzenie skryptów powoki

_ 101


Drugim sposobem uruchamiania skryptu jest uycie powoki i przekazanie do niej skryptu w formie argumentu. [lukasz@localhost ~]$ bash razem 44 drwx------ 5 lukasz lukasz drwxrwxr-x 2 lukasz lukasz drwxrwxr-x 2 lukasz lukasz drwxrwxr-x 2 lukasz lukasz -rw-r--r-- 1 lukasz lukasz -rw-r--r-- 1 lukasz lukasz -rw-r--r-- 1 lukasz lukasz drwxrwxr-x 2 lukasz lukasz -rwxrwxrwx 1 lukasz lukasz -rwxrwxrwx 1 lukasz lukasz drwx------ 6 lukasz lukasz drwxrwxr-x 2 lukasz lukasz

skrypt 4096 gru 29 19:50 Desktop 4096 lis 24 2005 Dokumenty 4096 lis 24 2005 Muzyka 4096 lis 24 2005 Obrazy 0 maj 24 13:04 pik.txt 7 maj 24 17:30 plik2.txt 7 maj 24 17:30 plik.txt 4096 lis 24 2005 Pobieranie 31 cze 10 13:42 skrypt 32 cze 10 13:41 skrypt~ 4096 maj 24 13:07 tmp 4096 lis 24 2005 Wideo

Trzecim sposobem uruchomienia skryptu w aktualnej powoce jest uycie znaku specjalnego. Dokonujemy tego za pomoc znaku .. [lukasz@localhost ~]$ . skrypt razem 44 drwx------ 5 lukasz lukasz 4096 gru 29 19:50 Desktop drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Dokumenty drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Muzyka drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Obrazy -rw-r--r-- 1 lukasz lukasz 0 maj 24 13:04 pik.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik2.txt -rw-r--r-- 1 lukasz lukasz 7 maj 24 17:30 plik.txt drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Pobieranie -rwxrwxrwx 1 lukasz lukasz 31 cze 10 13:42 skrypt -rwxrwxrwx 1 lukasz lukasz 32 cze 10 13:41 skrypt~ drwx------ 6 lukasz lukasz 4096 maj 24 13:07 tmp drwxrwxr-x 2 lukasz lukasz 4096 lis 24 2005 Wideo

Zmienne Zmienne to elementy, które mog przechowywa wartoci. W powoce istniej zmienne mogce przechowywa wartoci logiczne, tekst i liczby. Nie trzeba deklarowa typu zmiennej na samym pocztku skryptu — wystarczy poda dla niej warto podczas wpisywania skryptu. 102 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


Zmienn definiuje przypisywana do niej warto . Warto do zmiennej najlepiej wpisywa w cudzysowach (przy póniejszych manipulacjach jej wartoci lub próbach uycia w innym miejscu skryptu cudzysów zabezpiecza nas przed wystpieniem bdu). Zadeklarujmy zmienn nazywajc si zmienna i zawierajc sowo tekst. #!/bin/bash zmienna="tekst"

Jak wida , zmienna jest zwykym tekstem. Przy jej deklarowaniu nie trzeba dodawa adnych znaków specjalnych przed czy za ni. #!/bin/bash zmienna="tekst" echo zmienna

Przy wywietlaniu wartoci zapisanej w zmiennej naley poprzedzi j znakiem dolara „$”, aby wywietlanie zadziaao, to znaczy aby wywietlia si jej warto , a nie nazwa zmiennej. #!/bin/bash zmienna="tekst" echo $zmienna

Gdybymy nie dodali znaku dolara przed nazw zmiennej w instrukcji echo, po wywoaniu tego skryptu zostanie wywietlona na ekranie warto tekst zamiast wartoci zmienna. [lukasz@localhost ~]$ ./skrypt zmienna Skrypt bez dodania znaku dolara przed nazw zmiennej [lukasz@localhost ~]$ ./skrypt tekst Skrypt ze znakiem dolara przed nazw zmiennej

Wypisywanie tekstu na ekranie uytkownika Do wypisywania tekstu uywamy kilku polece, sporód których najpopularniejszym jest echo. Rozdzia 4. Tworzenie skryptów powoki

_ 103


W celu wypisania tekstu na ekranie uytkownika po poleceniu echo deklarujemy tekst, kt贸ry zostanie wywietlony po wywoaniu skryptu. #!/bin/bash echo To jest tekst

Po wywoaniu tego skryptu otrzymamy rezultat: [lukasz@localhost ~]$ ./skrypt To jest tekst

-n

Parametr ten nie wypisze na kocu linii znaku nowej linii, dziki czemu wszystkie informacje zostan wypisane w jednym wierszu. #!/bin/bash echo -n To jest tekst echo To jest tekst [lukasz@localhost ~]$ ./skrypt To jest tekstTo jest tekst

-e

Parametr ten rozpoznaje i interpretuje wszystkie znaki specjalne wpisywane przez nas do skryptu. Znaki specjalne deklaruje si przez poprzedzenie ich znakiem backslasha. #!/bin/bash echo -e To jest tekst\a [lukasz@localhost ~]$ ./skrypt To jest tekst

-E

Parametr ten powoduje nieinterpretowanie znak贸w specjalnych we wpisywanym tekcie i pomija ich wykonanie. #!/bin/bash echo -E To jest tekst\a [lukasz@localhost ~]$ ./skrypt To jest teksta

104 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


\a

Parametr powoduje pojawienie si alarmu w postaci sygnau dwikowego. #!/bin/bash echo -e To jest tekst\a

\b

Ten parametr po wypisaniu tekstu przesuwa kursor o jeden znak bliej pocztku tekstu. #!/bin/bash echo -e To jest tekst\b

\c

Parametr powoduje niewypisanie znaku nowego wiersza na kocu linii. #!/bin/bash echo -e To jest tekst\c

\f

Ten parametr powoduje wysunicie strony i zmian miejsca kursora w tekcie. #!/bin/bash echo -e To jest tekst\f

\n

Parametr powoduje pojawienie si nowego wiersza po zakoczeniu wypisywania tekstu. #!/bin/bash echo -e To jest tekst\n

\r

Parametr powoduje powr贸t karetki do pocztku linii. #!/bin/bash echo -e To jest tekst\r

\t

Parametr powoduje pojawienie si znaku tabulacji w poziomie.

Rozdzia 4. Tworzenie skrypt贸w powoki

_ 105


#!/bin/bash echo -e To jest tekst\t

\v

Paremetr powoduje pojawienie si tabulacji w pionie. #!/bin/bash echo -e To jest tekst\v

\\

Parametr ten suy do wypisania znaku backslasha. #!/bin/bash echo -e To jest tekst\\

\'

Parametr ten pozwala na wypisanie pojedynczego cudzysowu. #!/bin/bash echo -e To jest tekst\'

\”

Parametr pozwala na wypisanie podwójnego cudzysowu. #!/bin/bash echo -e To jest tekst\”

\nnn

Parametr ten pozwala na wypisanie znaku z tabeli kodów ASCII o ósemkowej notacji. #!/bin/bash echo -e To jest tekst\nnn

Wartoci logiczne W powoce — tak jak w kadym innym jzyku programowania — wystpuj wartoci logiczne, czyli wartoci TRUE lub FALSE. W systemie warto 0 zawsze oznacza prawd, czyli TRUE, a jakakolwiek inna warto oznacza fasz, czyli warto FALSE.

106 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


Wszystkie programy dziaajce w powoce zwracaj informacj o tym, czy udao im si poprawnie zakoczy dziaanie. Warto ta jest umieszczana w specjalnej zmiennej $?. #!/bin/bash vdir /home/lukasz echo $?

Program ten powinien na kocu wywietli liczb okrelajc, czy udao mu si wywietli katalog, czy te nie. [lukasz@localhost ~]$ ./skrypt razem 44 drwx------ 5 lukasz lukasz 4096 drwxrwxr-x 2 lukasz lukasz 4096 drwxrwxr-x 2 lukasz lukasz 4096 drwxrwxr-x 2 lukasz lukasz 4096 -rw-r--r-- 1 lukasz lukasz 0 -rw-r--r-- 1 lukasz lukasz 7 -rw-r--r-- 1 lukasz lukasz 7 drwxrwxr-x 2 lukasz lukasz 4096 -rwxrwxrwx 1 lukasz lukasz 39 -rwxrwxrwx 1 lukasz lukasz 34 drwx------ 6 lukasz lukasz 4096 drwxrwxr-x 2 lukasz lukasz 4096 0

gru lis lis lis maj maj maj lis cze cze maj lis

29 24 24 24 24 24 24 24 11 11 24 24

19:50 2005 2005 2005 13:04 17:30 17:30 2005 18:30 18:20 13:07 2005

Desktop Dokumenty Muzyka Obrazy pik.txt plik2.txt plik.txt Pobieranie skrypt skrypt~ tmp Wideo

Jak wida powyej, katalog zosta wywietlony i dlatego program zwróci warto TRUE, czyli liczb 0 na kocu kodu. W przypadku niepowodzenia zwróciby warto 1, tak jak poniej. [lukasz@localhost ~]$ ./skrypt vdir: /home/lukasz2: Nie ma takiego pliku ani katalogu 1

Polecenie test Polecenie test suy do porównywania liczb lub cigów znaków i wypisywania do zmiennej wartoci porównania.

Rozdzia 4. Tworzenie skryptów powoki

_ 107


-d

Parametr sprawdza, czy plik o podanej nazwie jest katalogiem. #!/bin/bash test -d plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 1

-f

Parametr sprawdza, czy plik jest zwykym plikiem, czy te z prawami do wykonywania. #!/bin/bash test -f plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 0

-L

Parametr sprawdza, czy plik jest dowizaniem symbolicznym. #!/bin/bash test -L plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 1

-r

Parametr sprawdza, czy dany plik istnieje i czy mona go odczyta . #!/bin/bash test -r plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 0

108 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


-w

Parametr sprawdza, czy dany plik istnieje i czy mona go zapisa . #!/bin/bash test -w plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 0

-x

Parametr sprawdza, czy plik o danej nazwie istnieje i czy mona go uruchomi . #!/bin/bash test -x plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 1

-s

Parametr sprawdza, czy dany plik zosta zapisany na dysku i czy jego warto (dugo ) nie jest zerowa. #!/bin/bash test -s plik.txt echo $? [lukasz@localhost ~]$ ./skrypt 0

-nt

Parametr sprawdza, czy plik1 jest nowszy od plik2. #!/bin/bash test plik.txt -nt plik2.txt echo $? [lukasz@localhost ~]$ ./skrypt 1

Rozdzia 4. Tworzenie skrypt贸w powoki

_ 109


-ot

Parametr sprawdza, czy plik1 jest starszy od plik2. #!/bin/bash test plik.txt -ot plik2.txt echo $? [lukasz@localhost ~]$ ./skrypt 0

=

Parametr sprawdza, czy cigi podane po jego obu stronach s identyczne. #!/bin/bash test "abc"="abc" echo $? [lukasz@localhost ~]$ ./skrypt 0

!=

Parametr sprawdza, czy cigi podane po jego obu stronach nie s identyczne. #!/bin/bash test "abc"!="abc" echo $? [lukasz@localhost ~]$ ./skrypt 1

-z

Parametr sprawdza, czy cig podany za nim ma zerow dugo . #!/bin/bash test -z abc echo $? [lukasz@localhost ~]$ ./skrypt 1

110 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


-n

Parametr sprawdza, czy cig podany za nim ma niezerow dugo . #!/bin/bash test -n abc echo $? [lukasz@localhost ~]$ ./skrypt 0

-eq

Parametr sprawdza, czy wartoci podane po jego obu stronach s sobie r贸wne. #!/bin/bash test 1 -eq 1 echo $? [lukasz@localhost ~]$ ./skrypt 0

-ne

Parametr sprawdza, czy wartoci podane po jego obu stronach nie s sobie r贸wne. #!/bin/bash test 1 -ne 1 echo $? [lukasz@localhost ~]$ ./skrypt 1

-gt

Parametr sprawdza, czy pierwsza warto jest wiksza od drugiej. #!/bin/bash test 2 -gt 1 echo $? [lukasz@localhost ~]$ ./skrypt 0

Rozdzia 4. Tworzenie skrypt贸w powoki

_

111


-ge

Parametr sprawdza, czy pierwsza warto jest wiksza lub r贸wna drugiej. #!/bin/bash test 2 -ge 1 echo $? [lukasz@localhost ~]$ ./skrypt 0

-lt

Parametr sprawdza, czy pierwsza warto jest mniejsza od drugiej. #!/bin/bash test 2 -lt 1 echo $? [lukasz@localhost ~]$ ./skrypt 1

-le

Parametr sprawdza, czy pierwsza warto jest mniejsza lub r贸wna drugiej. #!/bin/bash test 2 -le 1 echo $? [lukasz@localhost ~]$ ./skrypt 1

!

Parametr ten suy do negowania testu, bardzo czsto stosuje si go w instrukcjach warunkowych i w ptlach.

Instrukcja if Instrukcja sprawdza, czy dany warunek jest speniony, i w zalenoci od tego wykonuje odpowiednie czynnoci.

112 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


if warto then zrób co fi Najprostszy wariant polecenia if #!/bin/bash if [ 1 = 1 ] then echo Wartosci sa rowne fi

Przykad skryptu sprawdzajcego, czy wartoci s równe. [lukasz@localhost ~]$ ./skrypt Wartosci sa rowne

Ten warunek sprawdza, czy warto jest speniona, i w zalenoci od wyniku sprawdzenia wykonuje okrelon operacj (warto speniona — zrób co, w przeciwnym wypadku — zrób co innego). if warto then zrób co else zrób co innego fi #!/bin/bash if [ 1 = 2 ] then echo Wartosci sa rowne else echo Wartosci sa rozne fi

Przykad skryptu sprawdzajcego, czy wartoci s równe, czy te nie. [lukasz@localhost ~]$ ./skrypt Wartosci sa rozne

Polecenie sprawdza, czy warunki s spenione. W przypadku, gdyby którykolwiek z warunków zosta speniony, wykona polecenie.

Rozdzia 4. Tworzenie skryptów powoki

_ 113


W przypadku, gdyby aden z warunkรณw nie zosta speniony, wykona ono funkcj zrรณb co innego. If warto then zrรณb co elif warto2 then zrรณb co 2 elif ... ... else zrรณb co innego di

Instrukcja case Instrukcja case sprawdza, czy warunek ma odpowiedni warto , a nastpnie przechodzi do odpowiedniego fragmentu kodu w programie. Case warunek in odpoweidz1) zrob co 1 ;; Esac

Przykad skryptu sprawdzajcego, jak warto ma liczba. #!/bin/bash wartosc=1 case "$wartosc" in 1) echo Liczba ma wartosc 1 ;; 2) echo Liczba ma wartosc 2 ;; Esac [lukasz@localhost ~]$ ./skrypt Liczba ma wartosc 1

114 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


Ptla while Ptla while powtarza wykonywanie okrelonych czynnoci dopóty, dopóki warunek w niej podany nie zostanie speniony. While polecenie do zrob co done

Oto skrypt z ptl while wywietlajcy liczb i po kadym przejciu ptli (wykonaniu fragmentu skryptu) zwikszajcy j o jeden. W przypadku, gdy liczba jest równa 2, skrypt koczy dziaanie. #!/bin/bash i=0 while [ $i -lt 2 ] do echo $i i=`expr $i + 1` done [lukasz@localhost ~]$ ./skrypt 0 1

Ptla until Ptla until powtarza polecenie w niej zapisane dopóty, dopóki warunek nie zostanie speniony. Until polecenie do zrob co done

Ptla for Ptla for powtarza dan czynno dan liczb razy (okrelon w podanej do niej liczbie wykona). Rozdzia 4. Tworzenie skryptów powoki

_ 115


For zmienna in lista do zrob co done

Ptla for, kt贸ra wywietla w kolejnych liniach wszystkie wymienione w niej owoce. #!/bin/bash for owoc in Jablko Pomarancza Cytryna do echo $owoc done [lukasz@localhost ~]$ ./skrypt Jablko Pomarancza Cytryna

Break Polecenie break koczy dziaanie ptli, jeeli podamy warunek do jej zakoczenia. #!/bin/bash for owoc in Jablko Pomarancza Cytryna do echo $owoc if [ "$owoc" = "Pomarancza" ] then break fi done

Ten skrypt ma zakoczy dziaanie (za pomoc polecenia break) po pojawieniu si tekstu Pomarancza. [lukasz@localhost ~]$ ./skrypt Jablko Pomarancza

116 _

Linux. Komendy i polecenia. Leksykon kieszonkowy


Continue Polecenie continue wymusza przejcie do kolejnej iteracji, czyli nastpnego kroku. #!/bin/bash for owoc in Jablko Pomarancza Cytryna do echo $owoc if [ "$owoc" = "Pomarancza" ] then continue fi echo tekst przerywnika done

W napisanym przez nas kodzie zadaniem instrukcji continue jest ukrycie napisu tekst przerywnika podczas przetwarzania „owocu”: Pomarancza. [lukasz@localhost ~]$ ./skrypt Jablko tekst przerywnika Pomarancza Cytryna tekst przerywnika

Argumenty pobierane z wiersza powoki Wszystkie napisane przez nas skrypty powoki mog przyjmowa argumenty. Do argumentów wysanych po uruchomieniu skryptu odwoujemy si za pomoc zmiennych $1, $2, $3 ... $n. #!/bin/bash echo "Dzisiaj pogoda bya $1"

Przykadowy skrypt pobierze pierwsz warto za jego nazw i wstawi j w miejsce $1, a nastpnie wywietli j na ekranie. [lukasz@localhost ~]$ ./skrypt super Dzisiaj pogoda bya super

Rozdzia 4. Tworzenie skryptów powoki

_ 117


Linux. Komendy i polecenia. Wydanie III  

Dziś do Twoich rąk trafia trzecie już, uzupełnione o nowy rozdział wydanie popularnej książki Linux. Komendy i polecenia, niezwykle przydatn...

Advertisement
Read more
Read more
Similar to
Popular now
Just for you