155
Rozdzia³ 7. ¨ Podstawowe polecenia Linuxa 155
Ed Trejis i Tim Parker
W tym rozdziale:
u Jak działają polecenia Linuxa
u Konwencje używane do opisu poleceń
u Pomoc dostępna podczas pracy
u Strony man
u Symbole wieloznaczne: * oraz ?
u Zmienne środowiskowe
u Procesy i ich wyłączanie
u Polecenie su, czyli jak stać się kimś innym
u Program grep
Polecenia dostępne w systemie Linux są zwykle bardzo elastyczne. Przeważnie istnieje kilka metod, dzięki którym możesz dopasować działanie polecenia do swoich potrzeb. Przyjrzymy się dwóm głównym sposobom modyfikacji zachowania się programów: podawaniu lub przekierowaniu (czasem nazywanym również przeadresowaniem; ang. redirecting) wejścia i wyjścia oraz używaniu opcji.
Można wyobrazić sobie program jako czarną skrzynkę – część linii produkcyjnej – do której z jednej strony wędrują dane, z drugiej zaś odbierane są wyniki ich przetwarzania. Opcje pozwalają na dopasowanie do naszych potrzeb procesów odbywających się w takiej skrzynce. Przekierowanie pozwala podać efekty działania jednej skrzynki bezpośrednio na wejście drugiej. Analogia jest dość prosta, ale dobrze pomaga zrozumieć niektóre aspekty pracy z Linuxem i UNIX-em.
Gdy już zrozumiesz, jak działają opcje i przekierowanie, będziesz potrafił (przynajmniej z grubsza) użyć każdego polecenia linuxowego i UNIX-owego, ponieważ UNIX został zaprojektowany przy przestrzeganiu kilku głównych zasad. Podstawową z nich jest to, że polecenia są proste i spełniają jedno zadanie, a jednocześnie są elastyczne jeśli chodzi o miejsce, z którego pobierają i w którym zapisują dane. Oczywiście przez 35 lat istnienia UNIX-a powstały programy nie spełniające tych warunków, ale mimo wszystko systemy UNIX-owe, w tym Linux, są pod tym względem zadziwiająco spójne.
Wciśnięcie klawiszy Control+U w wierszu poleceń powoduje usunięcie wszystkiego, co się w nim znajduje. Jest to przydatne w momencie, gdy zdarzy Ci się pomyłka na początku długiego polecenia, albo rozmyślisz się w ostatnim momencie przed jego zatwierdzeniem. Do usunięcia wpisanego polecenia można również użyć klawisza Backspace, ale pierwszy sposób zazwyczaj jest szybszy. Innym rozwiązaniem jest wciśnięcie kombinacji klawiszy Control+C, która anuluje wszystko, co napisałeś i ustawi kursor w nowym wierszu.
Klawisze kursora są bardzo użyteczne podczas wpisywania poleceń; niestety, nie wszystkie wersje powłoki je obsługują. Działają one podobnie jak w programie DOSKEY (lewo i prawo – poruszają kursorem, góra i dół – pozwalają wybrać polecenie z listy ostatnio wydanych poleceń).
Często zdarza się, że jakieś polecenie Linuxa pozwala zrobić prawie dokładnie (ale nie dokładnie) to, czego potrzebujesz. Zamiast zmuszać Cię do użycia innego, działającego dokładnie zgodnie z Twoimi intencjami polecenia, Linux pozwala zmodyfikować działanie istniejącego. Prosty przykład: chcesz posortować listę nazwisk. Możesz w tym celu użyć polecenia sort, które pozwala wykonać taką operację, ale Tobie potrzebna jest lista uporządkowana „od końca”. Zamiast szukać innego polecenia, wystarczy, że podasz jednoliterową opcję, która odwróci kolejność sortowania. Niektóre polecenia udostępniają bardzo dużo opcji, inne nieco mniej.
Świetnym przykładem prostego, użytecznego a jednocześnie mającego mnóstwo opcji polecenia jest ls. Wypisuje ono nazwy wszystkich plików znajdujących się w katalogu. Proste, nieprawda? Spróbuj je wykonać:
darkstar:~$ lsdarkstar:~$
Nic nie zostało wyświetlone – jest to normalne, jeśli używasz nowo założonego konta.
Spróbuj teraz wydać polecenie ls –a (ważne jest, by po ls była spacja, natomiast nie może jej być między znakiem – oraz literą a).
darkstar:~$ ls –a./ .bash_history .kermrc .lessrc
Działanie polecenia zostało zmodyfikowane przez dodanie do niego opcji –a. Domyślnie ls wyświetla tylko te pliki, których nazwa nie zaczyna się od kropki (tak oznaczane są w Linuxie pliki systemowe). Nazwy wszystkich plików w bieżącym katalogu zaczynają się od kropki, więc nie zostały one wypisane. Opcja –a powoduje wypisanie wszystkich nazw plików, również tych zaczynających się od kropki.
Polecenie ls pozwala również na użycie innych opcji. Można nawet używać kilku opcji równocześnie, na przykład tak:
darkstar:~$ ls –altotal 10drwxr-xr-x 3 burek users 1024 Dec 21 22:11 ./drwxr-xr-x 6 root root 1024 Dec 14 01:39 ../-rw-r--r-- 1 burek users 333 Dec 21 22:11 .bash_history-rw-r--r-- 1 burek users 163 Dec 7 14:25 .kermrc-rw-r--r-- 1 burek users 34 Jun 6 1995 .less-rw-r--r-- 1 burek users 116 Nov 23 1995 .lessrcdrwxr-xr-x 1 burek users 1024 Dec 7 13:36 .term/
Wyświetlony został spis plików w katalogu wraz z dotyczącymi ich szczegółami (które zostaną wyjaśnione w rozdziale 8. „System plików”). Opcja –l może być użyta samodzielnie; powoduje ona właśnie wyświetlenie szczegółowych informacji o plikach. Czasem nazwy plików są tak długie, że nie mieszczą się w jednym wierszu – w takiej sytuacji Linux po prostu przeniesie dalszą część do wiersza następnego.
Ujmując rzecz ściśle, myślnik (–) nie jest częścią opcji. Jest to po prostu znak, który powiadamia Linuxa, że następny należy traktować jako właściwe oznaczenie opcji. Przed myślnikiem musi wystąpić spacja, nie powinno jej być natomiast między myślnikiem a nazwą opcji. Jeśli jakiś tekst ma znaleźć się w wierszu poleceń po nazwie opcji, również powinien być oddzielony spacją[1].
Po myślniku można podać więcej niż jedną nazwę opcji, jak w przykładzie ls –al. Ich porządek zazwyczaj nie gra roli, czyli polecenie ls –la działa dokładnie tak samo jak ls –al. Jednoczesne podawanie kilku opcji ma zastosowanie tylko w programach, w których ich nazwy są jednoliterowe.
Można też podać opcje oddzielnie, np. ls –a –l. Takie rozwiązanie jest przeważnie stosowane, gdy po jakiejś opcji wymagane są dodatkowe dane.
Domyślnie polecenie ls porządkuje wyświetlane nazwy plików w kolejności alfabetycznej. Czasem bardziej interesująca jest informacja o tym, kiedy dany plik został utworzony czy zmodyfikowany. W takim przypadku pomocna może być opcja t, która powoduje, że nazwy plików sortowane są według daty – najpierw wyświetlane są pliki najnowsze. Po wydaniu polecenia ls –alt możesz więc otrzymać następujący wynik:
darkstar:~$ ls –alttotal 10drwxr-xr-x 3 burek users 1024 Dec 21 22:11 ./-rw-r--r-- 1 burek users 333 Dec 21 22:11 .bash_historydrwxr-xr-x 6 root root 1024 Dec 14 01:39 ../-rw-r--r-- 1 burek users 163 Dec 7 14:25 .kermrcdrwxr-xr-x 1 burek users 1024 Dec 7 13:36 .term/-rw-r--r-- 1 burek users 116 Nov 23 1995 .lessrc-rw-r--r-- 1 burek users 34 Jun 6 1995 .less
Opcja –r powoduje, że polecenie ls wyświetla nazwy plików posortowane w odwrotnej kolejności. Dość często używa się jej w połączeniu z opcją t. Wydając polecenie ls –altr możesz otrzymać następujące informacje:
darkstar:~$ ls –altrtotal 10-rw-r--r-- ...
Wolf-1