Vous êtes sur la page 1sur 9

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

Linux. Komendy i polecenia.


Praktyczne przykady
Autorzy: Kazimierz Lal, Tomasz Rak
ISBN: 83-7361-994-1
Format: B5, stron: 264

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Poznaj zastosowanie powok tekstowych Linuksa


Skadnia polece
Wyraenia regularne
Tworzenie skryptw powoki
Rosnca popularno Linuksa pocigna za sob rozwj rodowisk graficznych,
dziki ktrym moliwe jest korzystanie z systemu bez jakiejkolwiek znajomoci konsoli
tekstowej i jej polece. Narzdzia oferowane przez rodowiska graficzne takie jak KDE
czy Gnome umoliwiaj rwnie administrowanie systemem, ale w nieco ograniczonym
zakresie. Peny dostp do wszystkich funkcji systemu nadal moliwy jest jedynie za
porednictwem trybu tekstowego. Jednak ilo polece i ich parametrw skutecznie
odstrasza wielu uytkownikw Linuksa od jakichkolwiek prb opanowania moliwoci
konsoli.
Ksika Linux. Komendy i polecenia. Praktyczne przykady przedstawia najczstsze
zastosowania powoki tekstowej Linuksa. Czytajc j, poznasz typy powok tekstowych
stosowane w rnych dystrybucjach systemu Linux oraz nauczysz si korzysta
z wyrae regularnych, filtrw i potokw. Dowiesz si, jak definiowa zmienne i jak
tworzy skrypty powoki za pomoc jzyka C. Znajdziesz tu rwnie zasady
administrowania systemem za pomoc polece wydawanych w trybie tekstowym.
Dziki zadaniom znajdujcym si w ksice zastosujesz poznan wiedz w praktyce.
Metaznaki i wyraenia regularne
Stosowanie filtrw i potokw
Definiowanie zmiennych powoki
Wyraenia arytmetyczne i konstrukcje sterujce
Tworzenie skryptw powoki
Zarzdzanie procesami, kontami uytkownikw i prawami dostpu
Tworzenie prostych elementw graficznych
Jeli chcesz wykorzysta peni moliwoci Linuksa, powiniene pozna zasady
korzystania z trybu tekstowego. Dziki tej ksice zrobisz to bez problemu.

Spis treci
Wprowadzenie .................................................................................. 7

Cz I ...........................................................................................9
Rozdzia 1. Powoki systemu Linux ................................................................... 11
Rozdzia 2. Podstawowe polecenia powokowe .................................................. 13
2.1. Skadnia polece ...................................................................................................... 13
2.2. Metaznaki ................................................................................................................ 14
2.2.1. Metaznaki *, ? i [...] ...................................................................................... 14
2.2.2. Metaznaki z listami wzorcw w powoce Korna ........................................... 16
2.2.3. Metaznaki rozwijajce nazwy cieek .......................................................... 17
2.3. Wyraenia regularne ................................................................................................ 18
2.3.1. Znak kropki . ................................................................................................. 20
2.3.2. Symbol $ ....................................................................................................... 20
2.3.3. Symbol ^ ....................................................................................................... 20
2.3.4. Symbol * ....................................................................................................... 20
2.3.5. Symbole [ ] i [^ ] ........................................................................................... 21
2.3.6. Symbol \{m,n\} ............................................................................................. 22
2.3.7. Symbol \(...\) ................................................................................................. 23
2.3.8. Operatory rozszerzajce w egrep i awk ......................................................... 23
2.4. Filtry ........................................................................................................................ 24
2.4.1. Polecenia grep, egrep i fgrep ......................................................................... 25
2.4.2. Polecenie cut ................................................................................................. 27
2.4.3. Polecenie sort ................................................................................................ 28
2.4.4. Polecenie uniq ............................................................................................... 29
2.4.5. Polecenie tr ................................................................................................... 30
2.4.6. Edytor strumieniowy sed ............................................................................... 31
2.4.7. Filtr tekstowy awk ......................................................................................... 34
2.5. Przeadresowanie wejcia-wyjcia ............................................................................ 37
2.5.1. Operator > ..................................................................................................... 39
2.5.2. Operator < ..................................................................................................... 40
2.5.3. Operator >> ................................................................................................... 40
2.5.4. Operator <<[-]ogr .......................................................................................... 40
2.5.5. Operator 2> ................................................................................................... 41
2.5.6. Operator 2>&1 .............................................................................................. 41
2.5.7. Przeadresowanie w powoce C ...................................................................... 42
2.5.8. Zmienna noclobber ....................................................................................... 43
2.6. Potoki ...................................................................................................................... 43
2.6.1. Polecenie tee ................................................................................................. 45

Linux. Komendy i polecenia. Praktyczne przykady

Rozdzia 3. Zmienne powoki ............................................................................ 47


3.1. Zmienne parametryczne .......................................................................................... 47
3.2. Zmienne rodowiskowe ........................................................................................... 48
3.3. Zmienne programowe .............................................................................................. 51
3.4. Zmienne tablicowe .................................................................................................. 52
3.5. Nadzorowanie przypisywania wartoci zmiennym .................................................. 53

Rozdzia 4. Cytowanie ...................................................................................... 57


4.1. Apostrofy ................................................................................................................. 58
4.2. Cudzysowy ............................................................................................................. 58
4.3. Lewy ukonik .......................................................................................................... 60
4.4. Znaki akcentu .......................................................................................................... 60

Rozdzia 5. Decyzje, powtarzanie i wyraenia arytmetyczne ................................ 63


5.1. Polecenie test ........................................................................................................... 64
5.2. Polecenie expr ......................................................................................................... 67
5.3. Wyraenia arytmetyczne w powokach Korna i Bash ............................................. 69
5.3.1. Polecenie let .................................................................................................. 71
5.4. Konstrukcje sekwencyjne ........................................................................................ 72
5.5. Konstrukcje warunkowe .......................................................................................... 73
5.5.1. Konstrukcja if ................................................................................................ 73
5.5.2. Konstrukcja case ........................................................................................... 74
5.6. Konstrukcje iteracyjne ............................................................................................. 75
5.6.1. Ptla for ......................................................................................................... 75
5.6.2. Ptla while ..................................................................................................... 76
5.6.3. Ptla until ...................................................................................................... 78
5.6.4. Polecenie xargs ............................................................................................. 78
5.7. Funkcje .................................................................................................................... 79
5.8. Wyraenia arytmetyczne i konstrukcje sterujce w powoce C ............................... 81
5.8.1. Konstrukcja if ................................................................................................ 83
5.8.2. Konstrukcja case ........................................................................................... 84
5.8.3. Konstrukcja forech ........................................................................................ 85
5.8.4. Ptla while ..................................................................................................... 85
5.8.5. Polecenie repeat ............................................................................................ 85

Rozdzia 6. Praca z wykorzystaniem powoki ..................................................... 87


6.1. Okrelenie rodowiska powoki ............................................................................... 87
6.2. Interaktywna praca z powok ................................................................................. 89
6.2.1. Procesy i rodzaje ich pracy ........................................................................... 89
6.2.2. Sterowanie zadaniami ................................................................................... 90
6.2.3. Historia polece ............................................................................................ 96
6.3. Pisanie skryptw .................................................................................................... 102
6.3.1. Uruchamianie skryptw .............................................................................. 104
6.3.2. Listy opcji i argumentw ............................................................................ 105
6.3.3. Zmienne w skryptach .................................................................................. 108
6.4. Edytor vi ................................................................................................................ 110

Rozdzia 7. Nadawanie praw dostpu .............................................................. 115


7.1. Rodzaje praw dostpu ............................................................................................ 116
7.2. Klasy praw dostpu ............................................................................................... 117
7.3. Ustawianie ochrony pliku ...................................................................................... 119
7.3.1. Polecenie chmod ......................................................................................... 119
7.3.2. Okrelenie domylnych praw dostpu do plikw i katalogw .................... 122
7.3.3. Bity set-user-ID i set-group-ID ................................................................... 122

Spis treci

Rozdzia 8. Grafika w powoce ........................................................................ 125


8.1. Okna dialogowe ..................................................................................................... 125
8.1.1. Okna wyboru ............................................................................................... 126
8.1.2. Okna wiadomoci ........................................................................................ 127
8.1.3. Okna informacyjne ...................................................................................... 128
8.1.4. Okna wprowadzania danych ....................................................................... 129
8.1.5. Okna tekstowe ............................................................................................. 130
8.1.6. Okna listy wyboru ....................................................................................... 131
8.1.7. Okna postpu .............................................................................................. 135

Cz II ......................................................................................139
Rozdzia 9. Wprowadzenie do zada ................................................................ 141
9.1. Ustawienie rodowiska do wicze ....................................................................... 141
9.2. Logowanie do sytemu i rozpoczcie pracy w wierszu polece .............................. 143

Rozdzia 10. Zadania ........................................................................................ 145


10.1. Metaznaki ............................................................................................................ 145
10.2. Wyraenia regularne i filtry ................................................................................. 146
10.3. Przeadresowanie wejcia-wyjcia ........................................................................ 149
10.4. Potoki i polecenie tee ........................................................................................... 150
10.5. Zmienne ............................................................................................................... 150
10.6. Cytowanie ............................................................................................................ 151
10.7. Polecenia test i expr wyraenia arytmetyczne ................................................ 152
10.8. Procesy i sterowanie zadaniami ........................................................................... 152
10.9. Historia polece ................................................................................................... 153
10.10. Pisanie skryptw i konstrukcje sterujce ........................................................... 154
10.11. Edytor vi ............................................................................................................ 156
10.12. Prawa dostpu do plikw i katalogw ............................................................... 156
10.13. Grafika w powoce ............................................................................................ 158

Rozdzia 11. Odpowiedzi do zada ..................................................................... 161


11.1. Metaznaki ............................................................................................................ 161
11.2. Wyraenia regularne i filtry ................................................................................. 165
11.3. Przeadresowanie wejcia-wyjcia ........................................................................ 182
11.4. Potoki i polecenie tee ........................................................................................... 185
11.5. Zmienne ............................................................................................................... 188
11.6. Cytowanie ............................................................................................................ 192
11.7. Polecenia test i expr wyraenia arytmetyczne ................................................ 194
11.8. Procesy i sterowanie zadaniami ........................................................................... 197
11.9. Historia polece ................................................................................................... 198
11.10. Pisanie skryptw i konstrukcje sterujce ........................................................... 206
11.11. Edytor vi ............................................................................................................ 213
11.12. Prawa dostpu do plikw i katalogw ............................................................... 219
11.13. Grafika w powoce ............................................................................................ 226

Dodatki ......................................................................................249
Bibliografia ................................................................................... 251
Skorowidz ..................................................................................... 253

Rozdzia 4.

Cytowanie
Domylnym dziaaniem powoki jest obliczanie wartoci i podstawianie. Wiersz polece jest przegldany, spacje dziel go na sowa, napotkane znaki specjalne wskazuj,
jakie czynnoci maj by wykonane, a wyniki s wstawiane w odpowiednie miejsce
wiersza. Nie zawsze jednak takie dziaanie powoki jest podane [1] [11] [13] [18].
Moe si zdarzy, e w pewnych sytuacjach powoka zinterpretuje wprowadzone komendy niezgodnie z intencj uytkownika. Mona si przed tym zabezpieczy, odbierajc niektrym znakom (traktowanym przez powok w sposb szczeglny) ich specjalne znaczenie. Suy do tego mechanizm cytowania znakw (ang. quoting). Za
pomoc cytowania chroni si spacje wystpujce w wierszu polece (cytowany cig
znakw jest interpretowany jak pojedyncze sowo) oraz nadzoruje rozwinicia (w szczeglnoci nazw plikw i zmiennych). Znaki cytowania rozrniane przez powok zostay
przedstawione w tabeli 4.1.
Tabela 4.1. Znaki cytowania
Znak(i)

Opis

Brak cytowania

Brak cytowania oznacza, e wszystkie sowa wydzielone za pomoc spacji s


interpretowane przez powok.

Apostrofy

Tekst zawarty w apostrofach jest chroniony. Cay ciag_znakow jest przesyany


jako argument do polecenia.

ciag_znakow
"ciag_znakow "

Tylko znaki $, \ oraz znak akcentu ` maj specjalne znaczenie w cigu_znakw.


Wszystkie inne znaki s chronione. Cudzysw zapewnia jednoznaczn
interpretacj cigu znakw, nawet w przypadku uycia znaku spacji.

Lewy ukonik

Znak wystpujcy po \ jest chroniony przed interpretacj przez powok.

Cudzysowy

\c

Akcenty
`polecenie`

Polecenie umieszczone w akcentach jest wykonywane przez podpowoki i w jego


miejsce podstawiany jest uzyskany wynik. Analiza dokonywana przez podpowoki
przebiega w zwyky sposb. Brane s pod uwag wczone znaki cytowania.

58

Cz I

4.1. Apostrofy
Apostrofy s wygodnym sposobem na to, by cig znakw pozbawi specjalnego znaczenia. Znaki znajdujce si pomidzy otwierajcym i zamykajcym apostrofem staj
si znakami zwykymi. Ponadto apostrofy cz tekst w jeden argument. Spacja nie
jest wtedy separatorem argumentw.

Przykad 4.1.
Apostrofy uyte w poniszym poleceniu grep sprawiaj, e cig znakw zapisz wiadomosc potraktowany zostanie jako jeden argument wyszukiwany w pliku dane:
grep zapisz wiadomosc dane

Jeeli nie uylibymy znakw apostrofu i zapisalibymy polecenie grep w takiej postaci:
grep zapisz wiadomosc dane

sowo zapisz szukane byoby w plikach wiadomosc i dane.

Przykad 4.2.
Zamy, e wykonana zostaa sekwencja polece:
zmienna=wartosc wpisana do zmiennej
echo $zmienna

Wynikiem bdzie wywietlenie na ekranie cigu znakw:


wartosc wpisana do zmiennej

Gdy uyjemy polecenia:


echo $zmienna

znak $ utraci specjalne znaczenie i na ekranie otrzymamy:


$zmienna

W analogiczny sposb swoje specjalne znaczenie trac wszystkie inne znaki specjalne.
atwo moemy si domyli, co by si wydarzyo, gdybymy nie zastosowali apostrofw.

4.2. Cudzysowy
Cudzysowy dziaaj podobnie jak apostrofy, ale nie pozbawiaj wszystkich znakw
specjalnych ich znaczenia. Znaki $, \ oraz ` utrzymuj swoje specjalne znaczenie
w cigu znakw. W cudzysowach moliwe jest podstawianie wartoci zmiennych,
ale podstawianie nazw plikw nie jest ju moliwe. Podstawianie wykonywane na
zmiennych umieszczonych wewntrz cudzysoww rni si nieco od zwykego podstawiania w wierszu polece. Wynika to z ochrony zapewnianej przez cudzysowy.

Rozdzia 4. Cytowanie

59

Przykad 4.3.
Przeanalizujmy skrypt:
$ zmienna="Ochrona
spacji zawartych w
$ echo $zmienna
Ochrona spacji zawartych w tekscie
$ echo "$zmienna"
Ochrona spacji
zawartych w tekscie

tekscie"

Umieszczenie zmiennej w cudzysowie powoduje ochron spacji w niej umieszczonych.


Normalnie powoka przetwarza zmienn w ten sposb, e usuwa wszystkie nadmiarowe spacje i kady element traktuje oddzielnie. W naszym przykadzie polecenie:
$ echo $zmienna

usuwa spacje poprzedzajce poszczeglne sowa, pobiera te sowa jako oddzielne argumenty i wywietla, rozdzielajc je pojedynczymi spacjami. Gdy mamy do czynienia
z zapisem w cudzysowach:
$ echo "$zmienna"

spacje s chronione i polecenie echo otrzymuje cay cig znakw jako pojedynczy argument.

Przykad 4.4.
Rozwamy teraz przykad obrazujcy rnice midzy uyciem apostrofw, cudzysoww lub nieuyciem adnego z tych znakw. Zakadamy, e w katalogu biecym
istnieje plik tekst oraz istnieje zmienna zm o wartoci napis.
$ echo Plik tekst zawiera $zm
Plik tekst zawiera napis
$echo Plik teks* zawiera $zm
Plik teks* zawiera $zm
$echo "Plik teks* zawiera $zm"
Plik teks* zawiera napis

Apostrofy pozbawiaj specjalnego znaczenia znaki * i $, a cudzysw pozbawia specjalnego znaczenia tylko znak *.

Przykad 4.5.
Zamy, e chcemy za pomoc polecenia grep wyszuka wiersze w pliku abonenci
wedug wzorca zawartego w zmiennej dane o wartoci Jan Kowalski. Polecenie:
grep $dane abonenci

po wstawieniu wartoci zmiennej bdzie miao posta:


grep Jan Kowalski abonenci

i spowoduje, e grep bdzie szuka wyrazu Jan w plikach Kowalski i abonenci. Dopiero zastosowanie cudzysoww:
grep "$dane" abonenci

60

Cz I

pozwoli uzyska polecenie:


grep "Jan Kowalski" abonenci

i da podany efekt.

4.3. Lewy ukonik


Lewy ukonik \ suy do pozbawienia specjalnego znaczenia znaku, ktry wystpuje
za nim. Mona w ten sposb chroni dowolny znak w dowolnym miejscu. Znak \ jest
czsto uywany wewntrz cudzysoww do ochrony nastpnych znakw cudzysowu,
na przykad:
$ echo "Powiesc pt. \"Lalka\""
Powiesc pt. "Lalka"

Innym zastosowaniem znaku \ jest ochrona przed podstawianiem przez powok


nazw plikw lub wartoci zmiennych. W tym celu za jego pomoc naley zasoni
znaki specjalne:
$ echo To chyba za drogo\?
To chyba za drogo?

Znak lewego ukonika jest wic wygodnym narzdziem, ktre bardzo uatwia nadzorowanie podstawie wykonywanych przez powok.

4.4. Znaki akcentu


Znaki akcentu ` powoduj, e powoka uwaa wszystko, co znajduje si pomidzy
nimi, za polecenie. Dziki temu s one bardzo uyteczne przy pisaniu skryptw i programw, a szczeglnie przydaj si do przypisywania wartoci zmiennym. Pomidzy
apostrofami mona umieci dowolne polecenie lub zestaw polece. Kade z nich bdzie wykonywane, jakby zostao wprowadzone w wierszu polece. Taki efekt bierze
si std, e kade polecenie jest wykonywane we wasnej podpowoce. Oznacza to, e
polecenie takie nie bdzie pamitane po powrocie do powoki, z ktrej zostao wywoane.

Przykad 4.6.
Przeanalizujmy skrypt:
$ data=date
$ echo $data
date
$ data=`date`
$ echo $data
Mon May 29 19:58:29 MDT 2005

Rozdzia 4. Cytowanie

61

Pocztkowo zmiennej data zosta przypisany cig znakw date. Powoka uznaa wszystkie znaki po prawej stronie znaku rwnoci za cz staej, ktra ma stanowi warto
zmiennej. W kolejnym poleceniu uyte zostay znaki akcentu:
$ data=`date`

dziki czemu wynik polecenia date zastpi samo polecenie. Ostatecznie zmiennej
data zostaa przypisana bieca data.

Przykad 4.7.
Aby wywietli informacj o liczbie plikw w biecym katalogu, mona uy polecenia:
$ echo "Jest `ls|wc l` pliki w `pwd`"

Znaki ` spowoduj podstawienie wartoci w miejsce polece ls|wc l i pwd, co przykadowo moe da:
Jest 23 pliki w /home/jan

Vous aimerez peut-être aussi