Académique Documents
Professionnel Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
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
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
Spis treci
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
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
Apostrofy
ciag_znakow
"ciag_znakow "
Lewy ukonik
Cudzysowy
\c
Akcenty
`polecenie`
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
Przykad 4.2.
Zamy, e wykonana zostaa sekwencja polece:
zmienna=wartosc wpisana do zmiennej
echo $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"
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
i spowoduje, e grep bdzie szuka wyrazu Jan w plikach Kowalski i abonenci. Dopiero zastosowanie cudzysoww:
grep "$dane" abonenci
60
Cz I
i da podany efekt.
Znak lewego ukonika jest wic wygodnym narzdziem, ktre bardzo uatwia nadzorowanie podstawie wykonywanych przez powok.
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