LINUX Mandriva

Page 1

Podrecznik uË™zytkownika wiersza polece´ n , Mandriva Linux 2006

http://www.mandriva.pl


Podrecznik u˙zytkownika wiersza polece´ n: Mandriva Linux 2006 , Data wydania September 2005 Copyright © 2005 Mandriva NeoDoc (http://www.neodoc.biz)Camille Bégnis, Christian Roy, Fabian Mandelbaum, Roberto Rosselli del Turco, Marco De Vitis, Alice Lafox, John Rye, Wolfgang Bornath, Funda Wang, Patricia Pichardo Bégnis, Debora Rejnharc Mandelbaum, Mickael Scherer, Jean-Michel Dault, Lunas Moon, Céline Harrand, Fred Lepied, Pascal Rigaux, Thierry Vignaud, Giuseppe Ghibò, Stew Benedict, Francine Suzon, Indrek Madedog Triipus, Nicolas Berdugo, Thorsten Kamp, Fabrice Facorat, Xiao Ming, Snature , Guylhem Aznar, Pavel Maryanov, Annie Tétrault, Aurelio Marinho Jargas, Felipe Arruda, Marcia Gawlak Hoshi, Bob Rye, Jean-Luc Borie, Roberto Patriarca, Tomasz Bednarski, i Marcin Ku´zminski ´

Nota prawna ˙ by´c rozprowadzany tylko na warunkach okre´slonych w Open Publication License, v1.0 lub pó´zniejszej Niniejszy materiał moze (Najnowsza wersja jest obecnie dost˛epna na opencontent.org (http://www.opencontent.org/openpub/)). •

Rozpowszechnianie zmienionych wersji niniejszego dokumentu bez wyra´znej zgody wła´sciciela jest zabronione.

Rozpowszechnianie pracy lub jej pochodnej w formie standardowego (papierowego) podr˛ecznika bez wcze´sniejszej zgody wła´sciciela jest zabronione.

˙ „Mandriva” oraz „DrakX” sa˛ zarejestrowanymi znakami towarowymi w USA i/lub innych krajach. „Logo gwiazdy” jest takze ˙ zarejestrowane. Wszystkie prawa zastrzezone. Wszystkie inne prawa zwiazane ˛ z niniejszym dokumentem stanowia˛ własno´sc´ ich wła´scicieli.

O tworzeniu tego podr˛ecznika Podr˛ecznik ten został napisany i utrzymany przez NeoDoc (http://www.neodoc.biz). Tłumaczenia zostały wykonane przez NeoDoc, Mandriva oraz innych tłumaczy. Niniejszy dokument został napisany w DocBooku XML. Wykorzystane pliki były zarzadzane ˛ za pomoca˛ Borges Collaborative Content Creation System (C3S) (http://sourceforge.net/projects/borges-dms). Pliki z´ ródłowe XML zostały przetworzone przez xsltproc, oraz program jadetex (dla wersji elektronicznej) przy wykorzystaniu arkuszy stylów Normana Walsha. Zrzuty ekranu zostały wykonane przy wykorzystaniu xwd lub GIMP i skonwertowane programem convert (z pakietu ImageMagick). Wszystkie te programy sa˛ wolnym oprogramowaniem i sa˛ dost˛epne w Twojej dystrybucji Mandriva Linux.


Spis tre´sci Wst˛ep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1. O systemie Mandriva Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1. Kontakt ze Społeczno´scia˛ Mandriva Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Dołacz ˛ do Klubu! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3. Subskrypcja Mandriva Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4. Zamawianie produktów Mandrivy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5. Wsparcie dla Mandriva Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. O niniejszym podr˛eczniku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Od wydawcy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Style wykorzystywane w niniejszym podr˛eczniku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. Formaty pisowni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2. Style ogólne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 I. Introduction to the Linux System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Podstawowe zagadnienia systemu UNIX® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ˙ 1.1. Uzytkownicy i grupy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. Pliki - wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3. Procesy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4. Krótkie wprowadzenie do wiersza polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2. Dyski i partycje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1. Struktura twardego dysku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ˙ 2.2. Zwroty uzywane w nazewnictwie dysków i partycji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3. Organizacja struktury plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1. Dane udost˛epnione/nieudost˛epnione, stałe/zmienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2. Katalog root: / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ˙ katalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3. /usr: Duzy ˙ 3.4. /var: Dane zmieniane podczas uzycia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5. /etc: Pliki konfiguracyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4. System plików Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1. Porównanie systemów plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2. Wszystko jest plikiem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3. Odno´sniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.4. Potoki „anonimowe” i nazwane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.5. Pliki specjalne: pliki trybu znakowego oraz trybu blokowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.6. Dowiazania ˛ symboliczne, ograniczenie dowiaza ˛ n´ „sztywnych” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.7. Atrybuty plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5. System plików /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.1. Informacje na temat procesów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2. Informacje na temat sprz˛etu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.3. Wy´swietlanie i zmiana parametrów jadra ˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 II. Hands On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6. Systemy plików i punkty montowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.1. Podstawowe zasady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2. Partycjonowanie twardego dysku, formatowanie partycji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.3. Polecenia mount i umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. Wprowadzenie do wiersza polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1. Narz˛edzia do obsługi plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.2. Atrybuty plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.3. Korzystanie ze znaków wieloznacznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.4. Przekierowania i potoki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.5. Uzupełnianie wiersza polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.6. Uruchamianie i obsługa procesów w tle: kontrola pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.7. Słowo koncowe ´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8. Edycja tekstów: Emacs i VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.1. Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2. Vi: poprzednik Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.3. Słowo koncowe... ´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9. Narz˛edzia wiersza polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 9.1. Działania na plikach i filtrowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 iii


˙ sci od podanych kryteriów . . . . . . . . . . . . . . . . . . . . . . . . . . 70 9.2. find: Wyszukiwanie plików w zalezno´ 9.3. Okresowe uruchamianie polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.4. Archiwizacja i kompresja danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9.5. Wiele, wiele wi˛ecej... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 10. Kontrola procesów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.1. Dodatkowe informacje dotyczace ˛ procesów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.2. Informacje na temat procesów: ps oraz pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.3. Wysyłanie sygnałów do procesów: kill, killall oraz top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 10.4. Ustawianie priorytetu dla procesu: nice, renice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 11. Pliki rozruchowe: init sysv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 11.1. Na poczatku ˛ był init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 11.2. Poziomy uruchamiania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 12. Bezpieczenstwo ´ zdalnego dost˛epu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 12.1. Konfiguracja serwera SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 12.2. Konfiguracja klienta SSH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 12.3. Kopiowanie plików do lub ze zdalnego systemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 13. Zarzadzanie ˛ pakietami z wiersza polecen´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13.1. Instalacja i usuwanie pakietów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13.2. Zarzadzanie ˛ no´snikami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13.3. Inne polecenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 A. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

iv


Spis tabel 4-1. Charakterystyka systemu plik贸w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

v


vi


Wstep , 1. O systemie Mandriva Linux Mandriva Linux jest dystrybucja˛ GNU/Linux stworzona˛ przez firm˛e Mandriva S.A., która narodziła si˛e w Inter˙ ˙ necie w roku 1998. Jej głównym celem było, i nadal jest dostarczanie łatwego w uzyciu i przyjaznego uzytkownikowi systemu GNU/Linux. Dwa filary Mandriva to otwarte z´ ródła i szeroka współpraca.

7 kwietnia 2005 roku firma Mandrakesoft zmienila swoja, nazwe, na Mandriva, aby podkre´sli´c fuzje, z brazylijska firma, Conectiva. Gl´ owny produkt, Mandrakelinux, otrzymal nowa, nazwe, Mandriva Linux.

1.1. Kontakt ze Spoleczno´scia, Mandriva Linux ˙ umieszczone zostały odno´sniki kierujace ˙ Ponizej ˛ do najwazniejszych z´ ródeł zwiazanych ˛ z Mandriva Linux. ˙ Jezeli chcesz dowiedzie´c si˛e wi˛ecej na temat firmy Mandriva, odwied´z nasza˛ stron˛e internetowa˛ (http: ˙ ˙ odwiedzi´c stron˛e internetowa˛ dystrybucji Mandriva Linux (http://www. takze //www.mandriva.com/). Mozesz mandrivalinux.com/) i wszystkie strony jej pochodne. Mandriva Expert (http://www.mandrivaexpert.com/), to platforma wsparcia firmy Mandriva. Jest to nowe rozwiazanie ˛ oparte na wzajemnym zaufaniu i przyjemno´sci nagradzania innych za ich pomoc. ˙ do zapisania si˛e na rózne ˙ Listy dyskusyjne (http://www.mandrivalinux.com/en/flists. Zach˛ecamy takze php3), na których społeczno´sc´ Mandriva Linux pokazuje swoja˛ aktywno´sc´ i otwarcie na s´ wiat. ˙ Nie mozna zapomnie´c o wej´sciu na nasza˛ witryn˛e dotyczac ˛ a˛ bezpieczenstwa ´ (http://www.mandriva.com/ security). Gromadzi ona cały materiał zwiazany ˛ z bezpieczenstwem ´ dystrybucji Mandriva Linux. Znajdziesz ˙ procedury aktualizacji jadra, ˛ tam porady na temat bezpieczenstwa ´ oraz post˛epowania w razie bł˛edów, a takze ˙ ˙ rózne listy dyskusyjne zwiazane ˛ z bezpieczenstwem, ´ do których mozesz si˛e przyłaczy´ ˛ c, oraz Mandriva Online ˙ (https://www.mandrivaonline.net) (zobacz ). Lektura ta jest podstawa˛ dla kazdego administratora serwera ˙ oraz uzytkownika dbajacego ˛ o bezpieczenstwo. ´

1.2. Dolacz do Klubu! , Mandriva oferuje wiele udogodnien´ dzi˛eki rozwiazaniu ˛ jakim jest Klub Mandriva (http://www.mandrivaclub. com), mi˛edzy innymi: •

˙ takiego jak specjalne pobieranie komercyjnego oprogramowania, dost˛epnego zwykle tylko w sprzedazy, sterowniki sprz˛etowe, aplikacje komercyjne, freeware oraz wersje demo;

prezentacje i głosowania na nowe oprogramowanie poprzez system głosowania na RPM;

dost˛ep do ponad 50,000 pakietów RPM dla wszystkich dystrybucji Mandriva Linux;

rabaty na produkty i usługi w Sklepie Mandriva (http://store.mandriva.com);

dost˛ep do lepszych serwerów lustrzanych dla specjalnych członków Klubu;

wieloj˛ezyczne fora i artykuły;

dost˛ep do Bazy Wiedzy (http://kb.mandrivaclub.com) Mandriva, strony opartej na wiki, zawierajacej ˛ dokumentacj˛e dotyczac ˛ a˛ wielu zagadnien, ´ takich jak administracja, łaczno´ ˛ sc´ , rozwiazywanie ˛ problemów, oraz wielu innych;

˙ mozliwo´ sc´ rozmowy z deweloperami Mandriva Linux na Klubowym Czacie (https://www.mandrivaclub. com/user.php?op=clubchat);

˙ mozliwo´ sc´ poszerzania wiedzy na temat GNU/Linux, poprzez e-szkolenia firmy Mandriva (http://campus. mandriva.com).

Finansujac ˛ Mandriva poprzez Mandriva Club b˛edziesz bezpo´srednio wpływał na rozwój dystrybucji Mandriva Linux i pomagał nam tworzy´c najlepszy system GNU/Linux.

1


Wst˛ep

1.3. Subskrypcja Mandriva Online Mandriva oferuje bardzo wygodny sposób automatycznej aktualizacji systemu, pozwalajacy ˛ na usuwanie bł˛e˙ dów i naprawianie luk bezpieczenstwa. ´ Sprawd´z . Odwied´z równiezstron˛ e internetowa˛ Mandriva Online (https://www.mandrivaonline.net/), aby dowiedzie´c si˛e wi˛ecej na temat tej usługi.

1.4. Zamawianie produkt´ ow Mandrivy ˙ Uzytkownicy Mandriva Linux moga˛ zamawia´c produkty on-line w Sklepie Mandriva (http://store. mandriva.com/). Znajdziesz tam nie tylko oprogramowanie Mandriva Linux, systemy operacyjne i płyty roz˙ specjalne oferty subskrypcji, wsparcie, oprogramowanie innych ruchowe CD „live” (takie jak Move), ale takze ˙ o GNU/Linux, a takze ˙ inne dodatki Mandriva. firm oraz licencje, dokumentacje, ksia˛zki

1.5. Wsparcie dla Mandriva Linux ˙ Umiej˛etno´sci wielu utalentowanych ludzi, którzy korzystaja˛ z Mandriva Linux moga˛ by´c bardzo uzyteczne przy tworzeniu naszego systemu: •

Pakiety. System GNU/Linux jest zbudowany głównie z programów pozyskanych z Internetu. Musza˛ one by´c spakowane, aby współdziałały ze soba.˛

Programowanie. Jest bardzo wiele projektów bezpo´srednio wspieranych przez Mandriva: znajd´z ten, który najbardziej odpowiada Twoim potrzebom i zaoferuj swoja˛ pomoc głównym deweloperom.

˙ Umi˛edzynarodowienie. Mozesz nam pomóc w tłumaczeniu stron internetowych, programów oraz ich dokumentacji.

Odwied´z stron˛e naszych projektów (http://www.mandriva.com/labs/), aby dowiedzie´c si˛e wi˛ecej o tym, jak ˙ mozesz wspomóc rozwój Mandriva Linux.

2. O niniejszym podreczniku , Podr˛ecznik uz˙ ytkownika wiersza polecen´ skierowany jest do ludzi chcacych ˛ lepiej zrozumie´c swój system Man˙ do tych którzy chca˛ skorzysta´c z jego ogromnych mozliwo´ ˙ driva Linux, a takze sci. Po przeczytaniu tego podr˛ecznika, b˛edziesz potrafił prowadzi´c codzienna˛ administracj˛e systemu GNU/Linux. Oto omówienie dwóch ˙ rozdziałów: składników, a takze •

W pierwszej cz˛es´ ci (Introduction to the Linux System), przedstawiamy system GNU/Linux. Omawiamy jego architektur˛e, główne pliki systemu oraz kilka innych zagadnien´ taki jak system plików /proc. W pierwszym rozdziale (“Podstawowe zagadnienia systemu UNIX®”, strona 7) przedstawiamy paradygmat systemu UNIX® omawiajac ˛ dokładniej s´ wiat systemu GNU/Linux. Omawiamy typowe narz˛edzia zarzadza˛ ˙ kilka uzytecznych ˙ nia plikami a takze funkcji dostarczanych przez przez powloka. Kolejny rozdział jest uzupełnieniem (“Dyski i partycje”, strona 17) w którym wyja´sniamy jak obsługiwane sa˛ twarde dyski w systemie ˙ partycjonowaniem twardego dysku. GNU/Linux. Zajmiemy si˛e takze W “Organizacja struktury plików”, strona 21 przedstawiamy organizacj˛e drzewa plików. Systemy UNIX® ma˙ plik ma swoje miejsce w okre´slonym katalogu. Po przeczytaniu ja˛ tendencj˛e do rozrastania si˛e, jednak kazdy ˙ sci od ich roli w systemie. tego rozdziału, b˛edziesz wiedział gdzie szuka´c plików w zalezno´

Kolejny rozdział dotyczy systemów plików (“System plików Linux”, strona 25). Po przedstawieniu tych dost˛epnych, omówimy typy plików oraz dodatkowe zagadnienia i narz˛edzia takie jak potoki. Kolejny rozdział (“System plików /proc”, strona 35) przedstawia szczególny (i wirtualny) system plików GNU/Linux o nazwie /proc. •

Druga cz˛es´ c´ (Hands On) dotyczy tematów bardziej praktycznych. Mówimy o stosunkach pomi˛edzy systemami plików a punktami montowania, jak korzysta´c z wiersza polecen, ´ jak zmienia´c pliki konfiguracyjne ˙ ˙ wiele wi˛ecej. uzywaj ac ˛ niewielkich lecz bardzo funkcjonalnych edytorów, a takze Omawiamy zagadnienia systemów plików oraz punktów montowania (“Systemy plików i punkty montowa˙ przedstawiajac nia”, strona 41) definiujac ˛ obydwa te terminy, a takze ˛ rzeczywiste przykłady.

2


Wst˛ep Nast˛epnie przedstawiamy interfejs wiersza polecen´ (“Wprowadzenie do wiersza polecen”, ´ strona 47). Omawia˙ sposoby przenoszenia, my narz˛edzia zarzadzania ˛ plikami takie jak polecenia mkdir oraz touch, a takze ˙ co to sa˛ atrybuty pliku usuwania oraz kopiowania plików i katalogów w systemie plików. Powiemy takze ˙ zagadnienie powłoki, i jak je nadawa´c za pomoca˛ polecen´ takich jak chown oraz chgrp. Omówimy takze ˙ podstawowe zagadnienia kontrolne. przekierowan´ i potoków, uzupełniania wiersza polecen, ´ a takze Kolejny rozdział obejmuje edycj˛e tekstu (“Edycja tekstów: Emacs i VI”, strona 57). Poniewaz˙ wi˛ekszo´sc´ plików konfiguracyjnych UNIX® jest plikami tekstowymi, b˛edziesz je musiał edytowa´c w edytorze tekstów. Dowiesz si˛e jak korzysta´c z dwóch najpopularniejszych edytorów w s´ wiecie UNIX® i GNU/Linux: programów Emacsnapisanego przez Richarda M. Stallmana oraz Vi, napisanego w 1976 przez Bill Joy. Powienie´s teraz umie´c dokona´c podstawowej konserwacji swojego systemu. Kolejne dwa rozdziały omawiaja˛ praktyczne zastosowanie wiersza polecen´ (“Narz˛edzia wiersza polecen”, ´ strona 65), i kontrol˛e procesów (“Kontrola procesów”, strona 77). Kolejny rozdział (“Pliki rozruchowe: init sysv”, strona 81) przedstawia procedur˛e rozruchowa˛ Mandriva Li˙ jej efektywne wykorzystanie. Omawiamy init (proces który pozwala Twojemu systemowi na nux, a takze ˙ ˙ poziomy uruchamiania które mozesz wykorzystywa´c (szczególnie dla celów konserrozruch) oraz rózne ˙ krótko jak korzysta´c z programu drakxservices do obsługi usług (zobacz , wacyjnych). Wyja´sniamy takze aby uzyska´c wi˛ecej informacji). W kolejnym rozdziale (“Bezpieczenstwo ´ zdalnego dost˛epu”, strona 85) jak bezpiecznie uzyska´c dost˛ep do zdalnego systemu (poprzez ssh) aby wykona´c konserwacj˛e, uruchamia´c programy, itp. Udost˛epniamy krótki przeglad ˛ schematu połaczenia ˛ a nast˛epnie opisujemy podstawowa˛ konfiguracj˛e klienta/serwera ssh. Wy˙ omówione w tym rozdziale. korzystanie scp b˛edzie takze Zakonczymy ´ rozdziałem po´swi˛econym zarzadzaniu ˛ pakietami poprzez wiersz polecen´ (“Zarzadzanie ˛ pakietami z wiersza polecen”, ´ strona 87). Dowiesz si˛e jak korzysta´c z narz˛edzia urpmi, razem z jego składnikiem o ˙ jak zarzadza´ nazwie urpme. Wyja´snimy takze ˛ c no´snikami.

3. Od wydawcy Filozofia otwartych z´ ródeł zawsze jest pozytywnie nastawiona do ludzi zainteresowanych współpraca! ˛ Aktu˙ ˙ alizacja dokumentacji Mandriva Linux to trudne zadanie. Mozesz nam pomóc na wiele róznych sposobów. W rzeczywisto´sci, zespół dokumentacyjny stale szuka utalentowanych wolontariuszy chcacych ˛ wzia´ ˛c udział w realizacji nast˛epujacych ˛ zadan: ´ •

pisaniu lub aktualizowaniu;

tłumaczeniu;

edycji;

programowaniu XML/XSLT

˙ ˙ czasu, mozesz ˙ ˙ Jezeli posiadasz duzo napisa´c lub zaktualizowa´c cały rozdział; jezeli znasz j˛ezyk obcy, mo˙zesz tłumaczy´c podr˛eczniki; Jezeli ˙ ˙ masz pomysły jak doskonali´c zawarto´sc´ , daj nam zna´c; jezeli potrafisz programowa´c i chciałby´s nam pomóc rozwina´ ˛c Borges Collaborative Content Creation System (C3S) ˙ (http://sourceforge.net/projects/borges-dms), to zapraszamy. Skontaktuj si˛e z nami jezeli odnajdziesz ˙ jakiekolwiek bł˛edy w dokumentacji, które mozemy naprawi´c! W sprawach dotyczacych ˛ projektu dokumentacji Mandriva Linux, skontaktuj si˛e z administratorem dokumentacji (mailto:documentation@mandriva.com) lub odwied´z Strony Projektu Dokumentacji Mandriva Linux (http://qa.mandriva.com/twiki/bin/view/Main/DocumentationTask/).

Pamietaj z˙ e od czerwca 2004 dokumentacja Mandriva Linux i , rozw´ oj Borges jest obslugiwany przez firme, NeoDoc (http://www. neodoc.biz).

3


Wst˛ep

4. Style wykorzystywane w niniejszym podreczniku , 4.1. Formaty pisowni ˙ c wyrazenia ˙ ˙ Aby wyra´znie odrózni´ specjalne od pozostałej cz˛es´ ci tekstu, uzywamy odmiennego formatowa˙ ˙ ˙ ˙ ich znaczenie. nia. Ponizsza tabela pokazuje przykłady kazdego słowa z róznych grup formatów, a takze Przyklad formatowania

Znaczenie

inode

Oznaczenie zwrotu technicznego ..

ls -lta

Oznaczenie polecen´ i ich argumentów. (zobacz Oznaczenia polecen, ´ strona 4).

a_file

˙ by´c takze ˙ stosowane do nazw pakietów RPM. Oznaczenie nazw plików. Moze

ls(1)

Odniesienie do strony man. Aby odczyta´c stron˛e, po prostu wpiszman 1 ls, we wierszu polecen. ´

$ ls *.pid

Formatowanie wykorzystywane do oznaczenia tekstowych zrzutów ekranu, ˙ które mozesz zobaczy´c na ekranie.

localhost

˙ Dosłowne dane, które nie pasuja˛ do zadnych poprzednio wspomnianych kategorii. Na przykład, słowo kluczowe znajdujace ˛ si˛e w pliku konfiguracyjnym.

OpenOffice.org

˙ sci od zawarto´sci, aplikacja i nazwa Okre´sla nazwy aplikacji. W zalezno´ polecenia moga˛ by´c takie same, lecz odmiennie sformatowane. Na przykład, wi˛ekszo´sc´ polecen´ jest pisana małymi literami, natomiast nazwy aplikacji zwykle rozpoczynaja˛ od liter wielkich. Oznacza pozycje menu lub etykiety interfejsu graficznego. Podkre´slona litera, je´sli jest obecna, informuje o skrócie klawiatury, dost˛epnym po wci´sni˛eciu klawisza Alt oraz odpowiedniej litery.

Files

Le petit chaperon rouge

˙ Oznacza wyrazenia w obcym j˛ezyku.

Uwaga!

˙ ˙ n, Zastrzezone dla specjalnych ostrzeze ´ aby podkre´sli´c znaczenie ich słów. ˙ Przeczytaj je uwaznie.

Wyr´ oz˙ nia notatke. , Przewa˙znie podaje dodatkowe informacje na okre´slony temat.

Przedstawia porade. c to porada dotyczaca wykonania , Mo˙ze by´ , okre´slonej czynno´sci, albo wskaz´ owka na temat u˙zytecznej funkcji, takiej jak klawisz skr´ otu.

Bad´ , z ostro˙zny kiedy zobaczysz ta, ikone. , Zawsze oznacza ona istotna, informacje, odno´snie zagadnie´ n kt´ orymi sie, zajmujesz.

4.2. Style og´ olne 4.2.1. Oznaczenia polece´ n ˙ Ponizszy przykład pokazuje symbole, które zobaczysz, gdy autor opisuje argumenty polecen: ´ command <non literal argument> [--option={arg1,arg2,arg3}] [optional arg ...]

Te skróty sa˛ standardowe i znajdziesz je wsz˛edzie jak na przykład na stronach man. ˙ oraz „>” (wi˛ecej niz) ˙ oznaczaja˛ obowiazkowy ˙ by´c skoSymbole „<” (mniej niz) ˛ argument, który nie moze piowany, lecz powinien by´c zamieniony na inny zgodnie z Twoimi potrzebami. Na przykład, argument

4


Wst˛ep <filename>,odnosi si˛e do nazwy pliku. Je´sli nazwa pliku to foo.txt powiniene´s wpisa´c foo.txt, a nie <foo.txt>, czy <filename>. Nawiasy kwadratowe („[ ]”) oznaczaja˛ argumenty dodatkowe, które moga,˛ lecz nie musza˛ by´c dołaczone ˛ do polecenia. ˙ by´c dodana. Nawiasy zwykłe („...”) oznaczaja˛ liczb˛e argumentów, która moze Nawiasy klamrowe („{ }”) zawieraja˛ argumenty autoryzowane w tym konkretnym miejscu. Jeden z nich ma by´c tutaj umieszczony.

4.2.2. Powiadomienia specjalne ˙ musisz Od czasu do czasu, b˛edziesz poproszony o wci´sni˛ecie, na przykład, klawiszy Ctrl-R, co oznacza, ze wcisna´ ˛c i przytrzyma´c klawisz Ctrl, a nast˛epnie uderzy´c w liter˛e R. To samo dotyczy klawiszy Alt i Shift.

U˙zywamy wielkich liter, aby przedstawi´c klawisze liter; nie oznacza to z˙ e musza, one by´c wpisane jako wielkie litery. Jakkolwiek w niekt´ orych programach mo˙ze wystapi´ oz˙ nica pomiedzy wpisaniem , c r´ , R, a wpisaniem r. Zostaniesz o tym poinformowany w przypadku u˙zywania takich program´ ow.

W przypadku menu, przej´scie do pozycji menu Plik→Przeladuj konfiguracje, u˙zytkownika (Ctrl-R) oznacza klik˙ ni˛ecie na tekst Plik wy´swietlony na pasku menu (przewaznie zlokalizowanym w lewej górnej stronie okna). Nast˛epnie, w rozwini˛etym menu klikni˛ecie na pozycj˛e Przeladuj konfiguracje, u˙zytkownika. Dodatkowo zwró´c ˙ korzytajac uwag˛e na fakt, ze ˛ z kombinacji klawiszy Ctrl-R uzyskasz ten sam efekt.

4.2.3. Przykladowi u˙zytkownicy systemu ˙ ˙ ˙ Gdzie tylko jest to mozliwe, uzywamy dwóch przykładowych uzytkowników: Ania Pingwin

ania

˙ Jest to nasz domy´slny uzytkownik, wykorzystywany ˙ w wi˛ekszo´sci przykładów w tej ksia˛zce.

Piotr Pingwin

piotr

˙ ˙ by´c utworzony przez Ten uzytkownik moze administratora systemu.

5


Wst˛ep

6


Rozdzial 1. Podstawowe zagadnienia systemu UNIX® ˙ juz˙ by´c Ci dobrze znana. Moze ˙ nawet korzystasz z systemu UNIX® w pracy; je´sli tak Nazwa „UNIX®” moze jest, to ten rozdział nie b˛edzie zbytnio przydatny.

˙ Dla tych, którzy nigdy nie uzywali systemu UNIX®, rozdział ten jest lektura˛ obowiazkow ˛ a.˛ Zrozumienie za˙ odpowiedzie´c na wiele pytan, ˙ ´ które zadaja˛ poczatkowi ˛ uzytgadnien´ opisywanych w tym rozdziale, pomoze kownicy s´ rodowiska GNU/Linux. Dzi˛eki temu rozdziałowi b˛edziesz mógł równiez˙ rozwiaza´ ˛ c cz˛es´ c´ problemów, które pojawia˛ si˛e w przyszło´sci.

1.1. U˙zytkownicy i grupy ˙ ˙ ze wzgl˛edu na ich znaczenie w Dział ten wprowadza poj˛ecia uzytkownika i grupy, które sa˛ niezwykle wazne s´ rodowisku Linux oraz przy wyja´snianiu innych poj˛ec´ . Linux jest prawdziwym system wielou˙zytkownikowym i z tego powodu, aby korzysta´c ze swojego systemu ˙ ˙ GNU/Linux, musisz posiada´c na nim konto. Jezeli utworzyłe´s uzytkownika podczas instalacji, to wła´sciwie ˙ utworzyłe´s juz˙ konto. Jezeli nie pami˛etasz tego momentu, byłe´s wtedy proszony o podanie nast˛epujacych ˛ informacji: •

˙ „pełnej nazwy” uzytkownika (co mogło by´c dowolna,˛ wybrana˛ przez Ciebie nazwa); ˛

identyfikatora;

oraz hasła.

˙ ˙ loginem) i hasło. Musisz posiada´c obydwa z Dwa najwazniejsze parametry, to identyfikator (zwany takze nich, aby uzyska´c dost˛ep do systemu. ˙ ˙ grupa domy´slna. Pó´zniej zobaczysz, ze ˙ grupy sa˛ przyKiedy utworzysz uzytkownika, tworzona jest takze ˙ ˙ zawiera´c tylu uzytkowników, ˙ Grupa moze ilu datne, gdy chcesz udost˛epnia´c pliki innym uzytkownikom. ˙ ˙ sobie zyczysz. To rozwiazanie ˛ jest spotykane bardzo cz˛esto. Na przykład, na uniwersytecie mozesz posiada´c ˙ stwierdzenie odwrotne: uzyt˙ jedna˛ grup˛e na departamenty, jedna˛ dla wykładowców, itd. Poprawne jest takze ˙ by´c członkiem tylu grup, ilu sobie zyczysz. ˙ ˙ by´c kownik moze Na przykład, wykładowca matematyki moze ˙ grupy studentów matematyki. członkiem grupy wykładowców, a takze Kiedy juz˙ przedstawili´smy podstawowe informacje, przyjrzymy si˛e dokładnie procesowi logowania. ˙ interfejs graficzny jest uruchamiany automatycznie po właczeniu Jezeli ˛ komputera, ekran powitalny wygladał ˛ b˛edzie tak, jak to przedstawia rysunek 1-1.

7


Rozdział 1. Podstawowe zagadnienia systemu UNIX®

Rysunek 1-1. Sesja logowania w trybie graficznym Aby si˛e zalogowa´c, najpierw musisz wybra´c z listy swoje konto. Wtedy, pojawi si˛e nowe okno z poleceniem ˙ nie b˛edziesz widział wprowadzanego hasła, gdyz˙ ze wzgl˛edów bezpiewprowadzenia hasła . Pami˛etaj, ze ˙ ˙ ˙ wybra´c rodzaj sesji (menedzera ˙ znak b˛edzie widoczny jako gwiazdka (*). Mozesz takze czenstwa, ´ kazdy okien). Kiedy juz˙ b˛edziesz gotowy, kliknij na przycisk Zaloguj. ˙ znajdujesz si˛e w trybie „tekstowym”, pojawi si˛e komunikat podobny do tego znajdujacego ˙ Jezeli ˛ si˛e ponizej: Mandriva Linux release 2006.0 (CodeName) for i586 Kernel 2.6.12-6mdk on an i686 / tty1 [nazwa_komputera] login:

Aby si˛e zalogowa´c, wpisz swój identyfikator po znaku zach˛ety login: i wci´snij Enter. Nast˛epnie, program logowania (o nazwie login) wy´swietli znak zach˛ety Haslo: i b˛edzie czekał, az˙ wprowadzisz swoje hasło. Podobnie ˙ nie zobaczysz jak w przypadku trybu graficznego, nie zobaczysz wpisywanego przez siebie tekstu, ale takze gwiazdek. ˙ mozesz ˙ Pami˛etaj, ze si˛e zalogowa´c kilka razy korzystajac ˛ z tego samego konta w dodatkowych konsolach ˙ ˙ ˙ oraz w X. Kazda otwarta sesja jest niezalezna od innych, a mozliwe jest nawet otwarcie kilku sesji X w tym samym czasie (jakkolwiek nie jest to zalecane gdyz˙ pochłania znaczna˛ ilo´sc´ zasobów). Domy´slnie, Mandriva Linux posiada dodatkowo sze´sc´ terminali wirtualnych poza tym zarezerwowanym dla interfejsu graficznego. ˙ ˙ Mozesz si˛e przełaczy´ ˛ c do kazdego z nich wciskajac ˛ kombinacj˛e klawiszy Ctrl-Alt-F<n>, gdzie <n> jest numerem terminala, do którego chcesz si˛e przełaczy´ ˛ c. Domy´slnie, terminal numer 7 jest terminalem interfejsu ˙ wcisna´ graficznego. Tak wi˛ec, aby przełaczy´ ˛ c si˛e na przykład do drugiego terminala, nalezy ˛c klawisze Ctrl, Alt oraz F2. ˙ o podanie hasła dla uzytkownika ˙ Podczas instalacji, DrakX poprosił takze specjalnego: root. Jest to admini˙ strator systemu, którym prawdopodobnie b˛edziesz Ty. Dla własnego bezpieczenstwa, ´ jest bardzo wazne, aby ˙ root było zawsze zabezpieczone dobrym i trudnym do odgadni˛ecia hasłem! konto uzytkownika ˙ cz˛esto logujesz si˛e jako administrator, bardzo łatwo jest spowodowa´c bład, ˙ mie´c wpływ Jezeli ˛ który moze ˙ to zrobi´c zaledwie jeden bład. ˙ ˙ na cały system: moze ˛ Dodatkowo, jezeli nie ustawiłe´s hasła dla konta uzyt˙ ˙ uszkodzi´c dowolna˛ cz˛es´ c´ Twojego systemu (a nawet kownika administrator, to ka˙zdy uzytkownik moze innego systemu operacyjnego zainstalowanego na Twoim komputerze!). Oczywi´scie nie jest to dobry pomysł. ˙ wewn˛etrznie system nie identyfikuje Ci˛e po Twojej nazwie uzytkownika. ˙ ˙ Warto wspomnie´c, ze Uzywa on uni˙ kalnego numeru przypisanego do Twojej nazwy: User ID (UID) . Podobnie, kazda grupa jest identyfikowana po swoim Group ID (GID), a nie po nazwie.

8


Rozdział 1. Podstawowe zagadnienia systemu UNIX®

1.2. Pliki - wprowadzenie W porównaniu do Windows® i wi˛ekszo´sci innych systemów operacyjnych, pliki w systemie GNU/Linux sa˛ ˙ Aby uzyska´c szczeobsługiwane w odmienny sposób. W tym dziale opiszemy najbardziej oczywiste róznice. ˙ przeczyta´c “System plików Linux”, strona 25. gółowe informacje, nalezy

˙ ˙ Linux jest systemem wielouzytkownikowym: ˙ ˙ Główne róznice wynikaja˛ z tego, ze kazdy plik jest wyłaczn ˛ a˛ ˙ własno´scia˛ jednego uzytkownika i jednej grupy. Jedna˛ rzecza,˛ o której wcze´sniej nie wspominali´smy jest to, ˙ kazdy ˙ ˙ ˙ ze uzytkownik posiada własny katalog (zwany katalogiem domowym). Uzytkownik jest wła´scicielem tego katalogu i wszystkich plików w nim si˛e znajdujacych. ˛ Jak juz˙ zostało wspomniane (zobacz Uz˙ ytkownicy i ˙ ˙ si˛e znajdowa´c w wi˛ecej niz˙ jednej grupie. grupy, strona 7), uzytkownik moze ˙ nie miało by to zupełnie znaczenia, gdyby własno´sc´ była tylko zapisem. Wła´sciciel pliku, uzytkow˙ Jednakze, ˙ nik, ma szczególne uprawnienia dotyczace ˛ plików. Te uprawnienia pozwalaja˛ na rozróznienie trzech katego˙ ˙ ˙ rii uzytkowników: wła´sciciela plików, kazdego uzytkownika, który jest członkiem grupy zwiazanej ˛ z plikiem (zwanej równiez˙ grupa˛ wła´sciciela) ale nie jest jego wła´scicielem oraz innych, do której to kategorii nalez˙ a˛ ˙ wszyscy pozostali uzytkownicy, którzy nie sa˛ ani wła´scicielami, ani członkami grupy wła´sciciela. Sa˛ trzy rodzaje uprawnien: ´ ˙ 1. Prawo odczytu (r): pozwala uzytkownikowi na odczytanie zawarto´sci pliku. W przypadku katalogu, ˙ ˙ zobaczy´c list˛e jego zawarto´sci (np. pliki znajdujace uzytkownik moze ˛ si˛e w katalogu). 2. Prawo zapisu (w): pozwala na zmian˛e zawarto´sci pliku. W przypadku katalogu, uprawnienie zapisu poz˙ ˙ uzytkownik ˙ wala uzytkownikowi na dodawanie i usuwanie plików z tego katalogu, nawet jezeli nie jest wła´scicielem pliku. 3. Prawo uruchomienia (x): pozwala na uruchomienie pliku (zwykle, tylko pliki wykonywalne posiadaja˛ ˙ takie uprawnienia). W przypadku katalogu, uzytkownik ma prawo go przeglada´ ˛ c łacznie ˛ ze znajdujacymi ˛ ˙ jest to odmienne od prawa odczytu, gdyz˙ uzytkownik ˙ ˙ mie´c si˛e w nim podkatalogami. Pami˛etaj, ze moze ˙ mozliwo´ sc´ przegladni˛ ˛ ecia katlogu, ale nie mie´c prawa odczytu jego zawarto´sci! ˙ ˙ ˙ zezwoli´c tylko sobie na odczyt pliku, a zaKazda kombinacja uprawnien´ jest mozliwa. Na przykład, mozna ˙ ˙ ˙ zmieni´c broni´c dost˛epu do niego wszystkim pozostałym uzytkownikom. Jako wła´sciciel pliku, mozesz takze grup˛e (wtedy i tylko wtedy, gdy jeste´s członkiem innej grupy). ˙ Przyjrzyjmy si˛e przykładowemu plikowi i katalogowi. Ponizszy ekran przedstawia wynik wprowadzenia polecenia ls -l z wiersza polecen: ´ $ ls -l total 1 -rw-r----drwxr-xr-$

1 ania 2 piotr

users users

0 Jul 8 14:11 a_file 1024 Jul 8 14:11 a_directory/

Wynik polecenia ls -l oznacza (od lewej do prawej): •

Pierwsze dziesi˛ec´ znaków oznacza rodzaj pliku i zwiazane ˛ z nim prawa dost˛epu. Pierwszy znak jest ty˙ ˙ pem pliku: jezeli jest to zwykły plik, to zobaczy znak my´slnika (-). Jezeli jest to katalog, ostatni po lewej stronie znak b˛edzie litera˛ d. Istnieja˛ inne typy plików, które omówimy w pó´zniejszym czasie. Ostatnie dziewi˛ec´ znaków oznacza prawa dost˛epu zwiazane ˛ z tym plikiem. Dziewi˛ec´ znaków reprezentuje trzy grupy trzech praw dost˛epu. Pierwsza grupa oznacza prawa dost˛epu wła´sciciela pliku; kolejne trzy znaki dotycza˛ ˙ wszystkich uzytkowników wchodzacych ˛ w skład grupy; ostatnie trzy znaki oznaczaja˛ uprawnienia innych ˙ ˙ prawo dost˛epu nie zostało zdefiniowane. uzytkowników. My´slnik (-) oznacz, ze

˙ identyfikator pliku nie jest Nast˛epna jest liczba dowiaza ˛ n´ dla pliku. W pó´zniejszym etapie zobaczymy, ze ˙ ze ˙ jest mozliwe, ˙ jego nazwa,˛ ale liczba˛ (numerem w˛ezła), a takze, aby jeden plik na dysku posiadał kilka ˙ zostanie omówione w nazw. W przypadku katalogu, liczba dowiaza ˛ n´ ma szczególne znaczenie, które takze pó´zniejszym czasie.

Nast˛epnym elementem informacji jest nazwa wła´sciciela pliku, a po niej nazwa grupy własno´sci.

Na koncu ´ znajduje si˛e rozmiar pliku (w bajtach) i data jego ostatniej modyfikacji oraz nazwa pliku lub katalogu na samym koncu ´ wiersza.

9


Rozdział 1. Podstawowe zagadnienia systemu UNIX® ˙ Przyjrzyjmy si˛e prawom dost˛epu zwiazanym ˛ z kazdym z tych plików. Przede wszystkim, musimy pomina´ ˛c pierwszy znak oznaczajacy ˛ typ, a dla pliku a_file, otrzymamy nast˛epujace ˛ prawa: rw-r-----. Oto znaczenie poszczególnych uprawnien. ´ •

Pierwsze trzy znaki (rw-) to prawa dost˛epu wła´sciciela, którym w tym przypadku jest ania. Tak wi˛ec, ania ˙ posiada prawo odczytu pliku (r), zmiany jego zawarto´sci (w), ale nie posiada mozliwo´ sci jego uruchomienia (-).

˙ ˙ nast˛epne trzy znaki (r--) maja˛ zastosowanie do kazdego uzytkownika, którym nie jest ania, ale który jest członkiem grupy users. B˛eda˛ oni mogli odczyta´c plik (r), ale nie b˛eda˛ mogli go zmienia´c i uruchamia´c (--).

˙ ˙ ˙ uzytkownika, który nie jest uzytkownikiem ania oraz, który ostatnie trzy znaki (---) dotycza˛ kazdego ˙ ˙ nie jest członkiem grupy users. Ci uzytkownicy nie maja˛ zadnych praw do pliku, dla nich b˛edzie on „niewidoczny”.

Dla katalogu a_directory, prawa dost˛epu sa˛ nast˛epujace: ˛ rwxr-xr--, tak wi˛ec: •

˙ wy´swietla´c list˛e plików w nim zawartych (r), dodawa´c lub usuwa´c piotr, jako wła´sciciel katalogu, moze ˙ moze ˙ go otwiera´c (x). pliki z tego katalogu (w), a takze

˙ ˙ ˙ ˙ Kazdy uzytkownik, który nie jest uzytkownikiem piotr, ale jest członkiem grupy users, b˛edzie miał mozliwo´sc´ wy´swietlenia listy plików tego katalogu (r), ale nie b˛edzie mógł ani dodawa´c, ani usuwa´c plików (-), natomiast b˛edzie mógł katalog otwiera´c (x).

˙ ˙ Kazdy inny uzytkownik b˛edzie tylko w stanie wy´swietla´c zawarto´sc´ tego katalogu (r). Poniewaz˙ nie posiadaja˛ oni uprawnien´ wx, nie b˛eda˛ mogli zapisywa´c plików, ani otwiera´c katalogu.

˙ zmienia´c atrybuty (uprawnienia, wła´sciciela oraz Jest jeden wyjatek ˛ od tych zasad: administrator moze ˙ ˙ przekaza´c własno´sc´ pliku grup˛e) wszystkich plików, nawet jezeli nie jest on wła´scicielem, a przez to moze ˙ czyta´c pliki do których nie ma praw odczytu, przeglada´ samemu sobie! administrator moze ˛ c zawarto´sc´ ˙ ˙ katalogów, do których normalnie nie miałby dost˛epu i tak dalej. Jezeli uzytkownikowi root brakuje upraw˙ je sobie doda. administrator ma pełna˛ kontrol˛e nad systemem, co wymaga pewnego nienia, wystarczy, ze ˙ zaufania w stosunku do osoby, która otrzyma hasło uzytkownika root. ˙ Ponadto, warto wspomnie´c o róznicach pomi˛edzy nazwami plików w s´ wiecie UNIX® oraz Windows®. UNIX® jest w tym przypadku o wiele bardziej elastyczny i posiada mniej ograniczen. ´

˙ zawiera´c dowolny znak, łacznie Nazwa moze ˛ ze znakami niedrukowanymi, poza znakiem 0 w ASCII, który ˙ /, który rozdziela katalogi. Ponadto, poniewaz˙ UNIX® rozpoznaje duze ˙ i oznacza koniec łancucha, ´ a takze ˙ ˙ r oraz R sa˛ uznawane za dwa małe litery, pliki readme oraz Readme sa˛ od siebie rózne, ze wzgl˛edu na to, ze ró˙zne znaki.

˙ s, nazwa pliku nie musi zawiera´c rozszerzenia chyba, ze ˙ tak chcesz nazywa´c swoje Jak pewnie zauwazyłe´ ˙ pliki. Rozszerzenie plików nie identyfikuje ich zawarto´sci w systemie GNU/Linux, ani w prawie zadnym systemie operacyjnym. Tak zwane „rozszerzenia plików” sa˛ do´sc´ proste. Kropka (.) w UNIX® jest tylko ˙ posiada specjalne znaczenie. W systemie UNIX® pliki rozpoczynajace jednym ze znaków, ale takze ˛ si˛e od ˙ katalogów których nazwa rozpoczyna si˛e od . kropki sa˛ „plikami ukrytymi”1, dotyczy to takze

Jakkolwiek, warto wspomnie´c, z˙ e wiele program´ ow graficznych (mened˙zery plik´ ow, aplikacje biurowe, itp.) korzystaja, z rozszerze´ n do rozpoznawania swoich plik´ ow. Dlatego, dobrze jest u˙zywa´c rozszerze´ n plik´ ow dla aplikacji, kt´ ore je wykorzystuja.,

˙ ˙ wydasz takie polecenie. W konsoli, 1. Domy´slnie, ukryte pliki nie b˛eda˛ wy´swietlane w menedzerze plików, chyba ze musisz wpisa´c polecenie ls -a, aby zobaczy´c wszystkie ukryte pliki. Zwykle, zawieraja˛ one informacje na temat konfi˙ si˛e plikom .mozilla oraz .openoffice. guracji. W swoim katalogu home/, przyjzyj

10


Rozdział 1. Podstawowe zagadnienia systemu UNIX®

1.3. Procesy ˙ Proces to zachowanie uruchamianego programu oraz jego s´ rodowiska. Omówimy tutaj tylko najwazniejsze ˙ róznice pomi˛edzy systemami GNU/Linux oraz Windows® (sprawd´z “Kontrola procesów”, strona 77, aby uzyska´c wi˛ecej informacji). ˙ ˙ ˙ Najwazniejsza róznica jest bezpo´srednio zwiazana ˛ z zagadnieniem u˙zytkownika: kazdy proces jest urucha˙ który go uruchamia. Wewn˛etrznie, system identyfikuje procesy za pomoca˛ miany z prawami uzytkownika, ˙ unikatowego numeru, którym jest ID procesu albo PID. Dzi˛eki PID, system wie, kto (czyli który uzytkownik) ˙ sc´ uruchomił proces oraz uzyskuje kilka innych informacji, dzi˛eki którym system musi zweryfikowa´c wazno´ procesu. We´zmy jako przykład plik a_file. piotr b˛edzie w stanie otworzy´c ten plik w trybie tylko do odczytu, ale nie w w trybie odczytu-zapisu poniewaz˙ uprawnienia zwiazane ˛ z plikiem tego zabraniaja.˛ Po raz kolejny ˙ wyjatkiem ˛ od tej reguły jest uzytkownik administrator. Z tego powodu, GNU/Linux jest wirtualnie odporny na wirusy. Aby działa´c, wirusy infekuja˛ pliki wykonywal˙ ne. Jako uzytkownik, nie masz prawa zapisu do istotnych plików systemowych, wi˛ec ryzyko jest w znacznym stopniu ograniczone. Ogólnie rzecz biorac, ˛ wirusy sa˛ rzadkim zjawiskiem w s´ wiecie UNIX®. Jest tylko kilka ˙ znanych wirusów w Linux i sa˛ one nieszkodliwe w przypadku uruchomienia przez zwykłego uzytkownika. ˙ zostana˛ aktywowane przez uzytkownika ˙ Jedyne szkody dla systemu moga˛ wystapi´ ˛ c, jezeli administrator. Mimo tego, oprogramowanie antywirusowe istnieje równiez˙ dla s´ rodowiska GNU/Linux, ale w wi˛ekszo´sci dla plików DOS/Windows®! Dlaczego istnieja˛ programy antywirusowe działajace ˛ w systemie GNU/Linux, które skupiaja˛ si˛e na DOS/Windows®? Coraz cz˛es´ ciej systemy GNU/Linux działaja˛ jako serwery plików dla komputerów Windows®, z pomoca˛ pakietu programu Samba (zobacz rozdział Udost˛epnianie plików i drukarek podr˛ecznika Przewodnik po administracji serwera). Linux do´sc´ łatwo kontroluje procesy. Jednym ze sposobów sa˛ „sygnały”, które pozwalaja˛ na zawieszenie lub zamkni˛ecie procesu poprzez wysłanie do niego odpowiedniego sygnału. Jakkolwiek, jeste´s ograniczony do ˙ wysyłania sygnału do swoich własnych procesów. Za wyjatkiem ˛ uzytkownika administrator, systemy Linux oraz inne oparte na UNIX® nie pozwalaja˛ na wysyłanie sygnałów do procesów uruchamianych przez ˙ innego uzytkownika. W rozdziale “Kontrola procesów”, strona 77, uzyskasz informacje jak otrzyma´c PID procesu i jak wysła´c do niego sygnał.

1.4. Kr´ otkie wprowadzenie do wiersza polece´ n ˙ wyWiersz polecen´ jest najbardziej bezpo´srednim sposobem wysyłania polecen´ do Twojego komputera. Jezeli ˙ jest on o wiele bardziej rozbudowany korzystasz wiersz polecen´ systemu GNU/Linux, to szybko si˛e dowiesz, ze ˙ i wielofunkcyjny niz˙ inne wiersze polecen, ´ które mogłe´s pozna´c wcze´sniej. Wszystko to jest mozliwe, ponie˙ do tysi˛ecy innych narz˛edzi dost˛epnych waz˙ posiadasz dost˛ep nie tylko do wszystkich programów X, ale takze w trybie konsoli (przeciwienstwo ´ trybu graficznego), które nie posiadaja˛ graficznych odpowiedników, a razem z nimi wiele opcji, które tworza˛ mnóstwo kombinacji trudnych do wykorzystania (w takiej ilo´sci) w trybie graficznym. ˙ jeszcze nie pracujesz Wi˛ekszo´sc´ ludzi wymaga wprowadzenia, aby rozpocza´ ˛c prac˛e z wierszem polecen. ´ Jezeli ˙ zrobi´c, to uruchomi´c w trybie konsoli, a korzystasz z interfejsu graficznego, pierwsza˛ rzecza,˛ jaka˛ nalezy emulator terminala. Przejd´z do głównego menu, a znajdziesz je w dziale System+Terminale. Wybierz jeden z ˙ sci od Twojego interfejsu uzytkownika, ˙ ˙ nich, na przykład Konsola lub RXvt. W zalezno´ na Twoim panelu moze znajdowa´c si˛e ikona, która wyra´znie przedstawia terminal (rysunek 1-2).

Rysunek 1-2. Ikona terminala na panelu KDE Kiedy uruchamiasz emulator terminala, to tak na prawd˛e korzystasz z powłoki. Jest to nazwa programu z którym pracujesz. Znajdziesz si˛e po znaku zach˛ety: [ania@localhost ania]$

˙ nazwa˛ uzytkownika ˙ To oznacza, ze jest ania, a nazwa komputera to localhost (co ma miejsce, gdy komputer ˙ jezeli ˙ nie jest cz˛es´ cia˛ sieci). Po znaku zach˛ety znajduje si˛e miejsce na to, aby´s wpisał polecenie. Pami˛etaj, ze ˙ jeste´s uzytkownikiem administrator, znak zach˛ety $ zostanie zamieniony na # (tak jest w przypadku

11


Rozdział 1. Podstawowe zagadnienia systemu UNIX® ˙ domy´slnej konfiguracji, gdyz˙ w systemie GNU/Linux mozesz dostosowa´c wszystkie jego szczegóły). Aby sta´c ˙ si˛e uzytkownikiem root, wprowad´z polecenie su po uruchomieniu powłoki. [ania@localhost ania]$ su # Wprowad´ z hasło administratora; (nie b˛ edzie wy´ swietlone na ekranie) Password: # exit (lub Ctrl-D) przeniesie Ci˛ e z powrotem do konta zwykłego u˙ zytkownika [root@localhost ania]# exit [ania@localhost ania]$

Kiedy uruchomisz powłok˛e pierwszy raz, znajdziesz si˛e w swoim katalogu home/. Aby wy´swietli´c nazw˛e katalogu, w którym si˛e znajdujesz, wpisz pwd (co oznacza Print Working Directory): $ pwd /home/ania

˙ Teraz, przyjrzymy si˛e kilku podstawowym poleceniom, które sa˛ bardzo uzyteczne.

1.4.1. cd: Zmie´ n katalog Polecenie cd jest dokładnie takie samo jak w systemie DOS, ale posiada dodatkowe funkcje. Polecenie to zmie˙ nia katalog roboczy. Mozesz wykorzysta´c . oraz .., które odpowiadaja˛ katalogom biez˙ acemu ˛ i nadrz˛ednemu. Wpisujac ˛ cd bez niczego przeniesie Ci˛e z powrotem do katalogu domowego. Wpisanie cd - przeniesie Ci˛e ˙ ˙ do katalogu w którym znajdowałe´s si˛e poprzednio. Ponadto, mozesz okre´sli´c katalog domowy uzytkownika ˙ jako zwykły uzytkownik, ˙ piotr wpisujac ˛ cd ~piotr (sama opcja ~ oznacza Twój katalog home/). Pami˛etaj, ze ˙ ˙ ˙ jeste´s wyra´znie do tego uprawniony), nie mozesz si˛e dosta´c do katalogu home/ innego uzytkownika (chyba, ze ˙ jeste´s uzytkownikiem ˙ chyba, ze administrator, zalogujmy si˛e jako administrator, aby to prze´cwiczy´c: $ su Password: # pwd /root # cd /usr/share/doc/HOWTO # pwd /usr/share/doc/HOWTO # cd ../FAQ-Linux # pwd /usr/share/doc/FAQ-Linux # cd ../../../lib # pwd /usr/lib # cd ~piotr # pwd /home/piotr # cd # pwd /root

˙ Teraz, przejd´zmy z powrotem do bycia zwykłym uzytkownikiem ponownie wpisujac ˛ exit i wciskajac ˛ klawisz Enter (lub po prostu stosujac ˛ kombinacj˛e klawiszy Ctrl-D).

1.4.2. Niekt´ ore zmienne ´srodowiskowe i polecenie echo Wszystkie procesy posiadaja˛ własne zmienne s´ rodowiskowe, a powloka pozwala przeglada´ ˛ c je za pomoca˛ polecenia echo. Oto niektóre z nich: ˙ a˛ dost˛epu do Twojego katalogu domowe1. HOME: ta zmienna s´ rodowiskowa zawiera ciag, ˛ który jest s´ ciezk go. 2. PATH: zawiera list˛e wszystkich katalogów, w których powloka powinna szuka´c plików wykonywalnych ˙ w przeciwienstwie po wpisaniu polecenia. Pami˛etaj, ze ´ do systemu DOS, domy´slnie, powloka nie b˛edzie ˙ ˛ szukała polecen´ w katalogu biezacym! ˙ 3. USERNAME: ta zmienna zawiera Twoja˛ nazw˛e uzytkownika. ˙ 4. UID: ta zmienna zawiera Twoje ID uzytkownika.

12


Rozdział 1. Podstawowe zagadnienia systemu UNIX® ˙ 5. PS1: okre´sla, co wy´swietla znak zach˛ety, i cz˛esto jest kombinacja˛ specjalnych sekwencji. Mozesz przeczyta´c bash(1) strony podr˛ecznika w celu uzyskania wi˛ekszej ilo´sci informacji wpisujac ˛ polecenie man bash w terminalu. Aby powloka wy´swietliła warto´sc´ zmiennej, musisz wstawi´c znak $ przed jej nazwa.˛ Oto przykład zastosowania polecenia echo: $ echo Hello Hello $ echo $HOME /home/ania $ echo $USERNAME ania $ echo Hello $USERNAME Hello ania $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/ania

˙ Jak mozesz zobaczy´c, powloka podmienia warto´sc´ zmiennej zanim wykona polecenie. W innym przypadku, nasz przykład cd $HOME nie działałby poprawnie. W rzeczywisto´sci, powłoka najpierw zamieniła $HOME swoja˛ warto´scia˛ (/home/ania), wi˛ec wiersz przybrał posta´c cd /home/ania, co było zgodne z naszymi oczekiwaniami. To samo stało si˛e w przykładzie z echo $USERNAME.

Je˙zeli jedna z naszych zmiennych ´srodowiskowych nie istnieje, mo˙zesz ja, tymczasowo utworzy´c wpisujac export , ENV_VAR_NAME=value. Kiedy to zrobisz, mo˙zesz zweryfikowa´c to, co zostalo utworzone: $ export USERNAME=ania $ echo $USERNAME ania

1.4.3. cat: Wy´swietla na ekranie zawarto´s´ c jednego lub wiecej plik´ ow , To polecenie wy´swietla zawarto´sc´ jednego lub wi˛ecej plików na wyj´sciu standardowym, zwykle ekranie: $ cat /etc/fstab # Ten plik jest edytowany za pomoca˛ fstab-sync - zobacz ’man fstab-sync’ /dev/hda2 / ext3 defaults 1 1 /dev/hdc /mnt/cdrom auto umask=0022,user,iocharset=utf8,noauto,ro,exec,users 0 0 none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0022,iocharset=utf8,sync 0 0 none /proc proc defaults 0 0 /dev/hda3 swap swap defaults 0 0 $ cd /etc $ cat modprobe.preload # /etc/modprobe.preload: kernel modules to load at boot time. # # Ten plik powinien zawiera´ c nazwy modułów jadra, ˛ które maja˛ # by´ c uruchamiane przy starcie systemu, jeden na wiersz. Komentarze rozpoczynaja˛ si˛ e # znakiem ‘#’, a wszystko po nim jest ignorowane. # ten plik jest przeznaczony dla module-init-tools (jadra ˛ 2.5 i wy˙ zsze) TYLKO # dla starszych jader ˛ u˙ zywaj /etc/modules nvidia-agp $ cat shells /bin/bash /bin/csh /bin/sh /bin/tcsh

13


Rozdział 1. Podstawowe zagadnienia systemu UNIX®

1.4.4. less: Pager

Nazwa ta jest gra˛ słów zwiazan ˛ a˛ z pierwszym pagerem wykorzystywanym w systemie UNIX® o nazwie ˙ ˙ more. Pager jest programem umozliwiaj acym ˛ uzytkownikowi przegladanie ˛ plików strona po stronie (bardziej odpowiednim stwierdzeniem jest ekran po ekranie). Przyczyna˛ z jakiej omawiamy program less, a ˙ less jest bardziej intuicyjny. Powiniene´s korzysta´c z programu less, aby nie program more jest taka, ze ˙ przeglada´ ˛ c duze pliki, które nie mieszcza˛ si˛e na jednym ekranie. Na przykład: less /etc/termcap

Aby przegladn ˛ a´ ˛c ten plik, skorzystaj ze strzałek w gór˛e i w dół. Wci´snij klawisz Q, aby zakonczy´ ´ c. less ma wiele wi˛ecej funkcji niz˙ ta: wci´snij klawisz H, aby wy´swietli´c pomoc dotyczac ˛ a˛ dost˛epnych opcji.

1.4.5. ls: Lista plik´ ow Polecenie ls (LiSt) jest odpowiednikiem polecenia dir w systemie operacyjnym DOS, ale ma wiele wi˛ecej zastosowan. ´ Składnia tego polecenia jest nast˛epujaca ˛ : ls [opcje] [plik|katalog] [plik|katalog...]

˙ nie okre´slono zadnego ˙ Jezeli pliku w wierszu polecen, ´ ls wy´swietli pliki znajdujace ˛ si˛e w biez˙ acym ˛ katalogu. Jego opcje sa˛ bardzo liczne, wi˛ec omówimy tylko kilka z nich: •

˙ w systemach UNIX®, ukryte pliki -a: wy´swietla list˛e plików, włacznie ˛ z plikami ukrytymi. Pami˛etaj, ze to te, których nazwa rozpoczyna si˛e od znaku .; opcja -A wy´swietla „prawie” wszystkie pliki, co oznacza ˙ kazdy plik który opcja -a by wy´swietliła za wyjatkiem ˛ „.” oraz „..”

-R: wy´swietlanie rekurencyjne, np. wszystkie pliki i podkatalogi katalogów wpisanych w wierszu polecen. ´

˙ ˙ -h: pokazuje rozmiar pliku w formacie mozliwym do odczytania przez człowieka, obok kazdego pliku. ˙ zobaczysz rozmiary plików z oznaczeniami typu „K”, „M” oraz „G”, na przykład „234K” Oznacza to, ze ˙ rozmiary plików sa˛ przedstawiane w drugiej pot˛edze, a nie dziesiatej. ˛ Oznacza oraz „132M”. Pami˛etaj, ze ˙ 1K jest równy 1024 bajtom, a nie 1000 bajtom. to, ze

-l: wy´swietla dodatkowe informacje na temat plików, takie jak uprawnienia z nimi zwiazane, ˛ wła´sciciela, grup˛e, rozmiar pliku oraz dat˛e ostatniej zmiany.

-i: wy´swietla numer w˛ezła (unikalny numer pliku w systemie plików, zobacz “System plików Linux”, strona ˙ pliku. 25) obok kazdego

-d: traktuje katalogi w wierszu polecen´ tak, jakby były zwykłymi plikami, lecz nie wy´swietla ich zawarto´sci.

Oto kilka przykładów: •

˙ ls -R: rekurencyjnie wy´swietla zawarto´sc´ kazdego katalogu.

˙ ls -ih images/ ..: wy´swietla numer w˛ezła i rozmiar w formacie mozliwym do odczytu dla człowieka, ˙ ˙ dla kazdego pliku w katalogu images/ a takze w katalogu nadrz˛ednym w stosunku do biez˙ acego. ˛

ls -l images/*.png: wy´swietla wszystkie pliki w katalogu images/, których nazwy koncz ´ a˛ si˛e na ˙ istnieje. .png, właczaj ˛ ac ˛ plik .png, jezeli

1.4.6. Skr´ oty klawiatury: ˙ moga˛ one zaoszcz˛edzi´c na prawd˛e sporo czasu. Istnieje wiele skrótów klawiatury. Ich główna˛ zaleta˛ jest to, ze ˙ korzystasz z domy´slnej powłoki dostarczonej przez Mandriva Linux, bash. Te skróty, Ten dział zakłada, ze jednak, moga˛ współpracowa´c równiez˙ z innymi powłokami. ˙ Po pierwsze: klawisze strzałek. bash przechowuje histori˛e poprzednich polecen, ´ które mozesz zobaczy´c za po˙ moca˛ klawiszy strzałek. Mozesz je przewija´c w gór˛e do maksymalnej liczby wierszy zdefiniowanej w zmiennej s´ rodowiskowej HISTSIZE. Dodatkowo, historia zostaje zachowana z jednej sesji na druga,˛ wi˛ec nie „utracisz” polecen´ wpisanych w poprzednich sesjach. Strzałki w lewo i w prawo przesuwaja˛ kursor w lewo i prawo w biez˙ acym ˛ wierszu, pozwalajac ˛ na edycj˛e ˙ mozna ˙ polecen. ´ Jednakze edytowa´c wi˛ecej niz˙ znak na raz: Ctrl-A oraz Ctrl-E, na przykład, przeniesie Ci˛e na poczatek ˛ i na koniec biez˙ acego ˛ wiersza. Klawisze Backspace oraz Del działaja˛ zgodnie z oczekiwaniami. 14


Rozdział 1. Podstawowe zagadnienia systemu UNIX® Ctrl-K usunie wszystko od kursora do konca ´ wiersza, natomiast Ctrl-W usunie słowo przed kursorem (tak jak w przypadku Alt-Backspace). Wci´sni˛ecie Ctrl-D w pustym wierszu pozwoli Ci zamkna´ ˛c biez˙ ac ˛ a˛ sesj˛e, co jest zdecydowanie szybsze niz˙ ˙ wpisanie polecenia exit. Ctrl-C przerwie obecnie uruchomione polecenie, poza przypadkiem jezeli jeste´s w trakcie edycji wiersza polecen´ i spowoduje to anulowanie edycji i powrócenie do znaku zach˛ety. Ctrl-L ˙ oczyszcza ekran. Ctrl-Z tymczasowo zatrzymuje zadanie, zawiesza je. Ten skrót jest bardzo uzyteczny kiedy zapomnisz wpisa´c znak „&” po wpisaniu polecenie. Na przykład: $ xpdf MyDocument.pdf

Aby umie´sci´c to zadanie w tle i przywróci´c je do powłoki, wci´snij Ctrl-Z, a nast˛epnie wprowad´z polecenie bg. Ctrl-S oraz Ctrl-Q, sa˛ wykorzystywane do zawieszania i przywracania wyniku na ekranie. Nie sa˛ stosowane ˙ ˙ cz˛esto, ale mozesz wcisna´ ˛c przez przypadek Ctrl-S (S oraz D sa˛ blisko siebie na klawiaturze). Wi˛ec, jezeli znajdziesz si˛e w sytuacji w której wpisujesz tekst, a nie widzisz go na ekranie Terminala , spróbuj wcisna´ ˛c Ctrl˙ wszystkie znaki, które wpisałe´s pomi˛edzy niechcianym Ctrl-S, a Ctrl-Q zostana˛ wy´swietlone Q. Pami˛etaj, ze na ekranie.

15


Rozdział 1. Podstawowe zagadnienia systemu UNIX®

16


Rozdzial 2. Dyski i partycje Niniejszy rozdział zawiera informacje dla tych, którzy chca˛ poszerzy´c swoja˛ wiedz˛e na temat szczegółów ˙ informacje na temat schematu partechnicznych lez˙ acych ˛ u podstaw systemu. Ponadto znajdziesz tu takze ˙ tycjonowania PC. Dlatego b˛edzie on szczególnie uzyteczny w przypadku r˛ecznej konfiguracji partycji dysku twardego.

2.1. Struktura twardego dysku ˙ Dysk jest podzielony na sektory. Sekwencja sektorów tworzy partycj˛e. Krótko mówiac, ˛ mozesz utworzy´c tyle partycji ile tylko chcesz, az˙ 67 (3 partycje główne i partycj˛e podrz˛edna˛ zawierajac ˛ a˛ w sobie do 64 partycji ˙ partycja jest traktowana jako jeden dysk twardy. logicznych): kazda

2.1.1. Sektory W uproszczeniu, twardy dysk jest pewna˛ sekwencja˛ sektorów, które sa˛ najmniejsza˛ jednostka˛ danych na dysku twardym. Typowy rozmiar sektora, to 512 bajtów. Sektory na twardym dysku, który posiada „n” sektorów sa˛ ponumerowane od „0” do „n-1”.

2.1.2. Partycje ˙ Wykorzystywaniez wielu partycji umozliwia stworzenie wielu wirtualnych dysków twardych na realnym dysku fizycznym. Takie rozwiazanie ˛ ma wiele zalet: •

˙ systemy operacyjne korzystaja˛ z róznych ˙ Rózne struktur dyskowych (zwanych systemami plików): ma to miejsce w przypadku Windows® oraz GNU/Linux. Posiadanie wielu partycji na dysku twardym pozwala ˙ na instalacj˛e róznych ˙ takze systemów operacyjnych na tym samym dysku fizycznym.

˙ preferowa´c rózne ˙ ˙ Z przyczyn wydajno´sci, system operacyjny moze dyski z róznymi systemami plików, ˙ ˙ ˙ by´c wymagana przez ´ Jednym z przykładów moze gdyz moga˛ by´c one wykorzystane do róznych zadan. ˙ system GNU/Linux druga partycja o nazwie Swap. Jest ona wykorzystywana przez menedzera pami˛eci wirtualnej jako pami˛ec´ wirtualna.

˙ si˛e okaza´c uzytecznym ˙ Nawet, je´sli wszystkie partycje posiadaja˛ ten sam system plików, moze rozdzielenie ˙ ˙ partycje. Jednym z przykładów moze ˙ by´c rozdzielenie plików pomi˛edzy dwie róznych cz˛es´ ci OS na rózne ˙ partycje: jedna˛ do przechowywania danych osobistych, a druga˛ do przechowywania programów. Umozliwia to aktualizacj˛e systemu, poprzez całkowite wymazanie partycji zawierajacej ˛ programy, a zachowanie tej, zawierajacej ˛ dane osobiste.

˙ Poniewaz˙ bł˛edy fizyczne na twardym dysku sa˛ przewaznie zlokalizowane na sektorach granicznych, a ˙ ˙ ogranie rozprzestrzenione po całym dysku, przemieszczanie plików pomi˛edzy róznymi partycjami moze niczy´c utrat˛e danych w przypadku fizycznego uszkodzenia nap˛edu.

˙ Zwykle, rodzaj partycji okre´sla system plików, jaki partycja powinna zawiera´c. Kazdy system operacyjny rozpoznaje niektóre rodzaje partycji, a innych juz˙ nie. Zobacz “Systemy plików i punkty montowania”, strona 41 oraz “System plików Linux”, strona 25, aby uzyska´c wi˛ecej informacji na ten temat.

2.1.3. Okre´slanie struktury twardego dysku 2.1.3.1. Najprostszy spos´ ob Ten scenariusz zakłada istnienie dwóch partycji: jednej Swap, oraz drugiej do przechowywania plików1, zwana˛ root z etykieta˛ /. 1.

Domy´slnym systemem plików wykorzystywanym przez Mandriva Linux jest ext3.

17


Rozdział 2. Dyski i partycje

Zasada, jest ustawienie rozmiaru partycji swap na dwukrotno´s´c rozmiaru pamieci , RAM (np.: je˙zeli posiadasz 128 MB pamieci , RAM, to rozmiar obszaru wymiany powinien wynie´s´c 256 MB). Jednak˙ze dla konfiguracji o du˙zych pamieciach (512 MB lub wiecej), stosowanie , , tej zasady nie jest konieczne i mo˙zliwe jest ustawienie mniejszego rozmiaru. Pamietaj, z˙ e rozmiar partycji wymiany mo˙ze by´c ogranic, zony w zale˙zno´sci od platformy na kt´ orej pracujesz. Na przyklad jest ograniczony do 2GB na komputerach x86, PowerPC oraz MC680x0; do 512MB na komputerach MIPS; do 128GB na komputerach Alpha oraz do 3TB na komputerach Ultrasparc. Pamietaj r´ ownie˙z, z˙ e im , wieksza partycja wymiany, tym wieksza jest ilo´s´c zasob´ ow OS (pr, , zede wszystkim pamieci RAM) potrzebnych do jej obs lugi. ,

2.1.3.2. Inne rozwiazanie , ˙ utworzy´c wi˛ecej parOddzielenie danych od programów. Aby jeszcze bardziej zwi˛ekszy´c wydajno´sc´ , mozna tycji w celu oddzielenia systemu i programów od danych. Partycja systemu b˛edzie zawierała programy potrzebne do uruchomienia systemu i jego obsługi. ˙ W ten sposób mozemy utworzy´c cztery partycje: Wymiany Partycj˛e Swap której rozmiar jest około dwa razy wi˛ekszy od rozmiaru fizycznej pami˛eci RAM. Root: / ˙ ˙ zawiera ona dane krytyczne systemu oraz programy, ale Najwazniejsz a˛ partycj˛e. Nie tylko dlatego, ze ˙ dlatego, ze ˙ stanowi ona punkt montowania dla innych partycji (zobacz “Systemy plików i punkty takze montowania”, strona 41). ˙ Potrzeby partycji root w zakresie rozmiaru nie sa˛ zbyt wielkie, 400MB powinno wystarczy´c. Jednakze, ˙ jezeli planujesz zainstalowa´c oprogramowanie komercyjne, które zwykle jest zlokalizowane w katalo˙ ˙ takze gu /opt, to b˛edziesz musiał powi˛ekszy´c odpowiednio rozmiar partycji root. Oczywi´scie mozesz utworzy´c oddzielna˛ partycj˛e dla katalogu /opt. Dane stałe: /usr Wi˛ekszo´sc´ pakietów instaluje swoje pliki wykonywalne oraz dane do katalogu /usr. Zaleta˛ utworzenia ˙ oddzielnej partycji jest mozliwo´ sc´ łatwego współdzielenia tych plików z innymi komputerami w sieci. ˙ tutaj od pakietów, które chcesz zainstalowa´c i moze ˙ si˛e waha´c od 100MB dla bardzo Rozmiar zalezy ˙ pakietów. Zwykle najlepszym rozwiazaniem ˛ sa˛ dwa lub niewielkich instalacji, do kilku GB dla duzych ˙ sci od rozmiaru dysku). trzy GB (w zalezno´ Katalogi domowe: /home ˙ Ten katalog zawiera katalogi osobiste wszystkich uzytkowników obsługiwanych przez komputer. Roz˙ od ilo´sci uzytkowników ˙ miar partycji zalezy oraz od ich potrzeb. ˙ Kolejnym rozwiazaniem ˛ jest nie tworzenie oddzielnej partycji dla plików w katalogu /usr: katalog /usr moze ˙ b˛edziesz musiał zwi˛ekszy´c odpowiednio rozmiar swojej pozosta´c katalogiem na partycji głównej (/), jednakze partycji root (/). ˙ ˙ Wreszcie, mozesz tylko utworzy´c partycje Swap oraz root (/), jezeli nie jeste´s pewien co b˛edziesz robił ze swoim komputerem. W tym przypadku, Twój katalog /home b˛edzie zlokalizowany na partycji root, podobnie jak /usr i inne katalogi.

18


Rozdział 2. Dyski i partycje

2.1.3.3. Inne konfiguracje ˙ konfigurujesz komputer do bardzo szczególnego zastosowania –– takiego jak serwer WWW, czy zapoJezeli ra –– potrzeby sa˛ zdecydowanie odmienne niz˙ w przypadku zwykłego komputera biurkowego. Na przykład, ˙ oddzielnej partycji dla /var/ftp, podczas gdy kataserwer FTP b˛edzie prawdopodobnie potrzebował duzej ˙ by´c relatywnie niewielki. W tych sytuacjach, zalecamy si˛e dobrze zastanowi´c nad potrzebami log /usr moze przed rozpocz˛eciem instalacji.

Mo˙zliwa jest zmiana rozmiaru wiekszo´ sci partycji; je˙zeli potrzebu, jesz zmieni´c ich rozmiar lub wykorzysta´c inny schemat partycji, bez konieczno´sci ponownej instalacji systemu i nie tracac , danych. Sprawd´z Zarzadzanie partycjami w Starter Guide. , Do´swiadczony u˙zytkownik bedzie potrafil przenie´s´c nawet cala, , partycje, na nowy dysk twardy.

2.2. Zwroty u˙zywane w nazewnictwie dysk´ ow i partycji GNU/Linux korzysta z logicznej metody nazewnictwa partycji. Na poczatku, ˛ przy numeracji partycji, igno˙ ˙ sci od dysku na którym sa˛ ruje rodzaj systemu plików kazdej z nich. Nast˛epnie, nazywa partycje w zalezno´ zlokalizowane. Oto jak nazwane sa˛ dyski: •

Pierwszy nadrz˛edny i pierwszy podrz˛edny, to urzadzenia ˛ IDE (moga˛ by´c to zarówno dyski twarde, jak i nap˛edy CD-ROM czy cokolwiek innego) nazwane odpowiednio /dev/hda oraz /dev/hdb.

Na drugim interfejsie, dysk nadrz˛edny nosi nazw˛e /dev/hdc, a podrz˛edny /dev/hdd.

˙ Twój komputer zawiera inne interfejsy IDE (na przykład, interfejs IDE obecny na karcie Soundblaster), Jezeli ˙ ˙ posiada´c dodatkowe interfejsy IDE jezeli ˙ to dyski b˛eda˛ nosiły nazw˛e /dev/hde, /dev/hdf, itp. Mozesz takze posiadasz kontrolery RAID.

Dyski SCSI nosza˛ nazwy /dev/sda, /dev/sdb, itd., w kolejno´sci w jakiej si˛e pojawiaja˛ w łancuchu ´ SCSI ˙ sci od rosnacego (w zalezno´ ˛ ID). Nap˛edy CD-ROM SCSI nosza˛ nazwy /dev/scd0, /dev/scd1, zawsze w kolejno´sci w jakiej si˛e pojawiaja˛ w łancuchu ´ SCSI.

Je˙zeli posiadasz dyski IDE SATA, zastosowany bedzie schemat na, zewnictwa SCSI.

Nazwy partycji pochodza˛ od nazw dysków, na których si˛e znajduja,˛ jak pokazano w nast˛epujacym ˛ przykładzie (w naszym przykładzie, wykorzystali´smy partycje na pierwszym dysku nadrz˛ednym IDE, ale to samo dotyczy innych rodzajów dysków): •

˙ sa˛ obecne. Partycje podstawowe (lub rozszerzone) nosza˛ nazwy od /dev/hda1 do /dev/hda4, jezeli

˙ sa,˛ nosza˛ nazwy /dev/hda5, /dev/hda6, itd. W kolejno´sci pojawiania si˛e w tablicy Partycje logiczne, jezeli partycji logicznych.

Tak wi˛ec GNU/Linux b˛edzie nazywał partycje w nast˛epujacy ˛ sposób:

19


Rozdział 2. Dyski i partycje First Primary Partition /dev/hda1 Primary Master IDE Hard Disk (/dev/hda)

First Primary Partition /dev/hdb1

Second Primary Partition /dev/hdb2

Primary Slave IDE Hard Disk (/dev/hdb)

Rysunek 2-1. Pierwszy przykład nazewnictwa partycji w GNU/Linux

Primary Partition /dev/hda1

Extended Partition (/dev/hda2) /dev/hda5

/dev/hda6

1st Logical Partition

2nd Logical Partition

Primary Master IDE Hard Disk (/dev/hda)

First Primary Partition /dev/hdb1

Second Primary Partition /dev/hdb2

Primary Slave IDE Hard Disk (/dev/hdb)

Rysunek 2-2. Drugi przykład nazewnictwa partycji w GNU/Linux ˙ zajdzie taka potrzeba. ZobaZ ta˛ wiedza,˛ b˛edziesz potrafił nazywa´c partycje swojego dysku twardego, jezeli ˙ ze ˙ GNU/Linux nazywa partycje nawet, jezeli ˙ na poczatku czysz równiez, ˛ nie wie jak nimi zarzadza´ ˛ c (pomija ˙ nie sa˛ one partycjami pochodzacymi fakt, ze ˛ z systemu GNU/Linux).

Mandriva Linux korzysta teraz z udev (zobacz udev FAQ (http://www.kernel.org/pub/linux/utils/kernel/hotplug/ udev-FAQ), aby uzyska´c dodatkowe informacje). Zapewnia on pelna, kompatybilno´s´c z opisanym powy˙zej schematem i standardami takimi jak Linux Standards Base Project jest do(http://www.linuxbase.org/). Ka˙zde urzadzenie , dawane dynamicznie do systemu, jak tylko staje sie, dostepne lub , potrzebne.

20


Rozdzial 3. Organizacja struktury plik´ ow ˙ W dzisiejszych czasach, UNIX® stał si˛e na prawd˛e pot˛eznym systemem. Dotyczy to szczególnie systemu ˙ system byłby niemozliwy ˙ GNU/Linux: ilo´sc´ dost˛epnego oprogramowania sprawiłaby, ze do obsługi, gdyby nie istniała organizacja plików wskazujaca ˛ lokalizacj˛e poszczególnych składników systemu. Przyj˛etym standardem organizacji plików jest FHS (Filesystem Hierarchy Standard), którego wersja 2.3 zosta˙ ła opublikowana w styczniu 2004. Dokument opisujacy ˛ wspomniany standard dost˛epny jest w wielu róznych formatach w Internecie The Pathname web site (http://www.pathname.com/fhs/). Niniejszy rozdział stanowi ˙ jedynie krótki opis standardu FHS, ale powinien wystarczy´c do przedstawienia ogólnych reguł, które umoz˙ sci od jego funkcji w systemie. liwia˛ zlokalizowanie poszukiwanego pliku w zalezno´

3.1. Dane udostepnione/nieudost epnione, stale/zmienne , ,

˙ sci od nast˛epujacych Dane w systemie UNIX® moga˛ by´c sklasyfikowane w zalezno´ ˛ kryteriów: dane udost˛epnione moga˛ by´c współdzielone pomi˛edzy kilkoma komputerami w sieci, podczas gdy nieudost˛epnione nie. ˙ Dane stałe nie moga˛ by´c zmieniona w trakcie normalnego uzytkowania, natomiast dane zmienne moga.˛ Pod˙ czas omawiania struktury plików b˛edzie przyporzadkowywa´ ˛ c poszczególne katalogi do kazdej ze wspomnianych kategorii.

Ta klasyfikacja zostala przyjeta tylko na potrzeby niniejszego rozd, zialu. Nie jest ona obowiazkowa, ale jej przyjecie pomo˙ze latwiej , , zrozumie´c organizacje, plik´ ow w systemie. Pamietaj r´ ownie˙z, z˙ e pod, zial na dane stale/zmienne dotyczy tylko danych og´ olnego u˙zytkowania systemu, nie jego konfiguracji. Je˙zeli zainstalujesz program, to z pewno´scia, bedziesz musial zmieni´c katalogi, kt´ ore zwykle” sa, , ” stale, takie jak /usr.

3.2. Katalog root: / ˙ go sklasyfikowa´c, poniewaz˙ jego podkatalogi mog˛e Katalog root zawiera cała˛ organizacj˛e systemu. Nie mozna lub nie by´c statyczne czy udost˛epnione. Oto lista głównych katalogów i podkatalogów oraz ich klasyfikacja: •

/bin: główne pliki binarne. Zawiera podstawowe polecenia, które b˛eda˛ wykorzystane przez wszystkich ˙ uzytkowników i te, które sa˛ konieczne do działania systemu: ls, cp, login, itp. Stały, nieudost˛epniony.

/boot: zawiera pliki wymagane przez program rozruchowy systemu GNU/Linux (GRUB lub LILO dla In˙ lub nie zawiera´c jadro, ˙ ˛ ale jezeli nie jest ono tam zlokalizowane, to musi tel, yaboot dla PPC, itp). Moze znajdowa´c si˛e w katalogu root. Stały, nieudost˛epniony.

/dev: pliki urzadze ˛ n´ systemowych (dev oznacza DEVices). Niektóre pliki znajdujace ˛ si˛e w /dev sa˛ niezb˛edne, takie jak /dev/null, /dev/zero oraz /dev/tty. Stały, nieudost˛epniony.

/etc: zawiera wszystkie pliki konfiguracyjne charakterystyczne dla danego komputera. Katalog ten nie ˙ zawiera´c plików binarnych. Stały, nieudost˛epniony. moze

˙ ˙ lub nie /home: katalog w którym znajduja˛ si˛e wszystkie osobiste katalogi uzytkowników. Ten katalog moze by´c udost˛epniony (niektóre wi˛eksze sieci udost˛epniaja˛ go poprzez NFS). W tym katalogu znajduja˛ si˛e pliki konfiguracyjne Twoich ulubionych aplikacji (takich jak klienci pocztowi, czy przegladarki), ˛ które zaczynaja˛ si˛e od znaku „.”. Na przykład, pliki konfiguracyjne programu Mozilla znajduja˛ si˛e w katalogu .mozilla. Zmienny, udost˛epniony.

˙ moduły jadra /lib: zawiera biblioteki wymagane przez system; w jego podkatalogu znajduja˛ si˛e takze ˛ ˙ odnale´zc´ w kata- /lib/modules/KERNEL_VERSION. Wszystkie biblioteki wymagane przez binaria mozna ˙ znajdowa´c ewentualny prograł ładujacy logach /bin oraz /sbin. W tym katalogu musi si˛e takze ˛ czasu ˙ dynamicznie dowiazana uruchamiania ld*, a takze ˛ biblioteka C libc.so. Stały, nieudost˛epniony.

/mnt: katalog zawierajacy ˛ punkty montowania dla montowanych tymczasowo systemów plików, takich jak ˙ wykorzystywany do montowania katalogów tymc/mnt/cdrom, /mnt/floppy, itp. Katalog /mnt jest takze zasowych (na przykład, klucze USB b˛eda˛ montowane w /mnt/removable). Zmienny, nieudost˛epniony.

˙ on do przechowywania dodatkowych /opt: zawiera pakiety nieistotne dla funkcjonowania systemu. Słuzy pakietów, takich jak Adobe Acrobat Reader. FHS zaleca, aby pliki statyczne (binaria, biblioteki, strony 21


Rozdział 3. Organizacja struktury plików podr˛ecznika, itp.) zainstalowane w katalogu /opt były umieszczone w podkatalogu /opt/nazwa_pakietu, a specjalne pliki konfiguracyjne w /etc/opt. •

˙ /root: katalog domowy uzytkownika administrator. Zmienny, nieudost˛epniony.

˙ by´c uruchomio/sbin: zawiera binaria systemu konieczne do jego rozruchu. Wi˛ekszo´sc´ z tych plików moze ˙ ˙ ˙ ˙ na tylko przez uzytkownika administrator. Zwykły uzytkownik moze je uruchomi´c, ale bez zadnego efektu. Stały, nieudost˛epniony.

/tmp: katalog przeznaczony do przechowywania plików tymczasowych, które tworza˛ programy. Zmienny, nieudost˛epniony.

/usr: dokładne obja´snienia dla tego katalogu znajduja˛ si˛e w /usr: Duz˙ y katalog, strona 22. Stały, udost˛epniony.

˙ programy (takie /var: miejsce dla danych, które moga˛ by´c zmieniane w czasie rzeczywistym przez rózne jak serwery pocztowe, programy monitorujace, ˛ serwery wydruku, itp.) Zmienny. Jego zmienne podkatalogi moga˛ by´c udost˛epniane lub nie.

3.3. /usr: Du˙zy katalog Katalog /usr jest podstawowym miejscem do przechowywania programów. Pliki binarne znajdujace ˛ si˛e w ˙ by´c, a nawet tym katalogu nie sa˛ wymagane do rozruchu i utrzymania systemu, tak wi˛ec katalog /usr moze cz˛esto jest zlokalizowany na oddzielnym systemie plików. Ze wzgl˛edu na swój, zwykle spory rozmiar, katalog /usr posiada swoja˛ własna˛ struktur˛e podkatalogów. Wymienimy tylko kilka z nich: •

/usr/X11R6: cała struktura X Window System. Wszystkie pliki binarne i biblioteki wymagane przez X (włac˛ zenie z serwerami X) musza˛ by´c umieszczone w tym katalogu. Katalog /usr/X11R6/lib/X11 zawiera wszystkie składniki konfiguracji X, które nie zalez˙ a˛ od samego komputera, na którym X jest uruchamiany. Pliki szczególne dla danego komputera powinny si˛e znajdowa´c w /etc/X11.

/usr/bin: zawiera wi˛ekszo´sc´ plików binarnych systemu. Ka˙zdy program binarny, który nie jest konieczny do obsługi systemu i nie jest jego programem administracyjnym musi znajdowa´c si˛e w tym katalogu. Jedynym wyjatkiem ˛ sa˛ pliki, które skompilujesz i zainstalujesz samodzielnie, które musza˛ si˛e znajdowa´c w /usr/local.

/usr/lib: zawiera wszystkie biblioteki niezb˛edne do uruchamiania programów zlokalizowanych w /usr/ ˙ dowiazanie bin oraz /usr/sbin. Istnieje takze ˛ /usr/lib/X11 kierujace ˛ do /usr/X11R6/lib/X11, katalogu, który zawiera biblioteki X Window System (ale tylko, gdy zainstalowany jest X)1.

/usr/local: jest miejscem, do którego musisz instalowa´c wszystkie programy, które kompilujesz ze z´ ródła. Program instalacyjny powinien utworzy´c odpowiednia˛ hierarchi˛e.

˙ od architektury dane tylko do odczytu, wymagane /usr/share: ten katalog zawiera wszystkie niezalezne przez programy z /usr. Ponadto znajdziesz tam informacje o strefie i lokalizacji (zoneinfo oraz locale).

˙ wspomnie´c o katalogach /usr/share/doc oraz /usr/share/man, które odpowiednio zawieraja˛ Wypada takze dokumentacj˛e programów i strony podr˛ecznika systemowego.

3.4. /var: Dane zmieniane podczas u˙zycia Katalog /var zawiera wszystkie dane operacyjne programów działajacych ˛ w systemie. W przeciwienstwie ´ do ˙ sposób naruszone. Znajduje si˛e tu wiele danych roboczych z katalogu /tmp, te dane nie moga˛ zosta´c w zaden ˙ podkatalogów, z których niektóre sa˛ bardzo uzyteczne: •

˙ /var/log: zawiera pliki dziennika systemowego, które mozesz odczyta´c w celu rozwiazania ˛ problemów systemu (przykładowe dwa z nich /var/log/messages oraz /var/log/kernel/errors).

/var/run: wykorzystywany do przechowywania s´ ladu wszystkich procesów wykorzystywanych w systemie od momentu uruchomienia, pozwalajacy ˛ na ich zmian˛e w razie zmiany poziomu uruchamiania systemu (zobacz “Pliki rozruchowe: init sysv”, strona 81).

1.

22

˙ Mandriva Linux korzysta teraz z Xorg, a nie X Window System jako domy´slnego systemu X Window. Pami˛etaj, ze


Rozdział 3. Organizacja struktury plików •

/var/spool: zawiera robocze pliki systemu czekajace ˛ na jakiego´s rodzaju przetwarzanie. Na przykład, /var/spool/cups zawiera pliki robocze serwera wydruku, podczas gdy /var/spool/mail zawiera pliki robocze serwera pocztowego (na przykład, cała˛ poczt˛e przychodzac ˛ a˛ i opuszczajac ˛ a˛ Twój system).

3.5. /etc: Pliki konfiguracyjne

/etc jest jednym z najbardziej kluczowych katalogów systemu UNIX®, poniewaz˙ zawiera wszystkie pliki konfiguracyjne okre´slone dla komputera hosta. Nigdy nie usuwaj ich, aby zaoszcz˛edzi´c miejsce! Ponadto, ˙ ˙ nie wolno umie´sci´c katalogu /etc na jezeli chcesz rozszerzy´c swoja˛ struktur˛e o kilka partycji, pami˛etaj, ze oddzielnej partycji: jest on niezb˛edny do uruchomienia systemu i musi si˛e znajdowa´c na głównej partycji w chwili rozruchu. ˙ Oto kilka bardzo waznych plików: •

˙ passwd oraz shadow: to pliki tekstowe, które zawieraja˛ wszystkich uzytkowników systemu i ich zaszyfrowane hasła.

inittab: jest plikiem konfiguracyjnym modułu init, który odgrywa kluczowa˛ rol˛e w momencie uruchamiania systemu. Sprawd´z .

services: ten plik zawiera list˛e istniejacych ˛ usług sieciowych.

profile: jest to plik konfiguracyjny powloka. Jego ustawienia moga˛ zosta´c zastapione ˛ przez szczególne pliki konfiguracyjne powloka. Na przykład, .bashrc dla bash powloka.

crontab: plik konfiguracyjny cron, programu odpowiedzialnego za okresowe wykonywanie polecen. ´

˙ liczby plików konfiguracyjnych. DotyOkre´slone podkatalogi istnieja˛ dla programów, które wymagaja˛ duzej czy to na przykład programu X Window System, który przechowuje wszystkie swoje pliki konfiguracyjne w katalogu

23


Rozdział 3. Organizacja struktury plików

24


Rozdzial 4. System plik´ ow Linux ˙ Twój system GNU/Linux znajduje si˛e na dysku twardym w systemie plików. W tym rozdziale omówimy rózne ˙ mozliwo´ ˙ aspekty systemów plików dost˛epnych w GNU/Linux, a takze sci, które oferuja.˛

4.1. Por´ ownanie system´ ow plik´ ow ˙ systemu plików dla Twoich partycji, aby były sformatowane z wykoPodczas instalacji, mogłe´s wybra´c rózne ˙ rzystaniem róznych algorytmów. ˙ nie jeste´s specjalista,˛ to wybór systemu plików nie jest oczywisty. Przyjrzymy si˛e kilku systemom, które Jezeli sa˛ dost˛epne w Mandriva Linux.

4.1.1. R´ oz˙ ne systemy plik´ ow 4.1.1.1. Ext2 Second Extended File System (nazwa jest rozwini˛eciem skrótu ext2FS lub po prostu ext2) jest domy´slnym systemem plików systemu GNU/Linux od wielu lat. Zamienił on Extended File System (dlatego w nazwie znajduje si˛e słowo „Second”). ext2 naprawił kilka problemów i usunał ˛ ograniczenia, jakie posiadał jego poprzednik.

ext2 stosuje standardy systemów plików charakterystycznych dla systemów UNIX®. Od samego poczatku ˛ miał si˛e rozwija´c, a jednocze´snie oferowa´c pełna˛ stabilno´sc´ i dobra˛ wydajno´sc´ .

Uwaga: Aby zmieni´c jego rozmiar, nale˙zy go odmontowa´c.

4.1.1.2. Ext3 Jak wskazuje sama nazwa, Third Extended File System jest nast˛epca˛ ext2. Jest on kompatybilny ze swoim poprzednikiem i wzbogacony o funkcj˛e dziennika. Jedna˛ z głównych wad „tradycyjnych” systemów plików takich jak ext2 jest niska odporno´sc´ na nagłe bł˛edy systemu (bład ˛ zarzadzania ˛ energia˛ lub zawieszajace ˛ si˛e oprogramowanie). Ogólnie rzecz biorac, ˛ kiedy system jest ponownie uruchamiany, te rodzaje zdarzen´ wymagaja˛ bardzo długiego sprawdzania struktury systemu ˙ spowodowa´c i prób naprawiania bł˛edów, co czasami konczy ´ si˛e jeszcze wi˛ekszym bł˛edem. Taki bład ˛ moze cz˛es´ ciowa˛ lub całkowita˛ utrat˛e danych. ˙ robimy list˛e działan´ zwiazanych Dzienniki sa˛ odpowiedzia˛ na ten problem. Upraszczajac, ˛ powiedzmy, ze ˛ ˙ z magazynowaniem (takie jak zapisywanie pliku) przed wła´sciwym ich wykonaniem. Proces ten mozemy porówna´c do kapitana statku, który zapisuje w dzienniku codzienne wydarzenia. Rezultat: zawsze spójny ˙ pojawia si˛e problem, jego weryfikacja jest szybka jak i ewentualne jego naprawy. Przez system plików. A jezeli ˙ to czas sp˛edzony na weryfikacji systemu plików jest proporcjonalny do jego obecnego uzycia i nie zwiazany ˛ z jego rozmiarem. ext3 zawiera dziennik technologii systemu plików zawierajacy ˛ struktur˛e ext2, zapewniajacy ˛ doskonała˛ kompatybilno´sc´ . Ułatwia to znacznie przełaczanie ˛ si˛e pomi˛edzy ext2 i ext3 tam i z powrotem.

Podobnie jak w przypadku ext2, aby zmieni´c jego rozmiar nale˙zy go najpierw odmontowa´c.

25


Rozdział 4. System plików Linux

4.1.1.3. ReiserFS W przeciwienstwie ´ do ext3, reiserfs został napisany od samego poczatku. ˛ Jest to system posiadajacy ˛ dziennik podobnie jak ext3, ale jego wewn˛etrzna struktura jest całkowicie odmienna poniewaz˙ wykorzystuje on ˙ posiada róznorodny ˙ rozwiazanie ˛ drzewa binarnego zainspirowanego oprogramowaniem baz danych, a takze rozmiar bloków, optymalny dla wykorzystania z wieloma (tysiacami, ˛ czy setkami tysi˛ecy) małymi plikami. ˙ wy´smienicie z duzymi ˙ Działa on takze plikami, co powoduje uniwersalno´sc´ jego zastosowania.

Mo˙zna zmieni´c jego rozmiar w locie”, bez odmontowywania syste” mu plik´ ow.

4.1.1.4. JFS JFS jest dziennikowym systemem plików zaprojektowanym i wykorzystywanym przez IBM. System ten był poczatkowo ˛ zamkni˛ety, ale IBM zdecydował si˛e otworzy´c go dla ruchu wolnego oprogramowania. Jego struktura wewn˛etrzna jest podobna do reiserfs.

W systemie GNU/Linux nie mo˙zna zmieni´c jego rozmiaru.

4.1.1.5. XFS ˙ wykorzystywanym XFS jest systemem plików posiadajacym ˛ dziennik, zaprojektowanym przez SGI i takze przez system operacyjny Irix. System ten był poczatkowo ˛ zamkni˛ety, ale SGI zdecydowało si˛e otworzy´c go ˙ dla ruchu wolnego oprogramowania. Jego struktura wewn˛etrzna posiada wiele róznych funkcji, takich jak rozszerzenia, czy klastrowe systemy plików (nie dost˛epne w darmowej wersji).

W systemie GNU/Linux mo˙ze by´c tylko powiekszony. Nie mo˙zna , zmniejszy´c jego rozmiaru. Zmiana rozmiaru mo˙ze by´c dokonana tylko na zamontowanym systemie plik´ ow.

4.1.2. R´ oz˙ nice pomiedzy systemami plik´ ow , Ext2

Ext3

ReiserFS

JFS ´ Srednia

XFS

Stabilno´sc´

Doskonała

Bardzo dobra

Dobra

Narz˛edzia do odzyskiwania skasowanych plików

Tak (skompliko- Tak (skompliko- Nie wane) wane)

Nie

Nie

Czas rozruchu po awarii

Długi, nawet bardzo długi

Bardzo szybki

Bardzo szybki

Bardzo szybki

´ Sredni a

Bardzo dobry

Bardzo dobry

Nie

Nie

Tak

Szybki

Status danych w Ogólnie rzecz Bardzo dobry przypadku biorac ˛ dobry, ale ˙ ryzyko bł˛edu systemu duze utraty cz˛es´ ci lub cało´sci danych Obsługa ACL

Tak

Tak

Dobra

Przypisy: ˙ a. Mozliwe jest poprawienie wyników przy odzyskiwaniu systemu po bł˛edzie poprzez dziennikowanie danych, a nie tylko metadanych, dodanie opcji data=journal do /etc/fstab.

26


Rozdział 4. System plików Linux Tabela 4-1. Charakterystyka systemu plików ˙ od wielu parametrów (np. rozmiar bloku dla ext2/ext3), i moze ˙ si˛e zmieMaksymalny rozmiar pliku zalezy ˙ nia´c w zalezno´sci od wersji jadra ˛ i architektury. ˙ by´c rozszerzone za pomoca˛ właczonego W jadrze ˛ 2.6.X, ograniczenie urzadzenia ˛ blokowego moze ˛ wsparcia ˙ Duzych Nap˛edów (CONFIG_LBD=y). W celu uzyskania szerszych informacji, sprawd´z strony Adding Support for Arbitrary File Sizes to the Single UNIX Specification (http://www.unix.org/version2/whatsnew/lfs. html), Large File Support in Linux (http://www.suse.com/~aj/linux_lfs.html), oraz Large Block Devices (http://www.gelato.unsw.edu.au/IA64wiki/LargeBlockDevices). Z tym rozwiazaniem ˛ i systemem plików, ˙ który je obsługuje, mozesz doj´sc´ do wielu TB bez szczególnych rozwiaza ˛ n´ zwiazanych ˛ z systemem plików jak jest w przypadku JFS.

4.1.3. A wydajno´s´ c? Zawsze trudno jest porównywa´c wydajno´sc´ systemów plików. Wszystkie testy posiadaja˛ własne ograniczenia i rezultaty musza˛ by´c interpretowane z wielka˛ uwaga,˛ a porównania przeprowadzone kilka miesi˛ecy, czy ˙ dzisiejszy sprz˛et (szczególnie pojemno´sci dysków tygodni wcze´sniej sa˛ juz˙ zbyt stare. Nie zapominajmy, ze ˙ ˙ ˙ twardych oraz wydajno´sc´ ich kontrolerów) w znacznym stopniu zrównowazyły róznice pomi˛edzy róznymi systemami plików. ˙ ˙ od tego jak korzystasz ze swojego Kazdy system posiada wady i zalety. W rzeczywisto´sci, wszystko zalezy komputera. Prosty komputer biurkowy b˛edzie pracował poprawnie z systemem ext2. W przypadku serwera, ˙ ze wzgl˛edu na system plików z dziennikiem, taki jak ext3 jest lepszym rozwiazaniem. ˛ reiserfs, by´c moze swoje pochodzenie, jest bardziej odpowiedni dla serwera baz danych. XFS jest interesujacym ˛ rozwiazaniem ˛ ˙ potrzebujesz której´s z jego zaawansowanych funkcji. Dla „przeci˛etnego” uzytkownika, ˙ jezeli te trzy systemy ˙ ˙ opcje ustawien. daja˛ przyblizone rezultaty, a wszystkie z nich posiadaja˛ rózne ´ Sprawd´z dokumentacj˛e systemu plików, aby uzyska´c dokładniejsze informacje.

4.2. Wszystko jest plikiem Starter Guide Tutaj, „wszystko”na prawd˛e oznacza wszystko. Twardy dysk, partycja na twardym dysku, port równoległy, połaczenie ˛ ze strona˛ internetowa,˛ karta sieciowa: to wszystko sa˛ pliki. Nawet katalogi sa˛ plikami. Linux roz˙ przez typ pliku, nie rozumiemy poznaje wiele typów plików obok typowych plików i katalogów. Pami˛etaj, ze tutaj rodzaju jego zawarto´sci: w systemie GNU/Linux, czy dowolnym innym systemie UNIX®, plik, oboj˛etnie ˙ ˙ sci plików w zalezno´ czy to obraz PNG, plik binarny, czy cokolwiek innego, jest to ciag ˛ bajtów. Rozróznianie ˙ do aplikacji. od ich zawarto´sci nalezy

4.2.1. R´ oz˙ ne rodzaje plik´ ow Kiedy wprowadzisz polecenie ls -l, znak znajdujacy ˛ si˛e przed prawami dost˛epu okre´slał b˛edzie rodzaj ˙ ˙ inne typy pliku. Poznali´smy juz˙ dwa rodzaje plików: zwykłe pliki (-) oraz katalogi (d). Mozesz znale´zc´ takze plików, gdy b˛edziesz przeglad ˛ drzewo plików lub zawarto´sc´ katalogów: 1. Pliki trybu znakowego: sa˛ to albo specjalne pliki systemowe (takie jak /dev/null, które juz˙ omówili´smy), ˙ istnieje) nie jest przekazywana lub peryferia (porty szeregowe lub równoległe), których zawarto´sc´ (jezeli ˙ nie jest przechowywana w pami˛eci). Te pliki b˛eda˛ oznaczone litera˛ c. do bufora (co oznacza, ze 2. Pliki trybu blokowego: te pliki sa˛ peryferiami i w przeciwienstwie ´ do plików znakowych, ich zawarto´sc´ jest buforowana. Na przykład, niektóre pliki z tej kategorii sa:˛ dyskami twardymi, partycjami na dysku twardym, nap˛edami dyskietek, nap˛edami CD-ROM i innymi urzadzeniami ˛ magazynujacymi. ˛ Pliki takie jak /dev/hda, /dev/sda5 sa˛ przykładami plików trybu blokowego. Te pliki sa˛ oznaczane litera˛ b. 3. Dowiazania ˛ symboliczne: pliki te sa˛ bardzo popularne i cz˛esto stosowane w procesie uruchamiania systemu Mandriva Linux (zobacz “Pliki rozruchowe: init sysv”, strona 81). Jak wskazuje sama nazwa, odnosza˛ ˙ sa˛ to pliki, których zawarto´sc´ jest s´ ciezk ˙ a˛ do insi˛e one do plików w sposób symboliczny, co oznacza, ze nego pliku. Moga˛ kierowa´c do nieistniejacego ˛ pliku. Bardzo cz˛esto sa˛ nazywane mi˛ekkimi odno´snikami i oznaczane litera˛ l.

27


Rozdział 4. System plików Linux 4. Potoki nazwane: gdyby´s si˛e zastanawiał, to w rzeczywisto´sci sa˛ one bardzo podobne do potoków stoso˙ a,˛ ze ˙ posiadaja˛ one nazwy. Jednakze, ˙ pliki te zdarzaja˛ si˛e wanych w pleceniach terminala, ale z ta˛ róznic niezwykle rzadko i prawdopodobnie nie zobaczysz ich przegladaj ˛ ac ˛ drzewo plików. Te pliki sa˛ oznaczane litera˛ p. Zobacz Potoki „anonimowe” i nazwane, strona 29. 5. Gniazda: jest to rodzaj pliku wszystkich połacze ˛ n´ sieciowych, lecz tylko kilka z nich posiada nazwy. Co ˙ rodzaje gniazd. Pliki te b˛eda˛ oznaczone litera˛ s. wi˛ecej, sa˛ rózne ˙ ˙ plików: Oto przykład kazdego z wspomnianych wyzej $ ls -l /dev/null /dev/sda /etc/rc.d/rc3.d/S20random /proc/554/maps \ /tmp/ssh-ania/ssh-510-agent crw-rw-rw1 root root 1, 3 May 5 1998 /dev/null brw-rw---1 root disk 8, 0 May 5 1998 /dev/sda lrwxrwxrwx 1 root root 16 Dec 9 19:12 /etc/rc.d/rc3.d/ S20random -> ../init.d/random* pr--r--r-1 ania ania 0 Dec 10 20:23 /proc/554/maps| srwx-----1 ania ania 0 Dec 10 20:08 /tmp/ssh-ania/ ssh-510-agent= $

4.2.2. Wez ly , ˙ W˛ezły, razem z paradygmatem „wszystko jest plikiem”, sa˛ fundamentalna˛ cz˛es´ cia˛ kazdego systemu plików ® UNIX . Słowo inode jest skrótem od „Information NODE”. W˛ezły sa˛ przechowywane na dysku w tablicy. Istnieja˛ dla wszystkich typów plików, które moga˛ by´c przechowywane w systemie, włacznie ˛ z katalogami, nazwanymi potokami, itd. Co prowadzi do kolejnej słynnej sentencji: „w˛ezeł jest plikiem”. W˛ezły to unikalny sposób w jaki UNIX® rozpoznaje plik.

Nie, dobrze odczytałe´s: w systemach UNIX®, plik nie jest identyfikowany po nazwie, ale po numerze w˛ezła1. ˙ jeden plik moze ˙ mie´c kilka nazw, albo wcale nie mie´c nazwy. W UNIX®, nazwa pliku Przyczyna˛ tego jest to, ze jest tylko wpisem w w˛ez´ le katalogowym. Taki wpis nazywa si˛e odno´snikiem. Przyjrzyjmy si˛e im bardziej szczegółowo.

4.3. Odno´sniki Najlepszym sposobem na zrozumienie, czym sa˛ odno´sniki jest analiza przykładu. Stwórzmy (zwykły) plik: $ pwd /home/ania/example $ ls $ touch a $ ls -il a 32555 -rw-r--r-- 1 ania ania 0 Aug

6 19:26 a

Opcja -i polecenia ls wy´swietla numer w˛ezła, który jest pierwszym polem w wyj´sciu. Jak wida´c, przed ˙ utworzeniem pliku a, w katalogu nie było zadnych plików. Kolejnym obszarem zainteresowania jest liczba odno´sników plików (w zasadzie, odno´sników w˛ezła). ˙ by´c rozdzielone na dwa działania: Polecenie touch a moze •

utworzenie w˛ezła, dla którego system operacyjny nadał numer 32555, i którego typem jest zwykły plik;

utworzenie dowiazania ˛ do tego w˛ezła o nazwie a, w biez˙ acym ˛ katalogu (/home/ania/example). Tak wi˛ec, plik /home/ania/example/a jest odno´snikiem do w˛ezła o numerze 32555, i obecnie jest on jedyny: licznik odno´sników pokazuje 1.

Teraz wpiszemy: $ ln a b

˙ numery w˛ezła sa˛ unikatowe w ka˙zdym systemie plików, co oznacza, ze ˙ w˛ezeł z takim samym 1. Wa˙zne: pami˛etaj, ze ˙ istnie´c w innym systemie plików. Prowadzi to do rozróznienia ˙ numerem moze w˛ezłów na dysku i w˛ezłów w pami˛eci. ˙ znajduja˛ si˛e na róznych ˙ Dwa w˛ezły na dysku moga˛ posiada´c taki sam numer, jezeli systemach plików, w˛ezły w pami˛eci posiadaja˛ unikalny numer w całym systemie.

28


Rozdział 4. System plików Linux $ ls -il a b 32555 -rw-r--r-32555 -rw-r--r-$

2 ania ania 0 Aug 2 ania ania 0 Aug

6 19:26 a 6 19:26 b

Utworzyli´smy kolejny odno´snik do tego samego w˛ezła. Jak wida´c, nie utworzyli´smy pliku o nazwie b. Zamiast tego, dodali´smy kolejny odno´snik do w˛ezła o numerze 32555 w tym samym katalogu i przypisali´smy ˙ ˙ licznik odno´sników nazw˛e b do tego nowego odno´snika. Po wykonaniu polecenia ls -l mozesz zobaczy´c, ze wskazuje teraz 2. ˙ wykonamy: Teraz, jezeli $ rm a $ ls -il b 32555 -rw-r--r-$

1 ania ania 0 Aug

6 19:26 b

˙ nawet pomimo usuni˛ecia „oryginalnego pliku”, w˛ezeł istnieje w dalszym ciagu. Wida´c, ze ˛ Ale teraz, jedynym odno´snikiem jest plik o nazwie /home/ania/example/b.

Dlatego, plik w systemie UNIX® nie posiada nazwy; zamiast tego posiada jeden lub wi˛ecej odno´snik(ów) w jednym lub wi˛ecej katalogach. ˙ przechowywane w w˛ezłach. Ich licznik odno´sników jest zwiazany Same katalogi sa˛ takze ˛ z liczba˛ ich podka˙ jest co najmniej dwa odno´sniki na katalog: samego katalogu (przedstawiony talogów. Jest tak z powodu, ze przez wpis .) oraz katalogu nadrz˛ednego (przedstawiony przez ..). Tak wi˛ec, katalog posiadajacy ˛ dwa pod˙ katalogi b˛edzie posiadał co najmniej cztery odno´sniki: ., .. oraz odno´sniki dla kazdego podkatalogu. Typowym przykładem plików, które nie posiadaja˛ odno´sników (np.: nie posiadaja˛ nazwy) sa˛ połaczenia ˛ sieciowe. Nigdy nie zobaczysz pliku odpowiadajacego ˛ Twojemu połaczeniu ˛ ze strona˛ internetowa˛ Mandriva ˙ Linux (http://www.mandrivalinux.com) w swoim drzewie plików, niezaleznie od tego w którym katalogu ˙ b˛edziesz szukał . Podobnie jest przy uzyciu potoku w powłoce. Pliki tymczasowe sa˛ kolejnym przykładem w˛ezłów bez nazw. Tworzysz plik tymczasowy, otwierasz go, a nast˛epnie usuwasz. Plik istnieje tylko, gdy jest ˙ go otworzy´c (poniewaz˙ nie ma nazwy). W ten sposób, przy bł˛edzie aplikacji otwarty, ale nikt inny nie moze plik tymczasowy zostaje automatycznie usuni˛ety.

4.4. Potoki anonimowe” i nazwane ” Wró´cmy do przykładu z potokami, poniewaz˙ jest on do´sc´ interesujacy ˛ i stanowi dobry obraz zagadnienia od˙ polecenie no´sników. Kiedy korzystasz z potoku w wierszu polecen, ´ powloka tworzy dla Ciebie potok tak, ze przed potokiem zapisuje do niego, podczas gdy polecenie po potoku z niego czyta. Wszystkie potoki, oboj˛et˙ działaja˛ w trybie nie czy anonimowe (jak te wykorzystywane przez powloka), czy nazwane (zobacz ponizej) FIFO (Pierwsze weszło, pierwsze wyszło). Widzieli´smy juz˙ przykłady jak korzysta´c z potoków w powłoce, ale przyjrzyjmy si˛e po raz kolejny przykładowi: $ ls -d /proc/[0-9] | head -5 /proc/1/ /proc/2/ /proc/3/ /proc/4/ /proc/5/

˙ ˙ Jedna˛ rzecza,˛ której nie zauwazysz w niniejszym przykładzie (poniewaz˙ odbywa si˛e to zbyt szybko) to to, ze ˙ kiedy polecenie ls zapisuje do potoku, jest blokowane az˙ zapis do potoków jest blokowany. Oznacza to, ze ˙ drugi proces zakonczy ´ odczyt z potoku. Aby pokaza´c ten efekt, mozesz utworzy´c nazwane potoki, które w przeciwienstwie ´ do potoków wykorzystywanych przez powłok˛e posiadaja˛ nazwy (np.: posiadaja˛ dowiazania, ˛ ˙ natomiast potoki powłoki nie)2. Polecenie umozliwiaj ace ˛ utworzenie nazwanego potoku, to mkfifo: $ mkfifo a_pipe $ ls -il total 0 169 prw-rw-r-- 1 ania ania 0 Aug 6 19:37 a_pipe| # # Wida´ c, ˙ ze licznik odno´ sników wynosi1, a wyj´ scie pokazuje, # ˙ ze plik jest potokiem (’p’).

2.

˙ Pomi˛edzy dwoma rodzajami potoków istnieja˛ inne róznice, ale sa˛ one poza tematyka˛ tego podr˛ecznika.

29


Rozdział 4. System plików Linux # # Tutaj tak˙ ze mo˙ zesz zastosowa´ c ln: # $ ln a_pipe the_same_pipe $ ls -il total 0 169 prw-rw-r-- 2 ania ania 0 Aug 6 19:37 a_pipe| 169 prw-rw-r-- 2 ania ania 0 Aug 6 19:37 the_same_pipe| $ ls -d /proc/[0-9] >a_pipe # # Proces jest zablokowany, poniewa˙ z nie ma odczytu na drugim ko´ ncu. # Wci´ snij Control Z, aby zawiesi´ c proces... # [1]+ Stopped ls -F --show-control-chars --color=auto -d /proc/[0-9] >a_pipe # # ...Nast˛ epnie umie´ s´ c go w tle: # $ bg [1]+ ls -F --show-control-chars --color=auto -d /proc/[0-9] >a_pipe & # # teraz odczytaj z potoku... # $ head -5 <the_same_pipe # # ...proces zapisu oczekuje # /proc/1/ /proc/2/ /proc/3/ /proc/4/ /proc/5/ [1]+ Gotowe ls -F --show-control-chars --color=auto -d /proc/[0-9] >a_pipe $

˙ wykonamy powyzsze ˙ Podobnie blokowany jest odczyt. Jezeli polecenia w odwrotnej kolejno´sci, zobaczymy, ˙ polecenie head zostaje zablokowane oczekujac ze ˛ az˙ proces dostarczy dane do odczytu: $ head -5 <a_pipe # # Program zostaje zablokowany, zawie´ s go: C-z # [1]+ Stopped head -5 <a_pipe # # Przenie´ s go do tła... # $ bg [1]+ head -5 <a_pipe & # # ...Daj mu je´ s´ c :) # $ ls -d /proc/[0-9] >the_same_pipe /proc/1/ /proc/2/ /proc/3/ /proc/4/ /proc/5/ [1]+ Gotowe head -5 <a_pipe $

˙ W poprzednim przykładzie mozesz równiez˙ zobaczy´c niepoz˙ adany ˛ efekt: polecenie ls zostało zakonczone, ´ zanim polecenie head rozpocz˛eło prac˛e. W konsekwencji, natychmiast powróciłe´s do znaku zach˛ety, ale head zostało pó´zniej wykonane i po powrocie zobaczyłe´s tylko wynik.

30


Rozdział 4. System plików Linux

4.5. Pliki specjalne: pliki trybu znakowego oraz trybu blokowego Jak juz˙ wcze´sniej wspomniano, pliki te sa˛ tworzone albo przez system albo przez peryferia. Wspomnieli´smy ˙ ze ˙ pliki trybu blokowego były buforowane, podczas, gdy pliki trybu znakowego nie. Aby to zobrazotakze, ˙ wa´c, włóz˙ dyskietk˛e do nap˛edu i wpisz dwukrotnie ponizsze polecenie: $ dd if=/dev/fd0 of=/dev/null

Powiniene´s był zaobserwowa´c nast˛epujace ˛ zdarzenie: za pierwszym razem, odczytana została cała zawarto´sc´ ˙ zawarto´sc´ dyskietki. Za drugim razem, dyskietka wcale nie była wykorzystywana. Stało si˛e tak dlatego, ze ˙ dyskietki została wczytana do pami˛eci przy pierwszym uruchomieniu polecenia —, a nie dokonywałe´s zadnych zmian na urzadzeniu ˛ pomi˛edzy tymi dwoma zdarzeniami. ˙ chcesz wy´swietli´c w ten sposób duzy ˙ plik (tak, b˛edzie działa´c): Ale teraz, jezeli $ cat /a/big/printable/file/somewhere >/dev/lp0

Polecenie zajmie tyle samo czasu, bez wzgl˛edu na to, czy polecenie uruchamiasz raz, dwa, czy pi˛ec´ dziesiat. ˛ Dzieje si˛e tak, poniewaz˙ /dev/lp0 jest plikiem trybu znakowego i jego zawarto´sc´ nie jest buforowana. ˙ pliki trybu blokowego sa˛ buforowane posiada dobry efekt uboczny: buforowany jest nie tylko odczyt, Fakt, ze ˙ i zapis. Pozwala to na asynchroniczny zapis na dysku: kiedy zapisujesz plik na dysk, sama operacja ale takze zapisu nie jest natychmiastowa. B˛edzie miała miejsce, tylko gdy jadro ˛ Linux zdecyduje si˛e na zapis do sprz˛etu. Sprawd´z opcje sync i async na stronach podr˛ecznika mount(8) oraz w dziale Atrybuty plików, strona 32, aby uzyska´c wi˛ecej szczegółów. ˙ Ponadto, kazdy plik specjalny posiada główny i poboczny numer. Na wyj´sciu polecenia ls -l, pojawiaja˛ si˛e ˙ one na miejscu rozmiaru, gdyz˙ ten w tym przypadku jest niewazny: $ ls -l /dev/hdc /dev/lp0 brw-rw---- 1 ania cdrom 22, 0 Feb 23 19:18 /dev/hdc crw-rw---- 1 root root 6, 0 Feb 23 19:17 /dev/lp0

˙ te Tutaj, numer główny i poboczny /dev/hdc to 22 oraz 0, natomiast dla /dev/lp0 jest to 6 oraz 0. Pami˛etaj, ze ˙ moze ˙ istnie´c plik trybu znakowego z numerem głównumery sa˛ unikatowe dla kategorii pliku, co oznacza, ze ˙ istnie´c plik trybu blokowego o numerze głównym 6 i pobocznym nym 22 i pobocznym 0 oraz podobnie, moze 0. Liczby te istnieja˛ z podstawowego powodu: pozwalaja˛ jadru ˛ przyporzadkowa´ ˛ c odpowiednie operacje do tych plików: nie obsługujesz stacji dyskietek tak samo jak dysku twardego SCSI.

4.6. Dowiazania symboliczne, ograniczenie dowiaza´ n sztywnych” , , ”

˙ Tutaj musimy sprostowa´c pewne nieporozumienie, nawet w´sród uzytkowników systemów UNIX®, które po˙ dowiazania jawiło si˛e głównie z powodu, ze ˛ jak pojmowali´smy dotychczas (mylnie nazywane dowiazaniami ˛ ˙ nie jest to prawda˛ —, gdyz˙ nawet „sztywnymi”) sa˛ zwiazane ˛ tylko ze zwykłymi plikami (a widzieli´smy, ze dowiazania ˛ symboliczne moga˛ posiada´c „dowiazania”). ˛ To jednak wymaga wyja´snienia, czym sa˛ dowiazania ˛ symboliczne (dowiazania ˛ „mi˛ekkie”). Dowiazania ˛ symboliczne sa˛ plikami okre´slonego typu, których jedyna˛ zawarto´scia˛ jest ciag, ˛ który nie koniecznie musi prowadzi´c do istniejacego ˛ pliku. Kiedy jest mowa o dowiazaniu ˛ symbolicznym we wierszu polecen´ ˙ istnieje). Na lub w programie, w rzeczywisto´sci uzyskujesz dost˛ep do pliku, do którego ono prowadzi (jezeli przykład: $ echo Hello >myfile $ ln -s myfile mylink $ ls -il total 4 169 -rw-rw-r-1 ania 416 lrwxrwxrwx 1 ania $ cat myfile Hello $ cat mylink Hello

ania ania

6 Dec 10 21:30 myfile 6 Dec 10 21:30 mylink -> myfile

Łatwo dostrzec, plik mylink jest plikiem typu l, co oznacza dowiazanie ˛ symboliczne. Prawa dost˛epu do do˙ ˙ dostrzec, ze ˙ jest to inny wiazania ˛ symbolicznego nie sa˛ istotne: zawsze b˛eda˛ to rwxrwxrwx. Mozesz takze plik niz˙ myfile, poniewaz˙ jego numer w˛ezła jest inny. Ale symbolicznie si˛e do niego odnosi, dlatego je´sli

31


Rozdział 4. System plików Linux ˙ dowiazanie wpiszesz cat mylink, w rzeczywisto´sci wy´swietlisz zawarto´sc´ pliku myfile. Aby pokaza´c, ze ˛ symboliczne zawiera dowolny ciag ˛ wykonamy nast˛epujace ˛ polecenie: $ ln -s "I’m no existing file" anotherlink $ ls -il anotherlink 418 lrwxrwxrwx 1 ania ania 20 Dec 10 21:43 anotherlink -> I’m no existing file $ cat anotherlink cat: anotherlink: No such file or directory $

Dowiazania ˛ symboliczne istnieja˛ poniewaz˙ omijaja˛ kilka ograniczen´ którymi sa˛ obarczone zwykłe („sztywne”) dowiazania: ˛ •

˙ Nie mozesz utworzy´c dowiazania ˛ do w˛ezła w katalogu, który znajduje si˛e na innym systemie plików niz˙ wspomniany w˛ezeł. Powód jest prosty: licznik dowiaza ˛ n´ jest przechowywany w samym w˛ez´ le, a one nie ˙ moga˛ by´c udost˛epniane pomi˛edzy systemami plików. Umozliwiaj a˛ to dowiazania ˛ symboliczne.

˙ ˙ Nie mozesz dowiazywa´ ˛ c katalogów, aby unikna´ ˛c p˛etli w systemie plików. Mozesz jednak utworzy´c dowia˛ zanie symboliczne kierujace ˛ do katalogu i wykorzysta´c je tak jakby był to katalog.

Dlatego dowiazania ˛ symboliczne sa˛ bardzo przydatne w wielu przypadkach, ludzie korzystaja˛ z nich aby wia˛ ˙ nie utracisz za´c ze soba˛ pliki, nawet za pomoca˛ zwykłego dowiazania. ˛ Zaleta˛ zwykłych dowiaza ˛ n´ jest to, ze ˙ usuniesz „oryginał”. pliku jezeli ˙ przygladałe´ ˙ Wreszcie, jezeli ˛ s si˛e uwaznie, wiesz jaki jest rozmiar dowiazania ˛ symbolicznego: taki jak rozmiar ciagu. ˛

4.7. Atrybuty plik´ ow Tak jak FAT posiada atrybuty plików (archiwum, plik systemowy, ukryty, tylko do odczytu), tak i system plików GNU/Linux posiada własne atrybuty. W tym dziale przedstawimy ich krótkie omówienie:

Istnieja˛ dwa polecenia słuz˙ ace ˛ do zmiany atrybutów pliku: lsattr oraz chattr. Prawdopodobnie zgadłe´s, ˙ lsattr„wy´swietla” atrybuty, natomiast chattr je „zmienia”. Atrybuty moga˛ by´c stanowione tylko dla ze ˙ znajduje si˛e ich krótka lista, aby zapozna´c si˛e szczegółowo z wszystkimi zwykłych plików i katalogów. Ponizej atrybutami, sprawd´z chattr(1): ˙ plik lub katalog ma ustawiony ten atrybut, za kazdym ˙ ˙ 1. A: jezeli razem kiedy jest w uzyciu, albo odczyty˙ by´c to uzyteczne, ˙ na wany, albo zapisywany, jego ostatni czas dost˛epu nie b˛edzie aktualizowany. Moze przykład, przy plikach lub katalogach, które cz˛esto si˛e wykorzystuje przy odczycie. ˙ ˙ 2. a: jezeli plik posiada ustawiony ten atrybut i jest otwarty do zapisu, jedyna˛ mozliwo´ scia˛ b˛edzie dołac˛ ˙ mozesz ˙ zenie danych do jego zawarto´sci. W przypadku katalogu, oznacza to, ze tylko dodawa´c pliki, ˙ ˙ ustawi´c i zmieni´c ten nie mozesz ich ani usuwa´c, ani zmienia´c im nazwy. Tylko administrator moze atrybut.

3. d: polecenie dump jest standardowym narz˛edziem UNIX® słuz˙ acym ˛ do archiwizacji. Archiwizuje dowolny system plików, którego licznik archiwizacji wynosi 1 w /etc/fstab (zobacz rozdział “Systemy plików i punkty montowania”, strona 41). Je´sli jednak plik lub katalog ma ustawiony ten atrybut, w przeciwienstwie ´ ˙ w przypadku katalogów b˛edzie to do innych, nie b˛edzie brany pod uwag˛e przy archiwizacji. Pami˛etaj, ze ˙ podkatalogów i plików w nim si˛e znajdujacych. dotyczy´c takze ˛ ˙ by´c w zadnym ˙ ˙ 4. i: plik lub katalog, który ma ustawiony ten atrybut nie moze stopniu zmieniany: nie mozna ˙ ˙ mu zmieni´c nazwy, nie mozna utworzy´c do niego odno´snika3 i oczywi´snie nie mozna go usuna´ ˛c. Tylko ˙ ustawi´c i usuna´ ˙ to takze ˙ uniemozliwia ˙ administrator moze ˛c ten atrybut. Pami˛etaj, ze zmiany czasu dost˛epu, dlatego nie potrzeba atrybutu A gdy ustawiony jest atrybut i. 5. s: kiedy plik lub katalog z tym atrybutem zostanie usuni˛ety, sektory, które zajmował na dysku zostana˛ nadpisane zerami. 3.

32

˙ wiesz co oznacza „dodawanie odno´snika”, zarówno dla pliku jak i dla katalogu! Upewnij si˛e, ze


Rozdział 4. System plików Linux 6. S: kiedy plik lub katalog ma ustawiony ten atrybut, wszystkie zmiany w nim wprowadzone sa˛ synchroniczne i natychmiast sa˛ zapisywane na dysk. ˙ ˙ Na przykład, mozesz ustawi´c atrybut i na waznych plikach systemowych, aby uchroni´c si˛e przed niemiłymi ˙ niespodziankami. Zapoznaj si˛e tez˙ z atrybutem A na stronach podr˛ecznika: uniemozliwia on wykonywanie ˙ pozytywnie wpływa na oszcz˛edno´sc´ energii. wielu operacji dyskowych, a na laptopach takze

33


Rozdział 4. System plików Linux

34


Rozdzial 5. System plik´ ow /proc System plików /proc jest charakterystyczny dla GNU/Linux. Jest to wirtualny system plików, wi˛ec pliki, które ˙ znajduja˛ si˛e w tym katalogu nie zajmuja˛ faktycznie zadnego miejsca na dysku. Jest to bardzo wygodny spo˙ wi˛ekszo´sc´ plików znajdujacych sób na uzyskanie informacji o systemie, szczególnie, ze ˛ si˛e w tym katalogu ˙ jest mozliwa do odczytu przez człowieka (przynajmniej z niewielka˛ pomoca). ˛ Wiele programów uzyskuje informacje z plików w katalogu /proc, formatuje je na swój własny sposób, a nast˛epnie wy´swietla wyniki. Jest kilka programów, które wy´swietlaja˛ informacje na temat procesów (top, ps i inne) które tak wła´snie robia.˛ ˙ dobrym z´ ródłem informacji na temat sprz˛etu i tak jak programy, które wy´swietlaja˛ procesy, /proc jest takze tylko kilka programów jest interfejsem do informacji zawartych w katalogu /proc. ˙ specjalny podkatalog, /proc/sys. Umozliwia ˙ Istnieje takze on wy´swietlenie parametrów jadra ˛ oraz ich zmian˛e, która b˛edzie miała natychmiastowe zastosowanie.

5.1. Informacje na temat proces´ ow ˙ Jezeli wy´swietlisz zawarto´sc´ katalogu /proc zobaczysz wiele katalogów, których nazwami sa˛ liczby. Sa˛ to katalogi zawierajace ˛ informacje na temat wszystkich procesów obecnie uruchomionych w systemie: $ ls -d /proc/[0-9]* /proc/1/ /proc/302/ /proc/127/ /proc/317/ /proc/2/ /proc/339/ /proc/250/ /proc/385/ /proc/260/ /proc/4/ /proc/275/ /proc/402/ /proc/290/ /proc/433/ /proc/3/ /proc/450/

/proc/451/ /proc/452/ /proc/453/ /proc/454/ /proc/455/ /proc/463/ /proc/487/ /proc/491/

/proc/496/ /proc/497/ /proc/5/ /proc/501/ /proc/504/ /proc/505/ /proc/509/ /proc/554/

/proc/556/ /proc/557/ /proc/558/ /proc/559/ /proc/565/ /proc/569/ /proc/594/ /proc/595/

/proc/633/ /proc/718/ /proc/755/ /proc/760/ /proc/761/ /proc/769/ /proc/774/

˙ jako uzytkownik, ˙ ˙ Pami˛etaj, ze mozesz (co jest całkiem logiczne) wy´swietli´c tylko informacje dotyczace ˛ swo˙ Tak wi˛ec, zaloguj si˛e jako administrator ich własnych procesów, a nie procesów innych uzytkowników. i zobacz jakie informacje sa˛ dost˛epne dla procesu z numerem 1, którym jest proces init odpowiedzialny za uruchamianie wszystkich innych procesów: $ su Password: # cd /proc/1 # ls -l total 0 -r-------- 1 -r--r--r-- 1 lrwxrwxrwx 1 -r-------- 1 lrwxrwxrwx 1 dr-x------ 2 -rw-r--r-- 1 -r--r--r-- 1 -rw------- 1 -r--r--r-- 1 -rw-r--r-- 1 -r--r--r-- 1 lrwxrwxrwx 1 -rw------- 1 -r--r--r-- 1 -r--r--r-- 1 -r--r--r-- 1 dr-xr-xr-x 3 -r--r--r-- 1 #

root root root root root root root root root root root root root root root root root root root

root root root root root root root root root root root root root root root root root root root

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug Aug

15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15

18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14 18:14

auxv cmdline cwd -> // environ exe -> /sbin/init* fd/ loginuid maps mem mounts oom_adj oom_score root -> // seccomp stat statm status task/ wchan

˙ Kazdy katalog zawiera jakie´s pozycje. Oto krótki opis kilku z nich: 1. cmdline: ten (pseudo-)plik zawiera cały wiersz polecen´ słuz˙ acy ˛ do wywołania procesu. Nie jest sformato˙ nie ma nowego wiersza na koncu wany: nie ma spacji pomi˛edzy programem a jego argumentami, a takze ´ ˙ ˙ c: perl -ple ’s,\00, ,g’ cmdline. linii. Aby go przegladn ˛ a´ ˛c, mozesz uzy´ 2. cwd: to dowiazanie ˛ przekierowuje do biez˙ acego ˛ katalogu roboczego (pod katem ˛ nazwy) procesu.

35


Rozdział 5. System plików /proc 3. environ: ten plik zawiera zmienne s´ rodowiskowe zdefiniowane dla procesu, w postaci ZMIENNA=warto´ s´ c. Podobnie do cmdline, wynik nie jest sformatowany: bez wierszy oddzielajacych ˛ poszczególne zmienne. Sposób, aby przegladn ˛ a´ ˛c te dane to polecenie: perl -ple ’s,\00,\n,g’ environ. 4. exe: jest to dowiazanie ˛ przekierowujace ˛ do pliku wykonywalnego odpowiadajacego ˛ działajacemu ˛ procesowi. ˙ 5. fd: ten podkatalog zawiera list˛e deskryptorów plików obecnie otwartych przez proces. Zobacz ponizej. ˙ ˙ 6. maps: jezeli wy´swietlisz zawarto´sc´ nazwanego potoku (na przykład za pomoca˛ cat), mozesz zobaczy´c cz˛es´ ci obszaru adresu procesu, które sa˛ obecnie mapowane do pliku. Od lewej do prawej, pola sa˛ nast˛epujace: ˛ obszar adresu przypisany do tego mapowania, offset od poczatku ˛ pliku w którym si˛e rozpoczyna si˛e mapowanie, najwi˛ekszy i najmniejszy numer (heksagonalny) urzadzenia ˛ na którym mapowany plik ˙ jest zlokalizowany, numer w˛ezła pliku i wreszcie nazwa samego pliku. Jezeli urzadzenie ˛ to 0 i nie ma numeru w˛ezła czy nazwy pliku, to mapowanie jest anonimowe. Zobacz mmap(2). 7. root: jest to dowiazanie ˛ symboliczne, które kieruje do katalogu root wykorzystywanego przez proces. Zwykle, b˛edzie to /, ale zobacz chroot(2). ˙ informacje na temat procesu: nazw˛e procesu wykonywalnego, jego biez˙ acy 8. status: ten plik zawiera rózne ˛ ˙ instatus, jego PID oraz PPID, jego rzeczywisy i efektywny UID oraz GID, wykorzystanie pami˛eci, a takze ˙ pliki stat oraz statm sa˛ nieaktualne. Informacje, które były w nich przechowyne informacje. Pami˛etaj, ze wane znajduja˛ si˛e teraz w pliku status. ˙ wy´swietlimy zawarto´sc´ katalogu fd dla dowolnie wybranego procesu otrzymujemy nast˛epujace Jezeli ˛ informacje: # ls -l /proc/8141/fd/ total 4 lrwx------ 1 piotr piotr lrwx------ 1 piotr piotr lrwx------ 1 piotr piotr l-wx------ 1 piotr piotr #

64 64 64 64

Aug Aug Aug Aug

4 4 4 4

09:05 09:05 09:05 09:05

0 1 2 3

-> -> -> ->

/dev/tty1 /dev/tty1 /dev/tty1 /home/piotr/seti32/lock.sah

˙ W rzeczywisto´sci, jest to lista deskryptorów pliku otwartych przez proces. Kazdy otwarty deskryptor jest reprezentowany przez dowiazanie, ˛ w którym nazwa jest numerem deskryptora, a który kieruje do pliku otwartego przez ten deskryptor1. Zwró´c uwag˛e na prawa dost˛epu do dowiaza ˛ n: ´ jest to jedyne miejsce w którym maja˛ znaczenie, gdyz˙ reprezentuja˛ one prawa dost˛epu pliku odpowiedajacego ˛ otwartemu deskryptorowi.

5.2. Informacje na temat sprzetu , ˙ Poza katalogami zwiazanymi ˛ z róznymi procesami, /proc zawiera równiez˙ informacje na temat sprz˛etu obecnego na Twoim komputerze. Lista plików z katalogu /proc pokazuje nast˛epujace ˛ informacje: $ ls -d [a-z]* acpi/ diskstats asound/ dma buddyinfo driver/ bus/ execdomains cmdline fb config.gz filesystems cpuinfo fs/ crypto ide/ devices interrupts $

iomem ioports irq/ kallsyms kcore keys key-users kmsg loadavg

locks mdstat meminfo misc modules mounts@ mtrr net/ partitions

pci scsi/ self@ slabinfo splash stat swaps sys/ sysrq-trigger

sysvipc/ tty/ uptime version vmstat

˙ przyjrzymy si˛e blizej ˙ zawarto´sci /proc/interrupts, mozemy ˙ ˙ zawiera on list˛e Na przykład, jezeli zobaczy´c, ze przerwan´ obecnie wykorzystywanych przez system, razem z peryferiami, które je wykorzystuja.˛ Podobnie, ioports zawiera list˛e zakresów adresów wej´scia/wyj´scia, które sa˛ obecnie zaj˛ete, a dma list˛e kanałów DMA. Dlatego, aby rozwiaza´ ˛ c problem sprawd´z zawarto´sc´ tych trzech plików: $ cat interrupts CPU0

˙ pami˛etasz, co zostało opisane w dziale Przekierowania i potoki, strona 51, to wiesz takze, ˙ co oznaczaja˛ deskryptory 1. Jezeli 0, 1 oraz 2. Deskryptor 0 to standardowe wej´scie, deskryptor 1, to standardowe wyj´scie, natomiast deskryptor 2 to bład ˛ standardowy.

36


Rozdział 5. System plików /proc 0: 2: 5: 7: 8: 9: 10: 11: 12: 14: 15: NMI: LOC: ERR: MIS:

543488 0 109 1 0 3432 52855 7538 1386 20 5908 0 0 0 0

XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC

timer cascade ohci_hcd:usb2, eth1 parport0 rtc acpi, NVidia CK8 ehci_hcd:usb3, eth0 libata, ohci_hcd:usb1 i8042 ide0 ide1

$ cat ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 0378-037a : parport0 037b-037f : parport0 03c0-03df : vesafb 03f6-03f6 : ide0 03f8-03ff : serial 0778-077a : parport0 0970-0977 : 0000:00:0b.0 0970-0977 : sata_nv 09f0-09f7 : 0000:00:0b.0 09f0-09f7 : sata_nv 0b70-0b73 : 0000:00:0b.0 0b70-0b73 : sata_nv 0bf0-0bf3 : 0000:00:0b.0 0bf0-0bf3 : sata_nv 0cf8-0cff : PCI conf1 4000-407f : motherboard 4000-4003 : PM1a_EVT_BLK 4004-4005 : PM1a_CNT_BLK 4008-400b : PM_TMR 4020-4027 : GPE0_BLK 4080-40ff : motherboard 4080-40ff : pnp 00:00 4200-427f : motherboard 4200-427f : pnp 00:00 4280-42ff : motherboard 4280-42ff : pnp 00:00 4400-447f : motherboard 4400-447f : pnp 00:00 4480-44ff : motherboard 44a0-44af : GPE1_BLK 5000-503f : motherboard 5000-503f : pnp 00:01 5100-513f : motherboard 5100-513f : pnp 00:01 9000-9fff : PCI Bus #02 9000-907f : 0000:02:07.0 9000-907f : 0000:02:07.0 ac00-ac0f : 0000:00:0b.0 ac00-ac0f : sata_nv b000-b07f : 0000:00:0b.0 b000-b07f : sata_nv b800-b8ff : 0000:00:06.0 b800-b8ff : NVidia CK8 bc00-bc7f : 0000:00:06.0 bc00-bc7f : NVidia CK8

37


Rozdział 5. System plików /proc c000-c007 c000-c007 c400-c41f f000-f00f f000-f007 f008-f00f

: : : : : :

0000:00:04.0 forcedeth 0000:00:01.1 0000:00:09.0 ide0 ide1

$cat dma 3: parport0 4: cascade $

˙ sci od peryfeAlbo, wykorzystaj polecenie lsdev, które zbiera informacje z tych plików i sortuje je w zalezno´ riów, co niewatpliwie ˛ jest bardziej wygodne.2: $ lsdev Device DMA IRQ I/O Ports -----------------------------------------------0000:00:01.1 c400-c41f 0000:00:04.0 c000-c007 0000:00:06.0 b800-b8ff bc00-bc7f 0000:00:09.0 f000-f00f 0000:00:0b.0 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f 0000:02:07.0 9000-907f 9000-907f cascade 4 2 CK8 9 dma 0080-008f dma1 0000-001f dma2 00c0-00df eth0 10 eth1 5 forcedeth c000-c007 fpu 00f0-00ff GPE0_BLK 4020-4027 GPE1_BLK 44a0-44af i8042 12 ide0 14 01f0-01f7 03f6-03f6 f000-f007 ide1 15 0170-0177 0376-0376 f008-f00f keyboard 0060-006f motherboard 4000-407f 4080-40ff 4200-427f 4280-42ff 4400-447f 4480-44ff 5000-503f 5100-513f NVidia b800-b8ff bc00-bc7f ohci_hcd:usb1 11 parport0 3 7 0378-037a 037b-037f 0778-077a PCI 0cf8-0cff 9000-9fff pic1 0020-0021 pic2 00a0-00a1 PM1a_CNT_BLK 4004-4005 PM1a_EVT_BLK 4000-4003 PM_TMR 4008-400b pnp 4080-40ff 4200-427f 4280-42ff 4400-447f 5000-503f 5100-513f rtc 8 0070-0077 sata_nv 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f serial 03f8-03ff timer 0 timer0 0040-0043 timer1 0050-0053 vesafb 03c0-03df $

˙ miejsca, lecz oto opis niektórych z nich: Wyczerpujaca ˛ lista plików zajmie zbyt duzo •

cpuinfo: ten plik zawiera, zgodnie z nazwa,˛ informacje na temat procesora(ów) znajdujacych ˛ si˛e w komputerze.

moduBy: ten plik zawiera list˛e modułów obecnie wykorzystywanych przez jadro, ˛ razem z liczba˛ ich wykorzystania. W rzeczywisto´sci jest to informacja wykorzystywana przez polecenie lsmod, która wy´swietla te dane w bardziej czytelnej formie.

meminfo: ten plik zawiera informacje wykorzystania pami˛eci w chwili wy´swietlania jego zawarto´sci. Polecenie free wy´swietla takie same informacje, ale w formie łatwiejszej do odczytania.

2.

38

lsdev jest cz˛es´ cia˛ pakietu procinfo


Rozdział 5. System plików /proc •

˙ ˙ apm: jezeli posiadasz laptopa, wy´swietlenie zawarto´sci tego pliku pozwala zobaczy´c stan baterii. Mozesz ˙ czy APM BIOSu Twojego dowiedzie´c si˛e, czy zasilanie jest właczone, ˛ poziom naładowania baterii, a takze laptopa je obsługuje (niestety nie jest tak w przypadku wszystkich laptopów), czas pozostały do konca ´ ˙ wykorzysta´c polecenie apm. pracy baterii w minutach, itp. Plik nie jest łatwy do odczytu, wi˛ec nalezy ˙ nowe komputery udost˛epniaja˛ obsług˛e ACPI zamiast APM. Zobacz ponizej. ˙ Pami˛etaj, ze

˙ bus: ten podkatalog zawiera informacje na temat wszystkich peryferiów znajdujacych ˛ si˛e na róznych szynach Twojego systemu. Informacje zwykle nie moga˛ by´c odczytane i dlatego w wi˛ekszo´sci przypadków sa˛ one ponownie formatowane za pomoca˛ narz˛edzi zewn˛etrznych: lspcidrake, lspnp, itp.

acpi: kilka plików i katalogów znajdujacych ˛ si˛e w tym katalogu sa˛ interesujace, ˛ szczególnie w przypadku ˙ ˙ łatwiej jest zmieni´c te laptopów, gdzie mozesz wybra´c kilka trybów oszcz˛edno´sci baterii. Zwró´c uwag˛e, ze opcje korzystajac ˛ z aplikacji wysokiego poziomu, takich jak te załaczone ˛ do pakietów acpidkapacity. Najbardziej interesujace ˛ z nich to: battery ˙ zwiazane Pokazuje ile baterii znajduje si˛e w laptopie, a takze ˛ z nimi informacje dotyczace ˛ biez˙ acej ˛ ilo´sci energii, maksymalnej pojemno´sci, itp. button Pozwala kontrolowa´c działania przypisane do przycisków „specjalnych” takich jak power, sleep, lid, itp. fan Wy´swietla informacje na temat stanu wentylatorów znajdujacych ˛ si˛e w Twoim komputerze, czy działa˙ umozliwia ˙ ˙ sci od okre´slonych kryteriów. Ilo´sc´ wentylatorów ja,˛ czy nie, a takze ich właczanie ˛ w zalezno´ ˙ od płyty głównej. w komputerze zalezy processor ˙ ˙ Dla kazdego CPU w komputerze przydzielony jest jeden podkatalog. Mozliwo´ sci kontroli zalez˙ a˛ od rodzaju procesora. Procesory mobilne posiadaja˛ wi˛eksza˛ ilo´sc´ funkcji włacznie ˛ z: •

˙ mozliwo´ sc´ ustawienia kilku trybów energii, decydujac ˛ pomi˛edzy wydajno´scia˛ a konsumpcja˛ energii;

˙ mozliwo´ sc´ zmiany cz˛estotliwo´sci zegara w celu zmniejszenia ilo´sci konsumpcji energii przez CPU;

˙ sa˛ równiez˙ procesory, które ni oferuja˛ tych mozliwo´ ˙ Pami˛etaj, ze sci. thermal_zone Informacje dotyczaca ˛ działania systemu/procesora.

5.3. Wy´swietlanie i zmiana parametr´ ow jadra , ˙ ˙ umozliwienie ˙ Zadaniem podkatalogu /proc/sys jest raportowanie róznych parametrów jadra, ˛ a takze ich interaktywnej zmiany. W przeciwienstwie ´ do innych plików z katalogu /proc, niektóre pliki w tym katalogu ˙ moga˛ by´c zmieniane, ale tylko przez uzytkownika administrator. ˙ zawarto´sc´ Lista plików i katalogów zabrałaby zbyt wiele miejsca, aby ja˛ opisa´c, przede wszystkim dlatego, ze ˙ od systemu oraz poniewaz˙ wi˛ekszo´sc´ plików jest uzyteczna ˙ katalogów zalezy tylko dla bardzo konkretnych aplikacji. Mimo to, przedstawiamy dwa podstawowe zastosowania tego podkatalogu: ˙ domy´slne jadro ˙ 1. Zezwolenie routingu: nawet, jezeli ˛ systemu Mandriva Linux posiada mozliwo´ sc´ routingu, ˙ wpisa´c nast˛epujace ˙ ˛ polecenie jako uzytkownik musisz wyra´znie na to zezwoli´c. Aby to zrobi´c, nalezy administrator: $ echo 1 >/proc/sys/net/ipv4/ip_forward

˙ chcesz wyłaczy´ Zastap ˛ warto´sc´ 1 warto´scia˛ 0, jezeli ˛ c routing.

39


Rozdział 5. System plików /proc ˙ pakiet pochodzacy 2. Zakaz imitowania IP: Imitowanie IP polega na przekonaniu osoby, ze ˛ z zewnatrz ˛ pochodzi z interfejsu z którego powinien pochodzi´c. Ta technika jest bardzo popularna w´sród crackerów3. ˙ Mozesz sprawi´c, aby jadro ˛ zabroniło tego rodzaju ingerencji. Wpisz: $ echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter

˙ a przedstawiony atak stanie si˛e niemozliwy. Te zmiany b˛eda˛ aktywne tylko podczas pracy systemu. Po ponownym uruchomieniu komputera, parametry ˙ z powrotem przyjmuja˛ swoje warto´sci domy´slne. Aby sprawi´c, zeby system nie był ponownie uruchamiany ˙ z warto´sciami domy´slnymi, mozesz wzia´ ˛c polecenia, które wpisałe´s w powłoce i doda´c je do /etc/rc.d/ ˙ zapobiegniesz wpisywaniu ich za kazdym ˙ rc.local tak, ze razem. Innym rozwiazaniem ˛ jest zmiana /etc/ sysctl.conf, sprawd´z sysctl.conf(5) oraz sysctl(8), aby uzyska´c wi˛ecej informacji.

3.

40

Ale nie hakerzy!


Rozdzial 6. Systemy plik´ ow i punkty montowania Jak zobaczyli´smy w rozdziale “Dyski i partycje”, strona 17, wszystkie pliki systemu sa˛ zorganizowane w postaci ˙ pojedynczego drzewa i wła´sciwie, jezeli chcemy uzyska´c dost˛ep do urzadzenia ˛ wymienialnego, takiego jak CD-ROM, czy zdalna lokalizacja na serwerze plików, jego zawarto´sc´ b˛edzie dosłownie „wciagni˛ ˛ eta” do jakiej´s gał˛ezi drzewa.

Rysunek 6-1. Punkty montowania ˙ root, utworzony z partycji GNU/Linux zawiera inna˛ partycj˛e linux z katalogiem rysunek 6-1 pokazuje, ze: /home/, a ponadto partycj˛e Windows®, zdalny udział serwera plików (Windows® albo UNIX®), oraz klucz ˙ by´c montowanych w systemie plików GNU/Linux, właczaUSB. W dzisiejszych czasach, wiele urzadze ˛ n´ moze ˛ jac ˛ prawie wszystkie istniejace ˛ rodzaje systemów plików, WebDAV a nawet rzeczy tak odmienne jak poczta Googletm... Aby lepiej zrozumie´c zagadnienia dotyczace ˛ punktów montowania, rozdział ten oprzemy na praktycznym ˙ ˙ zakupiłe´s wła´snie nowy dysk twardy bez zadnych ˙ przykładzie. Załózmy, ze partycji. Twoja partycja Mandriva Linux jest całkowicie pełna, a poniewaz˙ potrzebujesz wi˛ecej miejsca, zdecydowałe´s si˛e przenie´sc´ cała˛ struktur˛e katalogów1 na swój nowy twardy dysk. Poniewaz˙ ma on bardzo duz˙ a˛ pojemno´sc´ , zdecydowałe´s si˛e przenie´sc´ na niego swój najwi˛ekszy katalog: /usr. Przykład ten b˛edziemy stosowa´c w całym rozdziale, rozpoczynajac ˛ od działu Partycjonowanie twardego dysku, formatowanie partycji, strona 42, ale najpierw odrobina teorii.

6.1. Podstawowe zasady ˙ twardy dysk moze ˙ by´c podzielony na partycje, a kazda ˙ z nich zawiera system plików. Podczas gdy WinKazdy ˙ dows® przypisuje liter˛e do kazdego z tych systemów plików (a wła´sciwie do tych, które rozpozna), GNU/Linux ˙ posiada unikatowa˛ struktur˛e plików w postaci drzewa i kazdy system plików jest montowany w jednej lokalizacji w strukturze drzewa.

˙ Tak jak Windows® potrzebuje dysku C:, GNU/Linux musi mie´c mozliwo´ sc´ zamontowania roota swojego drze˙ wa (/) na partycji, która zawiera główny system plików. Gdy root zostanie zamontowany, mozesz zamonto˙ wa´c inne systemy plików w strukturze w róznych punktach montowania znajdujacych ˛ si˛e ramach drzewa. ˙ ˙ struktury root moze ˙ zachowywa´c si˛e jak punkt montowania i mozesz ˙ Kazdy katalog ponizej zamontowa´c ten ˙ sam system plików kilka razy w róznych punktach montowania. ˙ Umozliwia to bardzo elastyczna˛ konfiguracj˛e. Na przykład, gdyby´s konfigurował serwer WWW, zwykle jedna,˛ cała˛ partycj˛e po´swi˛eca si˛e katalogowi, który zawiera dane serwera WWW. Katalogiem, który zwykle za˙ nalezy ˙ rozwazy´ ˙ c odwiera te dane jest /var/www i zachowuje si˛e jako punkt montowania partycji. Równiez, ˙ planujesz pobiera´c duz˙ a˛ ilo´sc´ oprogramowania, i przechowywa´c w dzielna˛ partycj˛e dla katalogu /home jezeli ˙ nim własna˛ prac˛e, zdj˛ecia, muzyk˛e, dokumenty osobiste, itp. Mozesz zobaczy´c rysunek 6-2 oraz rysunek 6-3, który pokazuje jak wyglada ˛ system przed i po montowaniu systemu plików. 1.

˙ cały system plików zawarty jest na jednej partycji. Nasz przykład zakłada, ze

41


Rozdział 6. Systemy plików i punkty montowania

/ /

/home

/usr

/var /cgi−bin

/html

/icons

/var/www

G³ówny system plików (zamontowany)

Systemy plików zawieraj±ce pliki katalogu "/var/www" (jeszcze nie zamontowane)

Rysunek 6-2. Jeszcze nie zamontowany system plików

/

/home

/usr

/var

/var/www

/var/www/cgi−bin

/var/www/html

/var/www/icons

Rysunek 6-3. System plików jest teraz zamontowany ˙ sobie wyobrazi´c, daje to rózne ˙ mozliwo´ ˙ Jak mozna sci: struktura drzewa b˛edzie zawsze taka sama, bez wzgl˛edu na to, czy znajduje sie na zwykłym systemie plików, czy na rozszerzonym ponad kilkadziesiat ˛ razy. Ta elastyczno´sc´ pozwala na przenoszenie kluczowej cz˛es´ ci struktury drzewa na inna˛ partycj˛e, gdy zaczyna brakowa´c miejsca. Przedstawimy to w nast˛epnych paragrafach. Sa˛ dwie rzeczy, które musisz wiedzie´c na temat punktów montowania: 1. Katalog, który pełni funkcj˛e punktu montowania musi istnie´c. ˙ 2. I dodatkowo, katalog ten powinien by´c pusty: jezeli katalog wybrany jako punkt montowania zawiera juz˙ pliki i podkatalogi, zostana˛ one „ukryte” przez obecnie zamontowany system plików. Pliki nie zostana˛ usuni˛ete, ale nie b˛eda˛ równiez˙ dost˛epne az˙ do momentu zwolnienia punktu montowania.

Istnieje mo˙zliwo´s´c dostepu do danych ukrytych”przez nowo zamon, ” towany system plik´ ow. Wystarczy, z˙ e zamontujesz ukryty katalog z opcja, --bind. Na przyklad, je˙zeli wla´snie zamontowale´s katalog w /hidden/directory/ i chcesz uzyska´c dostep , do jego pierwotnej zawarto´sci w /new/directory, bedziesz musial uruchomi´c , mount --bind /hidden/directory/ /new/directory

42


Rozdział 6. Systemy plików i punkty montowania

6.2. Partycjonowanie twardego dysku, formatowanie partycji ˙ pami˛eta´c, gdy czytasz ten dział: twardy dysk jest podzielony na partycje, Sa˛ dwie rzeczy o których nalezy ˙ a kazda z tych partycji posiada system plików. Twój nowy dysk twardy nie posiada ani partycji, ani systemów plików, dlatego rozpoczynamy od partycjonowania. Aby tego dokona´c musisz by´c zalogowany jako administrator. ˙ nowy dysk twardy jest ustawiony Przede wszystkim musisz zna´c „nazw˛e” twardego dysku. Przypu´sc´ my, ze jako podrz˛edny na pierwszym interfejsie IDE. W tym przypadku, b˛edzie ona znana jako /dev/hdb.2. Sprawd´z podr˛ecznik Starter Guide/Zarzadzanie ˛ partycjami, który wyja´snia jak partycjonowa´c dysk.Prosimy sprawdzi´c ˙ utworzy dla Ciebie systemy plików, , aby dowiedzie´c si˛e wi˛ecej na temat partycjonowania. DiskDrake takze ˙ wi˛ec kiedy kroki partycjonowania systemu i tworzenia systemu plików zostana˛ zakonczone, ´ mozemy przej´sc´ dalej.

6.3. Polecenia mount i umount ˙ Teraz, gdy utworzony został system plików, mozesz zamontowa´c partycj˛e. Wst˛epnie, b˛edzie ona pusta, po˙ jeszcze na niej zapisa´c plików. Poleceniem do montowania niewaz˙ system nie miał do niej dost˛epu i nie zda˛zył systemu plików jest mount , a jego składnia jest nast˛epujaca: ˛ mount [opcje] <-t rodzaj> [-o opcje montowania] <urzadzenie> ˛ <punkt montowania>

˙ W tym przypadku chcemy tymczasowo zamontowa´c nasza˛ partycj˛e w /mnt/new (lub kazdym innym punkcie ˙ punkt montowania musi istnie´c). Oto polecenie, które zamontuje montowania który wybrałe´s: pami˛etaj, ze nasza˛ nowoutworzona˛ partycj˛e: $ mount -t ext3 /dev/hdb1 /mnt/new

Opcja -t jest wykorzystywana do okre´slenia rodzaju systemu plików jaki partycja powinna zawiera´c. Systemy plików, jakie b˛edziesz wykorzystywał najcz˛es´ ciej to ext2FS (system plików GNU/Linux) lub ext3FS (poprawiona wersja ext2FS z dodanym dziennikiem), VFAT (dla prawie wszystkich partycji DOS/Windows®: FAT 12, 16 lub 32), NTFS (dla nowszych wersji systemu Windows®) oraz ISO9660 (system plików dla płyt CD-ROM). ˙ nie okre´slisz rodzaju, mount spróbuje odgadna´ Jezeli ˛c system plików obsługiwany przez partycj˛e odczytujac ˛ jej super sektor. Opcja -o jest wykorzystywana do okre´slenia jednej lub wi˛ecej opcji montowania. Opcje odpowiednie dla poszczególnych systemów plików zalez˙ a˛ od systemu pliku, który jest wykorzystywany. Sprawd´z strony podr˛ecznika mount(8), aby pozna´c szczegóły. Teraz, gdy zamontowałe´s swoja˛ nowa˛ partycj˛e, nadszedł czas skopiowa´c na nia˛ cały katalog /usr: $ (cd /usr && tar cf - .) | (cd /mnt/new && tar xpvf -)

˙ Teraz, gdy pliki zostały skopiowane, mozemy odmontowa´c nasza˛ partycj˛e. Aby to zrobi´c, wykorzystaj polecenie umount. Jego składnia jest nast˛epujaca: ˛ umount <punkt montowania|urzadzenie> ˛

˙ Tak wi˛ec, aby odmontowa´c nasza˛ nowa˛ partycj˛e mozesz wpisa´c: $ umount /mnt/new

lub: $ umount /dev/hdb1

2.

Okre´slanie nazwy dysku zostało opisane w dziale Zwroty uz˙ ywane w nazewnictwie dysków i partycji, strona 19.

43


Rozdział 6. Systemy plików i punkty montowania

Czasami mo˙ze sie, zdarzy´c, z˙ e urzadzenie (zwykle CD-ROM) jest , zajete. Je˙zeli tak sie, dzieje wiekszo´ s´c u˙zytkownik´ ow rozwiazuje , , , taki problem ponownym uruchomieniem komputera. Na przyklad je˙zeli polecenie umount /dev/hdc zako´ nczy sie, niepowodzeniem, mo˙zesz zastosowa´c leniwe”umount. Skladnia jest do´s´c prosta: ” umount -l <punkt montowania|urzadzenie> ˛

Polecenie rozlacza urzadzenie i zamyka wszystkie otwar, , si e z urzadzeniem. Zwykle wyste aplikacje komunikujace , , , tarczy wysuna´ c dysk u˙ z ywaj ac polecenia eject <punkt , , montowania|urzadzenie>. ˛ Ale je˙zeli polecenie eject nic nie powoduje, a ty nie chcesz ponownie uruchamia´c systemu skorzystaj z leniwego odmontowywania.

Poniewaz˙ niniejsza partycja ma si˛e sta´c naszym katalogiem /usr, musimy o tym poinformowa´c system. Aby ˙ to zrobi´c, przeprowadzimy edycj˛e pliku /etc/fstab. Umozliwia on automatyzacj˛e montowania okre´slonych systemów plików, szczególnie przy rozruchu. Zawiera on seri˛e wierszy opisujacych ˛ systemu plików, ich punkty montowania oraz inne opcje. Oto przykład takiego pliku: /dev/hda2 / ext3 defaults 1 1 /dev/hdd /mnt/cdrom auto umask=0022,user,iocharset=utf8,noauto,ro,exec,users 0 0 /dev/fd0 /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0022,iocharset=utf8,sync 0 0 /dev/hda1 /mnt/windows ntfs umask=0,nls=utf8,ro 0 0 none /proc proc defaults 0 0 /dev/hda3 swap swap defaults 0 0

˙ Kazdy wiersza składa si˛e z: •

urzadzenia ˛ przechowujacego ˛ system plików;

punktu montowania;

rodzaju systemu plików;

opcji montowania;

narz˛edzia tworzenia kopii zapasowej dump flaga;

kolejno´sci sprawdzania programu fsck (FileSystem ChecK).

Zawsze jest wpis dla systemu plików root. Partycje Swap sa˛ szczególne, poniewaz˙ nie sa˛ widoczne w struk˙ chodzi o turze drzewa, a pole punktów montowania dla tych partycji zawiera słowo kluczowe swap. Jezeli system plików /proc, zostanie on opisany bardziej szczegółowo w rozdziale “System plików /proc”, strona 35. Kolejnym specjalnym systemem plików jest /dev/pts. ˙ ze ˙ system moze ˙ dodawa´c i usuwa´c wpisy automatycznie. Wykonywane jest to za pomoca˛ Pami˛etaj takze, polecenia fstab-sync, które otrzymuje specjalne polecenia z systemu Hardware Abstraction Layer (HAL) i zmienia plik /etc/fstab. Sprawd´z strony podr˛ecznika fstab-sync(8), aby uzyska´c wi˛ecej informacji. Wracajac ˛ do zmiany naszego systemu plików, w tym miejscu przenie´sli´smy cała˛ hierarchi˛e /usr do /dev/ hdb1 i chcemy, aby ta partycja została zamontowana jako /usr w momencie rozruchu. Aby to osiagn ˛ a´ ˛c, dodaj nast˛epujace ˛ wpisy w dowolne miejsce pliku /etc/fstab: /dev/hdb1 /usr ext3 defaults 1 2

˙ Teraz partycja zostanie zamontowana z kazdym rozruchem systemu i b˛edzie sprawdzana w razie koniecznos´ ci w poszukiwaniu bł˛edów.

Je˙zeli Twoja partycja nie jest rodzaju ext3FS bedziesz musial zmie, ni´c ja, na odpowiedni typ. Najbardziej popularne typy to ext2 oraz reiserfs. Pamietaj tak˙ze, z˙ e ostatnie pole ma warto´s´c 2. Oznac, za to, z˙ e bedzie ono sprawdzone po wszystkich innych pozycjach z , warto´scia, 1, a tak˙ze po innych systemach plik´ ow z takim samym priorytetem na tym samym dysku twardym, kt´ ore pojawia, sie, przed nim w /etc/fstab. Tylko partycja root (/) powinna posiada´c warto´s´c 1.

44


Rozdział 6. Systemy plików i punkty montowania ˙ system plików nie powinien by´c Istnieja˛ dwie opcje specjalne: noauto oraz users. Opcja noauto mówi, ze montowany przy uruchamianiu systemu, a tylko wtedy gdy zostanie wydane odpowiednie polecenie. Opcja ˙ dowolny uzytkownik ˙ ˙ montowa´c lub odmontowa´c system plików. Te dwie opcje sa˛ users okre´sla, ze moze ˙ inne opcje, /etc/fstab pozwykle wykorzystywane przy dyskach CD-ROM oraz dyskietkach. Istnieja˛ takze siada strony manuala (fstab(5)), które zawieraja˛ dodatkowe informacje. Zaleta˛ stosowania /etc/fstab jest uproszczenie składni polecenia mount. Aby zamontowa´c system plików ˙ opisany w pliku, mozesz albo okre´sli´c punkt montowania, albo urzadzenie. ˛ Aby zamontowa´c dyskietk˛e, mo˙ zesz wpisa´c: $ mount /mnt/floppy

lub: $ mount /dev/fd0

Aby zakonczy´ ´ c przykład przenoszenia partycji, przypomnijmy, co zostało juz˙ dokonane. Skopiowali´smy hie˙ nowa partycja b˛edzie montowana przy starcie systemu. rarchi˛e /usr i zmodyfikowali´smy /etc/fstab tak, ze ˙ w tej chwili, stare pliki /usr w dalszym ciagu Jednakze ˛ znajduja˛ si˛e w swoim pierwotnym miejscu na dys˙ je usuna´ ku twardym, wi˛ec nalezy ˛c, aby zwolni´c miejsce (co w rzeczywisto´sci było naszym podstawowym celem). •

˙ Aby to zrobi´c, najpierw musisz si˛e przełaczy´ ˛ c do trybu jednego uzytkownika wpisujac ˛ polecenie telinit ˙ ˙ 1 we wierszu polecen. ´ Zatrzyma ono wszystkie usługi i uniemozliwi uzytkownikom podłaczanie ˛ si˛e do systemu.

˙ cały czas mówimy o „starym” katalogu, Nast˛epnie, usuwamy wszystkie pliki z katalogu /usr. Pami˛etaj, ze poniewaz˙ nowy, wi˛ekszy, nie został jeszcze zamontowany. rm -Rf /usr/*.

Wreszcie, montujemy nowy katalog /usr: mount /usr.

˙ Gotowe. Teraz powracamy do trybu wielu uzytkowników (telinit 3 dla trybu tekstowego lub telinit ˙ nie ma juz˙ zadnych ˙ 5 dla trybu graficznego), a jezeli zadan´ administracyjnych, powiniene´s si˛e wylogowa´c z konta administrator.

45


Rozdział 6. Systemy plików i punkty montowania

46


Rozdzial 7. Wprowadzenie do wiersza polece´ n Z rozdziału “Podstawowe zagadnienia systemu UNIX®”, strona 7 dowiedziałe´s si˛e jak uruchomi´c konsol˛e. W ˙ niniejszym rozdziale, pokazemy Ci jak z nia˛ pracowa´c. ˙ jest po´swi˛econe Główna˛ zaleta˛ konsoli jest liczba dostarczanych przez nia˛ narz˛edzi: jest ich tysiace ˛ , a kazde ˙ konkretnemu zadaniu. Przyjrzymy si˛e tutaj tylko niewielkiej (bardzo) liczbie tych narz˛edzi. UNIX® umozliwia ˙ w dalszej cz˛es´ ci podr˛ecznika. łaczenie ˛ tych narz˛edzi, co pokazemy

7.1. Narzedzia do obslugi plik´ ow , W tym znaczeniu, obsługa plików oznacza ich kopiowanie, przenoszenie i usuwanie. W nast˛epnym etapie przyjrzymy si˛e zmianie atrybutów (własno´sci i uprawnien). ´

7.1.1. mkdir, touch: Tworzenie pustych plik´ ow i katalog´ ow mkdir (MaKe DIRectory) jest stosowany do tworzenia katalogów. Jego składnia jest do´sc´ prosta: mkdir [opcje] <katalog> [katalog ...]

Omówimy tutaj tylko opcj˛e -p, która wykonuje dwa działania: ˙ 1. tworzy katalogi nadrz˛edne, jezeli jeszcze nie istnieja.˛ Bez tej opcji polecenie mkdir si˛e niepowiedzie, ˙ katalogi nie istnieja;˛ zgłaszajac ˛ komunikat, ze ˙ katalog, który chcesz utworzy´c juz˙ istnieje, wy´swietlony zostanie odpowiedni komunikat. Podobnie, 2. jezeli ˙ katalog juz˙ jak w przypadku braku opcji -p, mkdir wy´swietli komunikat bł˛edu, informujacy ˛ o tym, ze istnieje. Oto kilka przykładów: •

mkdir foo: tworzy katalog foo w katalogu biez˙ acym; ˛

mkdir -p images/misc docs: tworzy katalog misc w katalogu images. Najpierw, tworzy katalog ˙ nie istnieje (-p); tworzy takze ˙ katalog o nazwie docs w katalogu biez˙ acym. ˛ nadrz˛edny, jezeli

Wst˛epnie, polecenie touch nie było przeznaczone do tworzenia plików, ale do aktualizacji dost˛epu do pliku ˙ polecenie touch utworzy puste pliki, które jeszcze nie istnieja.˛ Składnia jest i czasu modyfikacji1. Jednakze, nast˛epujaca: ˛ touch [opcje] plik [plik...]

Tak wi˛ec polecenie: touch file1 images/file2

spowoduje utworzenie pustego pliku o nazwie file1 w katalogu biez˙ acym ˛ oraz pustego pliku file2 w kata˙ pliki jeszcze nie istniały. logu images, jezeli

7.1.2. rm: Usuwanie plik´ ow lub katalg´ ow Polecenie rm (ReMove) jest odpowiednikiem polecen´ del i deltree systemu DOS, posiada ono jednak wi˛ecej opcji. Jego składnia jest nast˛epujaca: ˛ rm [opcje] <plik|katalog> [plik|katalog...]

Dost˛epne opcje:

®

˙ 1. W UNIX , sa˛ trzy oznaczenia czasowe dla kazdego pliku: ostatnia data dost˛epu (atime), np. data, kiedy plik był ostatnio otwarty, odczytany lub zmieniony; data ostatniej zmiany atrybutów (ctime); oraz data ostatniej zmiany zawarto´sci pliku (mtime).

47


Rozdział 7. Wprowadzenie do wiersza polecen´ •

-r, lub -R: usuwanie rekurencyjne. Ta opcja jest obowiazkowa ˛ w przypadku usuwania folderów, pustych ˙ ˙ uzy´ ˙ c polecenia rmdir aby usuna´ lub nie. Jakkolwiek, mozesz takze ˛c puste katalogi.

˙ ˙ domy´slnie w systemie Mandriva Linux, rm -i: z˙ ada ˛ potwierdzenia przed kazdym usuni˛eciem. Pami˛etaj, ze ˙ chcesz jest aliasem rm -i, z przyczyn bezpieczenstwa ´ (podobne aliasy istnieja˛ dla polecen´ cp i mv). Jezeli ˙ ˙ usuna´ ˛c aliasy, utwórz pusty plik ~/.alias, który uniemozliwi ustawianie aliasów systemowych. Mozesz ˙ zmieni´c swój plik ~/.bashrc, aby wyłaczy´ takze ˛ c niektóre z alisów systemu, dodajac ˛ wiersz: unalias rm cp mv

˙ uzytkownik ˙ nie posiada praw -f to odwrotno´sc´ -i, wymusza usuwanie plików lub katalogów nawet, jezeli 2 zapisu do plików .

Kilka przykładów: •

rm -i images/*.jpg file1: usuwa wszystkie pliki z nazwami koncz ´ acymi ˛ si˛e na .jpg w katalogu ˙ usuwa file1 w katalogu biez˙ acym ˙ images, a takze ˛ z˙ adaj ˛ ac ˛ potwierdzenia dla kazdego pliku. Odpowiedz y, aby potwierdzi´c usuwanie, albo n, aby anulowa´c.

rm -Rf images/misc/ file*: usuwa, bez z˙ adania ˛ powierdzenia, cały katalog misc/ z katalogu images/, razem z wszystkimi plikami z biez˙ acego ˛ katalogu, których nazwy rozpoczynaja˛ si˛e od file.

Zastosowanie rm powoduje nieodwracalne usuniecie plik´ ow. Nie , ma sposobu, aby je przywr´ oci´c! (Wla´sciwie to jest kilka sposob´ ow aby to zrobi´c, ale nie jest to latwe zadanie.) Zalecamy wykorzystanie opcji -i, aby upewni´c sie, z˙ e usuniete zostana, tylko z˙ adane pliki. , ,

7.1.3. mv: Przenoszenie i zmiana nazw plik´ ow Składnia polecenia mv (MoVe) wyglada ˛ nast˛epujaco: ˛ mv [opcje] <plik|katalog> [plik|katalog ...] <miejsce_docelowe>

˙ jezeli ˙ Pami˛etaj, ze przenosisz wiele plików, to miejscem docelowym musi by´c katalog. Aby zmieni´c nazw˛e pliku wystarczy przenie´sc´ go do nowej nazwy. Niektóre opcje: •

˙ istniejacy -f: wymusza działanie. Brak jest jakichkolwiek komunikatów jezeli ˛ plik ma by´c nadpisany.

˙ -i: odwrotnie. Pyta uzytkownika o potwierdzenie przed nadpisaniem istniejacego ˛ pliku.

-v: tryb szczegółowy, wy´swietla wszystkie zmiany i działania.

Kilka przykładów: •

mv -i /tmp/pics/*.png .: przenosi wszystkie pliki z katalogu /tmp/pics/, których nazwy koncz ´ a˛ si˛e na .png do katalogu biez˙ acego ˛ (.) z˙ adaj ˛ ac ˛ potwierdzenia przy nadpisywaniu plików, które juz˙ si˛e tam znajduja.˛

˙ katalog bar juz˙ istnieje, efektem tego polecenia b˛edmv foo bar: zmienia nazw˛e pliku foo na bar. Jezeli zie przeniesienie pliku foo lub całego katalogu (samego katalogu oraz plików, które si˛e w nim znajduja,˛ rekurencyjnie) do katalogu bar.

mv -vf file* images/ trash/: przenosi, bez z˙ adania ˛ potwierdzenia, wszystkie pliki z katalogu ˛ których nazwy rozpoczynaja˛ si˛e od file razem z całym katalogiem images/, do katalogu biez˙ acego, ˙ a˛ przeprowadzona˛ operacj˛e. trash/ i pokazuje kazd

˙ ˙ nie jest on 2. Wystarczy, aby uzytkownik miał prawo zapisu do katalogu, aby mógł usuwa´c z niego pliki nawet, jezeli ich wła´scicielem.

48


Rozdział 7. Wprowadzenie do wiersza polecen´

7.1.4. cp: Kopiowanie plik´ ow i katalog´ ow cp (CoPy) jest odpowiednikiem polecen´ copy i xcopy w systemie DOS, ale posiadajacym ˛ wi˛eksza˛ ilo´sc´ opcji. Jego składnia jest nast˛epujaca: ˛ cp [opcje] <plik|katalog> [plik|katalog ...] <miejsce_docelowe>

Oto najcz˛es´ ciej wykorzystywane opcje dla polecenia cp: •

-R: kopiowanie rekurencyjne; zalecane w przypadku kopiowania katalogów, nawet pustych.

-i: z˙ ada ˛ potwierdzenia w przypadku operacji nadpisywania istniejacych ˛ plików.

˙ -f: odwrotno´sc´ opcji -i, zamienia kazdy istniejacy ˛ plik bez konieczno´sci potwierdzania.

-v: tryb szczegółowy, wy´swietla wszystkie działania wykonywane przez cp.

Kilka przykładów: •

cp -i /timages/* images/: kopiuje wszystkie pliki z katalogu /timages/ do katalogu images/ zloka˙ plik ma zosta´c nadpisany. ˛ Z˙ ada ˛ potwierdzenia, jezeli lizowanego w katalogu biez˙ acym.

˙ wszystkie pliki w z cp -vR docs/ /shared/mp3s/* mystuff/: kopiuje cały katalog docs, a takze katalogu /shared/mp3s do katalogu mystuff.

cp foo bar: tworzy kopi˛e pliku foo o nazwie bar w katalogu biez˙ acym. ˛

7.2. Atrybuty plik´ ow Zestaw przedstawionych tutaj polecen´ jest wykorzystywany do zmiany wła´sciciela lub grupy wła´scicieli pli˙ uprawnienia omawiamy w rozdziale “Podstawowe zagadnienia systemu UNIX®”, ku lub jego uprawnien. ´ Rózne strona 7.

7.2.1. chown, chgrp: Zmiana wla´sciciela lub grupy jednego lub wiecej plik´ ow , Składnia polecenia chown (CHange OWNer) jest nast˛epujaca: ˛ chown [opcje] <u˙ zytkownik[:grupa]> <plik|katalog> [plik|katalog...]

Dost˛epne opcje: •

-R: rekurencyjne. Aby zmieni´c wła´sciciela wszystkich plików i podkatalogów danego katalogu.

-v: tryb szczegółowy. Wy´swietla wszystkie działania przeprowadzone przez polecenie chown; przedstawia pliki, których wła´sciciel został zmieniony poprzez zastosowanie polecenia i te, które nie zostały zmienione.

-c: podobnie jak -v, ale wy´swietla tylko pliki, które zostały zmienione.

Kilka przykładów: •

chown nobody /shared/book.tex: zmienia wła´sciciela pliku /shared/book.tex na nobody.

chown -Rc ania:music *.mid concerts/: zmienia wła´sciciela wszystkich plików w katalogu biez˙ acym, ˛ ˙ których nazwa konczy ´ si˛e na .mid i wszystkie pliki i podkatalogi z katalogu concerts/ na uzytkownika ania oraz grup˛e music, wy´swietli tylko pliki zmienione przez polecenie.

Polecenie chgrp (CHange GRouP) pozwala zmieni´c własno´sc´ grupowa˛ pliku (lub plików); jego składnia jest podobna do polecenia chown: chgrp [opcje] <grupa> <plik|katalog> [plik|katalog...]

Opcje dotyczace ˛ tego polecenia sa˛ takie same jak dla polecenia chown i korzysta si˛e z nich w ten sam sposób. I tak, polecenie chgrp disk /dev/hd* zmienia własno´sc´ wszystkich plików w katalogu /dev o nazwach zaczynajacych ˛ si˛e od hd na grup˛e disk.

49


Rozdział 7. Wprowadzenie do wiersza polecen´

7.2.2. chmod: Zmiana praw dostepu plik´ ow i katalog´ ow , Polecenie chmod (CHange MODe) ma bardzo szczególna˛ składni˛e. Ogólna składnia jest nast˛epujaca: ˛ chmod [opcje] <change mode> <plik|katalog> [plik|katalog...]

˙ ˙ formy, jakie moze ˙ przybra´c zmiana trybu. Moze ˙ by´c on okre´slony na Ale to co odróznia ja˛ od innych, to rózne dwa sposoby: 1. Ósemkowy. Prawa dost˛epu wła´sciciela odpowiadaja˛ danym według wzoru <x>00, gdzie <x> to przypisane uprawnienie: 4 oznacza prawo odczytu, 2 prawo zapisu, a 1 prawo wykonalno´sci. Podobna˛ form˛e ˙ zromaja˛ uprawnienia grup - <x>0, a uprawnienia „innych” formuł˛e <x>. Nast˛epnie, wszystko co nalezy bi´c, to doda´c przypisane uprawnienia, aby otrzyma´c odpowiedni tryb. I tak, uprawnienia rwxr-xr-- sa˛ równe 400+200+100 (uprawnienia wła´sciciela, rwx) +40+10 (uprawnienia grupy, r-x) +4 (uprawnienia ˙ ˙ poprzedinnych, r--) = 754; w ten sposób, uprawnienia sa˛ wyrazane w sposób absolutny, co oznacza, ze nie uprawnienia sa˛ bezwarunkowo zast˛epowane; ˙ n. ˙ ˙ n´ oddzielonych od 2. za pomoca˛ wyraze ´ Tutaj, uprawnienia sa˛ wyrazane za pomoca˛ sekwencji wyraze siebie przecinkami. Przyjmuja˛ one nast˛epujac ˛ a˛ posta´c: [kategoria]<+|-|=><uprawnienia>. Kategorie moga˛ by´c nast˛epujace: ˛ •

u (Uz˙ ytkownik, uprawnienia wła´sciciela);

g (Grupa, uprawnienia dla grupy wła´sciciela);

o (Inni, uprawnienia „innych”).

˙ ˙ Jezeli nie zostanie okre´slona zadna kategoria, zmiany b˛eda˛ zastosowane do wszystkich kategorii. Znak + ustawia uprawnienia, a - je usuwa; znak = ustawia uprawnienie dokładnie na to okre´slone w wierszu polecen. ´ Prawa dost˛epu moga˛ mie´c jedna˛ z nast˛epujacych ˛ postaci: •

r (Odczyt);

w (Zapis) lub;

x (Uruchomienie).

Główne opcje sa˛ podobne do tych dla polecen´ chown i chgrp: •

-R: zmienia uprawnienia rekurencyjnie.

˙ -v: tryb szczegółowy. Wy´swietla działania przeprowadzone na kazdym pliku.

-c: podobnie jak -v ale pokazuje tylko pliki w których zostały wprowadzone zmiany.

Przykłady: •

chmod -R o-w /shared/docs: usuwa rekurencyjnie uprawnienia do zapisu dla innych we wszystkich plikach i podkatalogach w katalogu /shared/docs/.

chmod -R og-w,o-x private/: usuwa uprawnienia do zapisu dla grupy oraz innych dla całego ka˙ usuwa uprawnienia wykonalno´sci dla innych, rekurencyjnie. talogu private/, a takze

chmod -c 644 misc/file*: zmienia uprawnienia dla wszystkich plików w katalogu misc/, których nazwy rozpoczynaja˛ si˛e od file na rw-r--r-- (np. uprawnienia odczytu dla wszystkich i uprawnienia zapisu tylko dla wła´sciciela) oraz wy´swietla tylko pliki, które zostały zmienione.

50


Rozdział 7. Wprowadzenie do wiersza polecen´

7.3. Korzystanie ze znak´ ow wieloznacznych Prawdopodobnie korzystałe´s juz˙ ze znaków wieloznacznych nawet niewiedzac ˛ o tym. Kiedy okre´slasz plik w Windows® lub kiedy go szukasz, korzystasz ze znaku * aby zastapi´ ˛ c dowolny ciag. ˛ Na przykład, *.txt oznacza wszystkie pliki, których nazwa konczy ´ si˛e na .txt. Korzystali´smy z tego znaku bardzo cz˛esto w poprzednim dziale, ale znaków wieloznacznych jest wiele wi˛ecej niz˙ tylko *. Kiedy wprowadzisz polecenie typu ls *.txt i wci´sniesz klawisz Enter, zadanie wyszukiwania plików odpowiadajacych ˛ wzorcowi *.txt nie jest wykonywane przez polecenie ls, ale przez sama˛ powłok˛e. Wymaga ˙ wpiszesz: to niewielkiego wyja´snienia, jak wiersz polecen´ jest interpretowany przez powłok˛e. Jezeli $ ls *.txt readme.txt

recipes.txt

wiersz polecen´ jest najpierw dzielony na słowa (w tym przypadku ls oraz *.txt). Kiedy powłoka widzi w słowie znak *, to całe słowo zostanie zinterpretowane jako wzorzec i b˛edzie zastapione ˛ nazwami plików, ˙ polecenie, zanim zostanie wykonane przez powłok˛e, zostaje zastapione które do niego pasuja.˛ Dlatego tez, ˛ przez ls readme.txt recipe.txt, co daje oczekiwany rezultat. Inne znaki powoduja˛ podobne zachowanie powłoki: •

?: oznacza tylko jeden i tylko jeden dowolny znak;

˙ [...]: odpowiada kazdemu znakowi, który znajduje si˛e w nawiasach. Znaki moga˛ by´c okre´slone albo przez zakres (np. 1-9), albo przez warto´sci dyskretne, a nawet oba. Przykład: [a-zBE5-7] b˛edzie odpowiada´c wszystkim znakom od a do z, nast˛epnie B, E, oraz znakowi 5, 6 lub 7;

˙ [!...]: odpowiada kazdemu znakowi, który nie znajduje si˛e w nawiasach. [!a-z], na przykład b˛edzie oznaczał znak, który nie jest mała˛ litera˛3;

˙ wzorcami, oznaczajacymi ˙ mozesz ˙ {c1,c2}: odpowiada c1 lub c2, gdzie c1 i c2 sa˛ takze ˛ ze wpisa´c na przykład {[0-9]*,[acr]}.

Oto kilka wzorców i ich znaczenie: •

/etc/*conf: wszystkie pliki w katalogu /etc, których nazwy koncz ´ a˛ si˛e na conf. Moga˛ one odpowiada´c ˙ taki plik istnieje. Pami˛etaj, ze ˙ nazwom /etc/inetd.conf, /etc/conf.linuxconf, , a tak˙ze /etc/conf jezeli ˙ pusty ciag. ˛ * oznacza takze

image/{cars,space[0-9]}/*.jpg: wszystkie nazwy plików koncz ´ ace ˛ si˛e na .jpg w katalogach ˙ takie katalogi istnieja.˛ image/cars, image/space0, (...), image/space9, jezeli

/usr/share/doc/*/README: wszystkie pliki o nazwie README we wszystkich podkatalogach /usr/ share/doc. B˛edzie to pasowało na przykład do /usr/share/doc/mandriva/README, ale nie do /usr/share/ doc/myprog/doc/README.

˛ katalogu, które nie koncz ´ a˛ si˛e mała˛ litera.˛ *[!a-z]: wszystkie nazwy plików w biez˙ acym

7.4. Przekierowania i potoki 7.4.1. Kilka sl´ ow o procesach Aby zrozumie´c zagadnienie przekierowan´ i potoków, musimy wyja´sni´c zapis procesów, które nie zostały ˙ aplikacji graficznych z wyłaczeniem jeszcze przedstawione. Wi˛ekszo´sc´ procesów UNIX® (dotyczy to takze ˛ wi˛ekszo´sci demonów) wykorzystuje minimum trzy deskryptory plików: standardowe wej´scie, standardowe wyj´scie oraz bład ˛ standardowy. Odpowiadajace ˛ im liczby, to 0, 1 i 2. Ogólnie rzecz biorac, ˛ te trzy deskryptory sa˛ zwiazane ˛ z terminalem z którego proces został uruchomiony oraz wej´sciem w postaci klawiatury. Celem przekierowan´ i potoków jest przekierowanie tych deskryptorów. Przykłady w tym rozdziale pomoga˛ Ci lepiej zrozumie´c to zagadnienie.

˙ moze ˙ nie dotyczy´c Twojego przypadku. Zalezy ˙ ona od ko3. Uwaga! Cecha ta dotyczy wi˛ekszo´sci j˛ezyków, jednakze ˙ ze ˙ niektóre lejno´sci zestawienia. W konfiguracji niektórych j˛ezyków, [a-z] oznacza a, A, b, B, (...), z. Pami˛etaj równiez, j˛ezyki posiadaja˛ znaki akcentowane...

51


Rozdział 7. Wprowadzenie do wiersza polecen´

7.4.2. Przekierowania ˙ chciałe´s uzyska´c list˛e plików koncz Wyobra´z sobie, na przykład, ze ´ acych ˛ si˛e na .png4 z katalogu images. Ta ˙ ˙ lista jest bardzo długa, wi˛ec mozesz ja˛ przechowywa´c w pliku, aby przeglada´ ˛ c ja˛ w wolnym czasie. Nalezy wprowadzi´c nast˛epujace ˛ polecenie: $ ls images/*.png 1>plik_listy

˙ standardowe wyj´scie tego polecenia (1) jest przekierowywane (>) do pliku o nazwie plik_listy. Oznacza, ze ˙ plik docelowy przekierowania nie istnieje, jest on Operator > jest operatorem przekierowania wyj´scia. Jezeli tworzony, a je´sli istnieje, jego poprzednia zawarto´sc´ b˛edzie nadpisana. Poniewaz˙ domy´slny deskryptor przekierowany przez operatora jest standardowym wyj´sciem i nie wymaga okre´slenia w wierszu polecen. ´ Dlatego ˙ mozesz zapisa´c składni˛e pro´sciej: $ ls images/*.png >plik_listy

˙ , a wynik b˛edzie dokładnie taki sam. Teraz mozesz przyjrze´c si˛e plikowi korzystajac ˛ z przegladarki ˛ plików tekstowych takiej jak less. ˙ chcesz wiedzie´c ile z tych plików istnieje. Zamiast liczy´c je r˛ecznie, mozesz ˙ Teraz, wyobra´z sobie, ze wykorzysta´c narz˛edzie o nazwie wc (Word Count) z opcja˛ -l, które wy´swietla na standardowym wyj´sciu liczb˛e wierszy w pliku. Oto jedno z rozwiaza ˛ n: ´ $ wc -l 0<plik_listy

i otrzymujemy oczekiwany rezultat. Operator < jest operatorem przekierowania wej´scia, a domy´slnym deskryptorem przekierowania jest deskryptor wej´scia standardowego, np. 0. Po prostu musisz wprowadzi´c wiersz: $ wc -l <plik_listy

˙ chcesz usuna´ Teraz przypu´sc´ my, ze ˛c wszystkie „rozszerzenia” plików, a rezultat umie´sci´c w innym pliku. ˙ ˙ przekierowa´c standardowe wej´scie sed do Narz˛edziem, które to umozliwia jest sed (Stream EDitor). Nalezy pliku plik_listy i przekierowa´c jego wyj´scie do pliku rezultatu np. lista: $ sed -e ’s/\.png$//g’ <plik_listy >lista

a Twoja lista zostanie utworzona, gotowa do przegladania ˛ w wolnym czasie dowolna˛ przegladark ˛ a.˛ ˙ ˙ uzy´ ˙ c do przekierowania bł˛edów standardowych. Na przykład, chcesz wiedzie´c, do Polecenia mozna takze których katalogów z /shared nie masz prawa dost˛epu: rozwiazaniem ˛ jest rekurencyjne wy´swietlenie zawarto´sci katalogu i przekierowanie bł˛edów do pliku, nie wy´swietlajac ˛ ich na standardowym wyj´sciu: $ ls -R /shared >/dev/null 2>errors

˙ standardowe wyj´scie zostanie przekierowane (>) do /dev/null, i utworzony specjalny plik do co oznacza, ze przechowywania danych, a kanał bł˛edu standardowego (2) zostanie przekierowany (>) do pliku errors.

7.4.3. Potoki ˙ w kazdym ˙ Potoki sa˛ w pewnym sensie połaczeniem ˛ przekierowan´ wej´scia i wyj´scia. Zasada˛ jest to, ze fizycznym potoku, bez wzgl˛edu na jego nazw˛e: jeden proces wysyła dane do jednego konca ´ potoku, a drugi proces odczytuje dane z drugiego konca. ´ Operatorem potoku jest |. Wró´cmy do przykładu z lista˛ plików. Przypu˙ chcesz si˛e dowiedzie´c ile okre´slonych plików znajduje si˛e w katalogu bez przechowywania listy w s´ c´ my, ze pliku tymczasowym. Wykorzystamy do tago nast˛epujace ˛ polecenie: $ ls images/*.png | wc -l

˙ standardowe wyj´scie polecenia ls (np. lista plików) jest przekierowywane do standardoktóre oznacza, ze wego wej´scia polecenia wc Dzi˛eki temu otrzymasz oczekiwany rezultat. ˙ ˙ to szalone mówi´c „pliki koncz 4. Mozesz my´sle´c, ze ´ ace ˛ si˛e na .png” zamiast „obrazy PNG”. Jakkolwiek, po raz kolejny, pliki w systemie UNIX posiadaja˛ rozszerzenie, ale zgodnie z zasada:˛ rozszerzenia nie okre´slaja˛ typu pliku. Plik koncz ´ acy ˛ ˙ całkiem spokojnie by´c obrazem JPEG, plikiem aplikacji, plikiem tekstowym, czy dowolnym innym si˛e na .png moze plikiem. To samo dotyczy systemu Windows !

®

®

52


Rozdział 7. Wprowadzenie do wiersza polecen´ ˙ ˙ bezpo´srednio utworzy´c list˛e plików „bez rozszerzen” Mozesz takze ´ za pomoca˛ polecenia: $ ls images/*.png | sed -e ’s/\.png$//g’ >lista

˙ chcesz zobaczy´c list˛e bezpo´srednio nie zapisujac lub, jezeli ˛ jej do pliku: $ ls images/*.png | sed -e ’s/\.png$//g’ | less

˙ by´c odczytany przez Potoki i przekierowania nie sa˛ zarezerwowane tylko i wyłacznie ˛ dla tekstu, który moze ludzi. Na przykład, nast˛epujace ˛ polecenie wysyłane z Terminala: $ xwd -root | convert - ~/my_desktop.png

wy´sle zrzut ekranu Twojego pulpitu do pliku my_desktop.png5 w Twoim katalogu domowym.

7.5. Uzupelnianie wiersza polece´ n Uzupełnianie jest bardzo przydatnym narz˛edziem i posiadaja˛ go wszystkie nowoczesne powloki (łacznie ˛ z ˙ bash). Jego zadaniem jest maksymalne ułatwienie pracy uzytkownikowi. Najlepszym sposobem przedstawienia tej funkcji jest zilustrowanie jej na przykładzie.

7.5.1. Przyklad ˙ Twój katalog domowy zawiera plik plik_z_bardzo_dluga_nazwa_niemo|liwa_do_wpisania, Przypu´sc´ my, ze ˙ w tym samym katalogu posiadasz inny plik o nazwie plik_tekstowy. i chcesz go przegladn ˛ a´ ˛c. Przypu´sc´ my, ze Jeste´s w swoim katalogu domowym, wi˛ec wpisz nast˛epujac ˛ a˛ sekwencj˛e: $ less pl<TAB>

(np., wpisz less pl i wci´snij klawisz Tab). powloka rozwinie dla wiersz polecen: ´ $ less plik_

˙ list˛e mozliwych ˙ ˙ by´c zmieniona). Nast˛eporaz pokaze wyborów (w swojej domy´slnej konfiguracji, która moze nie wpisz sekwencj˛e: $ less plik_z<TAB>

a powloka rozwinie wiersz polecen´ i otrzymasz oczekiwany rezultat: ˙ $ less plik_z_bardzo_długa_nazw ˛ a_niemo ˛ zliwa_do ˛ wpisania

˙ zrobi´c, to wcisna´ Wszystko co nalezy ˛c klawisz Enter, aby potwierdzi´c i odczyta´c plik.

U˙zyj klawisza q, aby wyj´s´c z przegladarki. ,

7.5.2. Inne metody uzupelniania Klawisz Tab nie jest jedynym sposobem na aktywowanie uzupełniania, jakkolwiek jest on najcz˛es´ ciej sto˙ słowo, które ma by´c uzupełnione b˛edzie nazwa˛ polecenia dla pierwszego sowany. Ogólna˛ zasada˛ jest, ze słowa w wierszu polecen´ (nsl<TAB> will give nslookup), a nazwa˛ pliku dla wszystkich pozostałych słów ˙ słowo jest poprzedzone znakiem „magicznym” typu ~, @, czy $, w którym to przypadku powlochyba, ze ˙ ka b˛edzie próbowała uzupełni´c odpowiednio nazw˛e uzytkownika, komputera lub zmienna˛ s´ rodowiskowa˛6. Istnieje równiez˙ magiczny znak dla uzupełniania nazwy pliku (/) oraz polecen´ (!).

®

5. Tak, b˛edzie to w rzeczy samej obraz PNG (dlatego, pakiet ImageMagick musi zosta´c zinstalowany). ˙ ˙ si˛e od zmienne s´ rodowiskowej 6. Pami˛etaj: UNIX rozróznia małe i wielkie litery. Zmienna s´ rodowiskowa HOME rózni home.

53


Rozdział 7. Wprowadzenie do wiersza polecen´ Pozostałe dwa sposoby aktywacji uzupełniania to sekwencjeEsc-<x> oraz Ctrl-X-<x>, gdzie <x> jest jednym z magicznych znaków wspomnianych wcze´sniej. Esc-<x> b˛edzie próbował wstawi´c unikalne uzupełnienie. ˙ ˙ Je´sli si˛e nie uda, uzupełni słowo najdłuzszym mozliwym pod-ciagiem ˛ z listy wyboru. beep oznacza albo, ˙ wybór nie jest unikatowy lub, ze ˙ nie ma odpowiedniego wyboru. Sekwencja Ctrl-X-<x> wy´swietli list˛e ze ˙ mozliwych wyborów bez jakiejkolwiek próby uzupełnienia. Wci´sni˛ecie klawisza Tab ma taki sam efekt jak ˙ od zawarto´sci. kolejne wciskanie Esc-<x> oraz Ctrl-X-<x>, gdzie magiczny znak zalezy Dlatego, jednym ze sposobów, aby zobaczy´c wszystkie zdefiniowane zmienne s´ rodowiskowe jest wpisa˙ nie sekwencji Ctrl-X-$ w pustym wierszu. Inny przykład: jezeli chcesz zobaczy´c stron˛e man dla polecenia nslookup, po prostu wpisz man nsl a nast˛epnie Esc-!, a powłoka automatycznie uzupełni polecenie do man nslookup.

7.6. Uruchamianie i obsluga proces´ ow w tle: kontrola pracy ˙ jezeli ˙ wchodzisz do wiersza polecen´ z Terminala, zwykle musisz czeka´c Prawdopodobnie zwróciłe´s uwag˛e, ze ˙ ˙ ˙ wysłałe´s polecenie na az polecenie zakonczy ´ prac˛e zanim powloka da Ci mozliwo´ sci kontroli. Oznacza to, ze ˙ pierwszy plan. Jednakze sa˛ momenty, w których nie jest to najlepsze. ˙ zdecydowałe´s si˛e skopiowa´c rekurencyjnie duzy ˙ katalog w inne miejsce. Zdecydowałe´s si˛e Przypu´sc´ my, ze ˙ ignorowa´c bł˛edy, wi˛ec przekierowałe´s kanał bł˛edów do /dev/null: takze cp -R images/ /shared/ 2>/dev/null

˙ zaja´ ˙ Takie polecenie moze ˛c kilka minut. W takiej sytuacji masz dwie mozliwo´ sci: pierwsza˛ jest zatrzymanie (zakonczenie) ´ polecenia i uruchomienie go ponownie, gdy b˛edziesz miał na to czas. Aby to zrobi´c, wci´snij Ctrl-C: spowoduje to zakonczenie ´ procesu i powrócisz do znaku zach˛ety. Ale czekaj, jeszcze tego nie rób! Czytaj dalej. ˙ chcesz, aby polecenie pracowało podczas gdy Ty b˛edziesz robił co´s innego. Rozwiazaniem Przypu´sc´ my, ze ˛ jest umieszczenie procesu w tle. Aby to zrobi´c, wci´snij Ctrl-Z aby zawiesi´c proces: $ cp -R images/ /shared/ 2>/dev/null # Tutaj wpisz C-z [1]+ Stopped cp -R images/ /shared/ 2>/dev/null $

I oto jeste´s z powrotem przy znaku zach˛ety. Proces jest wstrzymany, oczekuje az˙ go ponownie uruchomisz (co oznajmia słowo kluczowe Stopped). To oczywi´scie chcesz zrobi´c, ale w tle. Wpisz bg (od BackGround), aby osiagn ˛ a´ ˛c oczekiwany rezultat: $ bg [1]+ cp -R images/ /shared/ 2>/dev/null & $

Proces ponownie rozpocznie działanie jako zadanie w tle, co oznajmia znak „&” na koncu ´ wiersza. Powrócisz ponownie do znaku zach˛ety i b˛edziesz mógł pracowa´c dalej. Proces który działa jako zadanie tła lub w tle, nazywany jest praca˛ tła. ˙ Oczywi´scie, mozesz uruchomi´c proces bezpo´srednio w tle dodajac ˛ znak & na koncu ´ polecenia Na przykład, ˙ mozesz uruchomi´c polecenie kopiowania katalogu w tle wpisujac: ˛ $ cp -R images/ /shared/ 2>/dev/null &

˙ chcesz mozesz ˙ ˙ przywróci´c ten proces na pierwszy plan i poczeka´c az˙ si˛e zakonczy, Jezeli takze ´ wpisujac ˛ fg (ForeGround). Aby z powrotem wysła´c zadanie do tła wpisz sekwencj˛e Ctrl-Z, bg. ˙ ˙ Mozesz rozpocza´ ˛c kilka zadan´ na raz: wtedy kazde polecenie otrzyma numer zadania. Polecenie jobs wys´ wietla list˛e wszystkich zadan´ zwiazanych ˛ z biez˙ ac ˛ a˛ powloka. Zadanie poprzedzone znakiem + oznacza ostat˙ wpisa´c nio rozpocz˛ety proces jako zadanie tła. Aby przywróci´c okre´slone zadanie na pierwszy plan, nalezy fg <n>, gdzie <n> jest numerem zadania, np.fg 5. ˙ mozesz ˙ ˙ w ten sposób zawiesi´c lub uruchomi´c aplikacje pełnoekranowe, takie jak less, czy Pami˛etaj, ze takze edytor tekstów typu Vi, i przywróci´c je na pierwszy plan, je´sli chcesz.

54


Rozdział 7. Wprowadzenie do wiersza polecen´

7.7. Slowo ko´ ncowe Jak widzisz, powloka jest do´sc´ skomplikowana i korzystanie z niej wymaga do´swiadczenia. W tym, do´sc´ długim, rozdziale wspomnieli´smy tylko kilka z dost˛epnych polecen: ´ Mandriva Linux posiada tysiace ˛ narz˛edzi i ˙ nawet najbardziej zaawansowani uzytkownicy nie wykorzystuja˛ ich wszystkich. ˙ ˙ Istnieja˛ narz˛edzia dla przeróznych zastosowan: ´ sa˛ narz˛edzia do obsługi obrazów (takie jak wspomniany wyzej ˙ GIMP tryb batch i wszystkie narz˛edzia pixmap), d´zwi˛eku (Ogg Vorbis dekodery, odtwaconvert, ale takze rzacze audio CD), zapisu CD, klienci e-mail, klienci FTP, a nawet przegladarki ˛ internetowe (takie jak lynx czy links), nie wspominajac ˛ o wszystkich narz˛edziach administracyjnych. Nawet je´sli istnieja˛ podobne aplikacje działajace ˛ w trybie graficznym, sa˛ one zwykle interfejsem graficznym ˙ a˛ nadbudowanym na narz˛edziach wiersza polecen. ´ Dodatkowo, narz˛edzia wiersza polecen´ posiadaja˛ wazn ˙ zalet˛e, moga˛ działa´c w trybie nieinteraktywnym: mozesz rozpocza´ ˛c zapis CD, a nast˛epnie si˛e wylogowa´c z systemu bez wzgl˛edu na proces zapisu (zobacz strony nohup(1)man lub strony screen(1)man).

55


RozdziaĹ‚ 7. Wprowadzenie do wiersza polecen´

56


Rozdzial 8. Edycja tekst´ ow: Emacs i VI Jak wspomnieli´smy we wprowadzeniu, edycja tekstu1 jest podstawowa˛ funkcja˛ wykorzystywana˛ w systemie UNIX®. Dwa edytory, które przedstawimy w niniejszym rozdziale, poczatkowo ˛ wydaja˛ si˛e by´c trudne, jednak ˙ c jako bardzo funkcjonalne narz˛edzia. Wynika to z wielu przy dokładniejszym ich poznaniu b˛eda˛ mogły słuzy´ trybów, w których moga˛ one pracowa´c i z obsługi wielu formatów plików (Perl, C++, XML, itp.).

8.1. Emacs ˙ on absolutnie Emacs to prawdopodobnie najbardziej zaawansowany edytor tekstów jaki istnieje. Moze ˙ wszystko, a ponadto, dzi˛eki wbudowanemu j˛ezykowi programowania opartemu na lisp, mozliwe jest jego ˙ dostosowanie do własnych potrzeb. Za pomoca˛ programu Emacs mozesz porusza´c si˛e po Internecie, odczy˙ w tym tywa´c swoja˛ poczt˛e, korzysta´c z grup dyskusyjnych, robi´c kaw˛e, i tak dalej. Nie jest powiedziane, ze rozdziale nauczysz si˛e tego wszystkiego, ale na pewno zapoznasz si˛e z tym jak otworzy´c Emacs, przeprowadzi´c edycj˛e jednego lub wi˛ecej plików, zapisywa´c zmiany i zamyka´c program Emacs. ˙ Jezeli po przeczytaniu tego rozdziału b˛edziesz chciał uzyska´c wi˛ecej informacji na temat edytora Emacs, ˙ mozesz odwiedzi´c stron˛e Tutorial Introduction to GNU Emacs (http://www.lib.uchicago.edu/keith/ tcl-course/emacs-tutorial.html).

8.1.1. Kr´ otka prezentacja ˙ uruchomi´c korzystajac Emacs mozna ˛ z wiersza polecen: ´ emacs [file1] [file2...]

˙ ˙ we wierzszu polecen´ wprowadzoEmacs otworzy oddzielnie kazdy plik wprowadzony jako argument. Jezeli no wi˛ecej niz˙ jeden plik, okno zostanie automatycznie podzielone na dwie cz˛es´ ci, z której jedna b˛edzie za˙ uruchomisz Emacs bez wiera´c plik okre´slony jako ostatni argument, a druga list˛e dost˛epnych buforów. Jezeli okre´slania jakichkolwiek plików w wierszu polecen´ zostaniesz umieszczony w buforze o nazwie *scratch*. ˙ uruchomiłe´s edytor w X, jego menu b˛eda˛ dost˛epne za pomoca˛ myszy, natomiast jezeli ˙ pracujesz w tryJezeli ˙ bie tekstowym, mozesz z nich skorzysta´c za pomoca˛ klawisza F10. W tym rozdziale, skupimy si˛e na pracy tylko z klawiatura˛ i bez korzystania z menu.

8.1.2. Wprowadzenie ˙ pliki te Czas na troch˛e praktyki. Uruchom edytor z dwoma przykładowymi plikami, file1 oraz file2. Jezeli nie istnieja˛ w systemie, zostana˛ one utworzone jak tylko co´s do nich wpiszesz: $ emacs file1 file2

˙ Po wpisaniu tego polecenia wy´swietlone zostanie ponizsze okno:

1. „Edycja tekstów” oznacza zmian˛e zawarto´sci pliku zawierajacego ˛ tylko litery, cyfry oraz znaki interpunkcyjne. Niezawierajacego ˛ informacji na temat układu strony, czcionek, tabulatorów, itp. Takie plika˛ moga˛ by´c wiadomo´sciami e-mail, kodem z´ ródłowym, dokumentami lub nawet plikami konfiguracyjnymi.

57


Rozdział 8. Edycja tekstów: Emacs i VI

Rysunek 8-1. Równoczesna edycja dwóch plików ˙ trzeci u dołu ekranu (tam, gdzie widzisz (New Jak wida´c, utworzone zostały dwa bufory. Dost˛epny jest takze file)). Jest to mini-bufor. Nie masz do niego bezpo´srednio dost˛epu. Musisz by´c zaproszony przez program Emacs. Aby zmieni´c biez˙ acy ˛ bufor, wpisz Ctrl-X-O. Tekst wpisujesz dokładnie tak samo jak w „zwykłym” edytorze, usuwajac ˛ znaki za pomoca˛ klawiszy Del lub Backspace. ˙ Do poruszania si˛e mozesz wykorzysta´c klawisze strzałek, albo nast˛epujacych ˛ kombinacji klawiszy: Ctrl-A, aby przej´sc´ do poczatku ˛ wiersza, Ctrl-E, aby przej´sc´ na koniec wiersza, Alt-< lub Ctrl-Home, aby przej´sc´ na poczatek ˛ bufora oraz Alt-> lub Ctrl-End, aby przej´sc´ na koniec bufora. Istnieje wiele innych kombinacji, nawet kilka dla jednego klawisza strzałki 2. ˙ Kiedy juz˙ jeste´s gotowy, aby zapisa´c zmiany na dysk, wprowad´z Ctrl-X Ctrl-S, albo jezeli chcesz zapisa´c zawarto´sc´ bufora do innego pliku, wpisz Ctrl-X Ctrl-W. Emacs zapyta o nazw˛e pliku, do którego ma by´c ˙ zapisana zawarto´sc´ bufora. Mozesz do tego wykorzysta´c uzupełnianie, wciskaja˛ klawisz Tab, dokładnie tak jak w przypadku bash.

8.1.3. Obsluga bufor´ ow ˙ chcesz, mozesz ˙ Jezeli si˛e przełaczy´ ˛ c do wy´swietlania jednego bufora na ekranie. Sa˛ na to dwa sposoby: •

˙ znajdujesz si˛e w buforze, który chcesz ukry´c, wpisz Ctrl-X0. Jezeli

˙ znajdujesz si˛e w buforze, który chcesz zachowa´c na ekranie: wpisz Ctrl-X1. Jezeli

Sa˛ dwa sposoby na ponowne przywrócenie bufora na ekran: •

wci´snij Ctrl-XB i wpisz nazw˛e bufora, który chcesz przywróci´c, albo

˙ wci´snij Ctrl-X Ctrl-B. Otwarty zostanie nowy bufor o nazwie *Buffer List*. Mozesz porusza´c si˛e po ˛ bufor i wcisna´ ˛c klawisz Enter, lub tym buforze za pomoca˛ sekwencji Ctrl-XO, a nast˛epnie wybra´c z˙ adany jeszcze wpisa´c nazw˛e bufora w mini buforze. Kiedy dokonasz wyboru, bufor *Buffer List* powróci do buforu z tła.

Je´sli zakonczyłe´ ´ s prac˛e z plikiem i chcesz juz˙ si˛e pozby´c zwiazanego ˛ z nim bufora, wci´snij Ctrl-XK. Emacs poprosi o podanie nazwy bufora, który chcesz zamkna´ ˛c. Domy´slnie, b˛edzie to bufor w którym obecnie si˛e ˙ znajdujesz. Jezeli chcesz zamkna´ ˛c bufor inny niz˙ zasugerował program, wprowad´z jego nazw˛e bezpo´sred˙ nio lub wci´snij Tab: Emacs otworzy kolejny bufor o nazwie *Completions* zawierajacy ˛ list˛e mozliwych wyborów. Potwierd´z wybór klawiszem Enter. ˙ ˙ przywróci´c dwa widoczne bufory na ekran na raz. Aby to zrobi´c wci´snij Ctrl-X2. Domy´slnie, Mozesz takze ˙ ˙ nowo utworzony bufor b˛edzie kopia˛ biez˙ acego ˛ bufora (która umozliwia, na przykład, edycj˛e duzego pliku w kilku miejscach „w tym samym czasie”). Aby porusza´c si˛e pomi˛edzy buforami, wykorzystaj polecenia, które zostały omówione wcze´sniej. ˙ ˙ na takich, które nie posiadaja˛ na swojej 2. Emacs został zaprojektowany do pracy na róznego rodzaju komputerach, takze ˙ Vi. klawiaturze klawiszy strzałek. Ten fakt dotyczy takze

58


Rozdział 8. Edycja tekstów: Emacs i VI ˙ ˙ W kazdej chwili mozesz otworzy´c inne pliki, korzystajac ˛ z kombinacji Ctrl-X Ctrl-F. Emacs poprosi o podanie nazwy pliku, który chcesz otworzy´c.

8.1.4. Kopiuj, wytnij, wklej, szukaj ˙ znalazłe´s si˛e w nast˛epujacej Przypu´sc´ my, ze ˛ sytuacji: rysunek 8-2.

Rysunek 8-2. Emacs, przed skopiowaniem bloku tekstowego Najpierw musisz wybra´c tekst, który chcesz skopiowa´c. W tym przykładzie, chcemy skopiowa´c całe zdanie. ˙ kursor znajduje si˛e w Pierwszym krokiem jest umieszczenie znacznika na poczatku ˛ obszaru. Zakładajac, ˛ ze pozycji, która˛ przedstawia rysunek 8-2, sekwencja polecen´ b˛edzie nast˛epujaca: ˛ Ctrl-Spacja (Control + spacja). Emacs wy´swietli komunikat Mark set w mini-buforze. Nast˛epnie, przejd´z do kolejnego wiersza za pomoca˛ kombinacji Ctrl-A. Obszar zaznaczony do kopiowania lub wycinania, to całkowity obszar zlokalizowany pomi˛edzy znacznikiem, a biez˙ ac ˛ a˛ pozycja˛ kursora, wi˛ec w tym przypadku b˛edzie to cały wiersz tekstu. Do˙ kopiujesz, Emacs st˛epne sa˛ dwie sekwencje polecen: ´ Alt-W (do kopiowania) lub Ctrl-W (do wycinania). Jezeli szybko powróci do pozycji znacznika tak, aby´s mógł zobaczy´c zaznaczony obszar. Wreszcie, przejd´z do bufora, do którego chcesz wklei´c tekst i wci´snij kombinacj˛e klawiszy Ctrl-Y. Przyniesie to nast˛epujacy ˛ rezultat:

Rysunek 8-3. Kopiowanie tekstu za pomoca˛ programu emacs W rzeczywisto´sci, wła´snie skopiowałe´s tekst do schowka programu Emacs. Ten schowek zawiera wszystkie obszary skopiowane i wyci˛ete od momentu uruchomienia Emacs. Ka˙zdy obszar, wyci˛ety lub skopiowany,

59


Rozdział 8. Edycja tekstów: Emacs i VI ˙ umieszczany jest na szczycie schowka. Kombinacja klawiszy Ctrl-Y tylko „wkleja” obszar na szczyt. Jezeli chcesz uzyska´c dost˛ep do dowolnego z tych obszarów, wci´snij Ctrl-Y, a nast˛epnie Alt-Y az˙ otrzymasz z˙ adany ˛ tekst. Aby wyszuka´c tekst, przejd´z do wybranego buforu i wci´snij Ctrl-S. Emacs poprosi o podanie ciagu, ˛ który ma wyszuka´c. Aby kontynuowa´c wyszukiwanie tego samego ciagu ˛ w biez˙ acym ˛ buforze, ponownie wci´snij Ctrl˙ S. Kiedy program Emacs dojdzie do konca ´ bufora i nie odnajdzie juz˙ zadnych podanych w wyszukiwaniu ˙ ciagów, ˛ mozesz ponownie wcisna´ ˛c Ctrl-S, aby rozpocza´ ˛c szukanie od poczatku ˛ bufora jeszcze raz. Wci´sni˛ecie klawisza Enter konczy ´ wyszukiwanie. Aby wyszuka´c i zamieni´c ciag, ˛ wci´snij Alt-%. Emacs poprosi o podanie ciagu, ˛ który ma wyszuka´c i ciagu ˛ którym ma go zastapi´ ˛ c. Ponadto po znalezieniu podanego ciagu ˛ zostaniesz poproszony o potwierdzenie. ˙ Aby cofna´ ˛c, wci´snij Ctrl-XU lub Ctrl-Shift--, co spowoduje cofni˛ecie poprzedniej operacji. Mozesz cofna´ ˛c tyle operacji, ile tylko chcesz.

8.1.5. Zako´ nczenie pracy z emacs ˙ nie zapisałe´s zmian, Emacs Skrót klawiatury powodujacy ˛ opuszczenie programu Emacs to Ctrl-X Ctrl-C. Jezeli zapyta, czy chcesz zapisa´c zmiany swoich buforów, czy nie.

8.2. Vi: poprzednik Emacs ˙ ˙ zrobi´c prakVi był pierwszym pełnoekranowym edytorem. Za pomoca˛ kilku klawiszy, uzytkownik Vi moze ˙ wykonywa´c wiele czynno´sci dost˛epnych dla programów Emacs i kilku innych edytycznie wszystko, a takze torów.

Wersja dostarczona razem z Mandriva Linux to w rzeczywisto´sci Vim, co oznacza VI iMproved, ale my, w niniejszym rozdziale potraktujemy go jako Vi. ˙ ˙ Jezeli chciałby´s dowiedzie´c si˛e wi˛ecej na temat programu Vi, mozesz si˛e przyjrze´c stronie Hands-On Introduction to the Vi Editor (http://www.library.yale.edu/wsg/docs/vi_hands_on/) oraz Stronie domowej programu Vim (http://www.vim.org/).

8.2.1. Tryb wstawiania, tryb polece´ n, tryb ex... Rozpoczynajac ˛ korzystanie z Vi wykorzystujemy ten sam rodzaj wiersza polecen, ´ co przy programie Emacs. Wi˛ec powró´cmy do naszych dwóch plików i wpiszmy: $ vi file1 file2

Teraz, znajdziemy si˛e w nast˛epujacej ˛ pozycji:

60


Rozdział 8. Edycja tekstów: Emacs i VI

Rysunek 8-4. Pozycja poczatkowa ˛ w programie VIM ˙ Znajdujesz si˛e teraz w wierszu polecen´ majac ˛ przed soba˛ pierwszy otwarty plik. W tym trybie, nie mozesz wstawia´c tekstu do pliku. Aby to zrobi´c musisz si˛e przełaczy´ ˛ c do trybu wstawiania. Oto kilka skrótów słuz˙ acych ˛ do wstawiania tekstu:

Pamietaj, z˙ e skr´ oty klawiatury musza, by´c wpisywane dokladnie tak , jak to jest pokazane, Vi rozr´ oz˙ nia wielko´s´c liter, tak wiec , polecenia a nie oznacza tego samego co polecenie A.

a oraz i: aby wstawi´c tekst po i przed kursorem (A oraz I wstawia tekst na koncu ´ i na poczatku ˛ biez˙ acego ˛ wiersza);

˙ i powyzej ˙ biez˙ acego o oraz O: wstawia tekst ponizej ˛ wiersza.

W trybie wstawiania, zobaczysz ciag ˛ --INSERT--, który pojawi si˛e u dołu ekranu (wi˛ec b˛edziesz wiedział w jakim trybie si˛e znajdujesz). Jest to jedyny tryb, który pozwala na wstawianie tekstu. Aby powróci´c do trybu polecen´ wci´snij klawisz Esc. ˙ W trybie wstawiania, mozesz wykorzysta´c klawisze Backspace oraz Del aby usuna´ ˛c tekst. Klawisze strzałek pozwalaja˛ porusza´c si˛e po tek´scie w trybie polecen´ i w trybie wstawiania. W trybie polecen, ´ sa˛ jeszcze inne ˙ w dalszej cz˛es´ ci podr˛ecznika. kombinacje klawiszy, którym si˛e przyjrzymy blizej Dost˛ep do trybu ex uzyskuje si˛e wciskajac ˛ klawisz : w trybie polecen. ´ Znak : pojawi si˛e u dołu po lewej stronie ekranu z kursorem znajdujacym ˛ si˛e po tym znaku. Vi uzna za polecenie ex wszystko, co wpiszesz az˙ ˙ usuniesz polecenie oraz znak :, powrócisz do trybu polecen, ´ a do momentu naci´sni˛ecia klawisza Enter. Jezeli kursor znajdzie si˛e w swojej pierwotnej pozycji.

Uzupelnianie polece´ n dostepne jest w trybie ex, wpisz pierwsze , litery polecenia, a nastepnie naci´ s nij klawisz Tab, aby je uzupelni´c. ,

˙ chcesz zapisa´c zawarto´sc´ bufora do innego Aby zapisa´c zmiany do pliku, wpisz :w w trybie polecen. ´ Jezeli pliku, wpisz :w <nazwa_pliku>.

8.2.2. Obsluga bufor´ ow Aby si˛e przemieszcza´c pomi˛edzy plikami, w ramach tego samego bufora, których nazwy zostały przekazane do wiersza polecen, ´ wpisz :next, aby przej´sc´ do nast˛epnego pliku, albo :prev, aby przej´sc´ do pliku po˙ ˙ wykorzysta´c :e <nazwa_pliku>, co pozwoli albo przej´sc´ do okre´slonego pliku, przedniego. Mozesz takze ˙ jest juz˙ otwarty, lub otworzenie innego pliku. Tutaj mozesz ˙ ˙ wykorzysta´c uzupełnianie. jezeli takze ˙ Podobnie jak w przypadku Emacs, mozesz posiada´c kilka buforów wy´swietlonych na ekranie. Aby to zrobi´c, zastosuj polecenie :split.

61


Rozdział 8. Edycja tekstów: Emacs i VI ˙ lub Ctrl-wk, aby przej´sc´ do buforu powyAby zmieni´c bufory, wci´snij Ctrl-wj, aby przej´sc´ do buforu ponizej ˙ Mozesz ˙ ˙ skorzysta´c ze strzałek w gór˛e i w dół zamiast j czy k. Polecenie :close ukrywa bufor, a zej. takze polecenie :q zamyka go. ˙ jezeli ˙ spróbujesz zamkna´ Pami˛etaj, ze ˛c lub ukry´c bufor bez zapisywania zmian, polecenie nie zostanie wykonane, a Vi wy´swietli nast˛epujacy ˛ komunikat: No write since last change (wpisz ! aby pomina´ ˛c) W tym przypadku, zrób tak jak to zostało powiedziane i wpisz :q! lub :close!.

8.2.3. Polecenia przenoszenia i edycji tekstu Poza klawiszami Backspace oraz Del w trybie edycji, Vi posiada wiele innych polecen´ słuz˙ acych ˛ usuwaniu, ˙ kopiowaniu, wklejaniu i zamianie tekstu w trybie polecen. ´ Wszystkie polecenia tutaj przedstawiane mozna ˙ by´c: podzieli´c na dwie cz˛es´ ci: działania, które maja˛ by´c wykonane oraz ich efekty. Działaniem moze •

c: zamiana (Change). Edytor usuwa z˙ adany ˛ tekst i przechodzi do trybu wprowadzania po wykonaniu polecenia.

d: usuni˛ecie (Delete);

y: kopiowanie („Yank”). Temu poleceniu przyjrzymy si˛e dokładniej w nast˛epnym dziale.

.: ponawia ostatnie działanie.

Rezultat okre´sla, na której grupie znaków działa polecenie. •

˙ wyzej, ˙ po prawej stronie3. h, j, k, l: jeden znak po lewej stronie, nizej,

e, b, w: do konca, ´ poczatku ˛ biez˙ acego ˛ słowa oraz do poczatku ˛ nast˛epnego słowa.

^, 0, $: do pierwszego niepustego znaku w biez˙ acym ˛ wierszu, poczatku ˛ biez˙ acego ˛ wiersza i konca ´ biez˙ acego ˛ wiersza.

f<x>: przechodzi do nast˛epnego wystapienia ˛ znaku <x>. Na przykład, fe przenosi kursor do nast˛epnego wystapienia ˛ znaku e.

/<ciag>, ˛ ?<ciag>: ˛ do nast˛epnego i poprzedniego wystapienia ˛ ciagu ˛ lub regexp <ciag>. ˛ Na przykład, /foobar przenosi kursor do nast˛epnego wystapienia ˛ słowa foobar.

{, }: do poczatku, ˛ konca ´ biez˙ acego ˛ paragrafu;

G, H: na koniec pliku, na poczatek ˛ ekranu.

˙ ˙ by´c poprzedzony liczba˛ repetycji. Kazdy z tych „aktywnych” znaków lub polecen´ przenoszenia kursora moze ˙ tworzy´c W przypadku G, („Go”) oznacza to numer wiersza w pliku. Na podstawie tych informacji, mozesz wszelkiego rodzaju kombinacje. Oto kilka przykładów: •

6b: przenosi 6 słów wstecz;

c8fk: usuwa cały tekst az˙ do ósmego wystapienia ˛ znaku k, nast˛epnie przechodzi do trybu wstawiania;

91G: przechodzi do 91 wiersza w pliku;

d3$: usuwa wszystko do konca ´ biez˙ acego ˛ wiersza oraz kolejne dwa wiersze.

Poniewaz˙ wi˛ekszo´sc´ z tych polecen´ nie jest łatwa do zapami˛etania, najlepszym ze sposobów nauki jest ich stosowanie. 3.

62

Skrótem od dl (usun´ nast˛epny znak) jest x; skrótem od dh (usun´ poprzedni znak) jest X; dd usuwa biez˙ acy ˛ wiersz.


Rozdział 8. Edycja tekstów: Emacs i VI

8.2.4. Wytnij, kopiuj, wklej ˙ Vi zawiera polecenie, które juz˙ widzieli´smy przy kopiowaniu tekstu: polecenie y. Aby wycia´ ˛c tekst, nalezy ˙ wykorzysta´c polecenie d. Jest 27 pami˛eci lub buforów słuzacych ˛ przechowywaniu tekstu: pami˛ec´ anonimowa i 26 pami˛eci nazwanych 26 małymi literami angielskiego alfabetu. Aby skorzysta´c z pami˛eci anonimowej wprowad´z polecenie „as is”. Tak wi˛ec polecenie y12w skopiuje 12 słów ˙ chcesz wycia´ po kursorze do pami˛eci anonimowej4. Skorzystaj z polecenia d12w jezeli ˛c ten obszar. Aby wykorzysta´c jedna˛ z 26 nazwanych pami˛eci, wprowad´z sekwencj˛e "<x> przed wprowadzeniem polece˙ wpisa´c nia, gdzie <x> jest nazwa˛ pami˛eci. Dlatego, aby skopiowa´c tych samych 12 słów do pami˛eci k, nalezy "ky12w, albo "kd12w aby je wycia´ ˛c. ˙ zastosowa´c polecenie p lub P (co oznacza Paste), aby wstaAby wklei´c zawarto´sc´ anonimowej pami˛eci, nalezy ˙ zastosowa´c "<x>p lub wi´c tekst po, albo przed kursorem. Aby wklei´c zawarto´sc´ pami˛eci nazwanej nalezy "<x>P w taki sam sposób (na przykład "dp wklei zawarto´sc´ pami˛eci o nazwie d za pozycja˛ kursora). ˙ Przyjzyjmy si˛e przykładowi:

Rysunek 8-5. VIM przed skopiowaniem bloku tekstu Aby przeprowadzi´c to działanie post˛epujemy nast˛epujaco: ˛ •

skopiuj ponownie pierwszych 6 słów w zdaniu do pami˛eci r (na przykład): "ry6w5;

˙ Ctrl-wj; przejd´z do bufora file2, który jest zlokalizowany ponizej:

wklej zawarto´sc´ pami˛eci r przed pozycj˛e kursora: "rp.

Otrzymujemy oczekiwany rezultat, co przedstawia rysunek 8-6.

4. 5.

Ale tylko, gdy kursor jest umieszczony na poczatku ˛ pierwszego słowa! y6w dosłownie oznacza: „Yank 6 words”.

63


Rozdział 8. Edycja tekstów: Emacs i VI

Rysunek 8-6. VIM, po skopiowaniu bloku tekstu Wyszukiwanie tekstu jest bardzo proste: w trybie polecen, ´ wpisz /, a nast˛epnie szukany ciag ˛ i wci´snij klawisz Enter. Na przykład, /party b˛edzie szukał ciagu ˛ party od biez˙ acej ˛ pozycji kursora. Wci´sni˛ecie klawisza n przeniesie Ci˛e do nast˛epnego wystapienia ˛ słowa, a gdy wyszukiwanie dojdzie do konca ´ pliku, wyszukiwanie rozpocznie si˛e od poczatku. ˛ Aby szuka´c wstecz, wykorzystaj znak ? zamiast /.

8.2.5. Wyj´scie z Vi Polecenie do zakonczenia ´ pracy to :q (w rzeczywisto´sci, polecenie to zamyka aktywny bufor, jak juz˙ wcze´sniej ˙ ˙ skrót: w wi˛ekszo´sci przypadków widzieli´smy, ale jezeli jest to jedyny otwarty bufor, zamknie Vi). Istnieje takze ˙ b˛edziesz edytował tylko jeden plik, wi˛ec aby zakonczy´ ´ c prac˛e uzyj: •

:wq lub :x, aby zapisa´c zmiany i wyj´sc´ (szybszym rozwiazaniem ˛ jest ZZ), lub

:q!, aby wyj´sc´ bez zapisywania zmian.

˙ jezeli ˙ posiadasz kilka buforów, to polecenie :wq zapisze i zamknie tylko aktywny bufor. Pami˛etaj, ze

8.3. Slowo ko´ ncowe... Oczywi´scie powiedzieli´smy zdecydowanie wi˛ecej niz˙ to konieczne (poza tym, głównym celem była edycja ˙ ˙ ˙ pliku tekstowego), ale na szcz˛es´ cie byli´smy w stanie pokaza´c Ci kilka mozliwo´ sci kazdego z edytorów. Mozna o nich powiedzie´c zdecydowanie wi˛ecej, o czym s´ wiadczy liczba publikacji jaka została po´swi˛econa tym edytorom. ˙ Po´swi˛ec´ troch˛e czasu na zaznajomienie si˛e z tym materiałem, albo naucz si˛e tylko tyle, ile uwazasz za konieczne.

64


Rozdzial 9. Narzedzia wiersza polece´ n , Celem niniejszego rozdziału jest przedstawienie wielu narz˛edzi wiersza polecen, ´ które moga˛ si˛e przyda´c przy codziennej pracy z systemem. Jedna˛ z mocnych stron systemu GNU/Linux jest wykorzystanie prostych narz˛edzi do wykonywania skomplikowanych zadan. ´ Pokazali´smy juz˙ jak łaczy´ ˛ c ze soba˛ polecenia i jak oczyszcza´c wynik, aby był on bardziej ˙ ace ˛ konczytelny (zobacz Przekierowania i potoki, strona 51). W tym dziale przedstawimy narz˛edzia umozliwiaj trol˛e i zwi˛ekszajace ˛ produktywno´sc´ systemu. ˙ ˙ Niniejszy rozdział przedstawia funkcje i zastosowanie kazdego z polecen. ´ Dodatkowo kazde polecenie b˛e˙ ˙ dzie zilustrowane przykładem. Zawsze mozesz si˛e zatrzyma´c i sprawdzi´c strony podr˛ecznika dla kazdego z ˙ ˙ polecen. ´ Pod koniec kazdego działu znajduje si˛e cz˛es´ c´ „ZOBACZ TAKZE”, która zawiera odno´sniki do odpowiednich polecen! ´

9.1. Dzialania na plikach i filtrowanie ˙ Wi˛ekszo´sc´ pracy w wierszu polecen´ dotyczy plików. W tym dziale pokazemy jak przeglada´ ˛ c i filtrowa´c zawarto´sc´ plików, jak odczyta´c odpowiednie informacje z plików za pomoca˛ jednego polecenia i jak w łatwy sposób sortowa´c zawarto´sc´ plików.

9.1.1. cat, tail, head, tee: Polecenia wy´swietlania zawarto´sci plik´ ow Te polecenia posiadaja˛ prawie taka˛ sama˛ składni˛e: nazwa_polecenia [opcja(e)] [plik(i)], i moga˛ ˙ ˙ sci od podanych do wy´swietlenia cz˛es´ ci pliku w zalezno´ by´c stosowane w potokach. Wszystkie sa˛ uzywane kryteriów. ˙ Narz˛edzie cat zwykle wy´swietla wyniki w standardowym wyj´sciu, którym przewaznie jest ekran Twojego ˙ komputera. Jest to jedno z najcz˛es´ ciej stosowanych polecen. ´ Na przykład mozesz wprowadzi´c: # cat /var/log/mail/info

aby wysła´c zawarto´sc´ pliku dziennika demona pocztowego do standardowego wyj´scia1. Polecenie cat za˙ ˙ numery wierszy. wiera bardzo uzyteczn a˛ opcj˛e (-n), która pozwala wy´swietla´c takze ˙ sa˛ uruchomione) maja˛ zwykle olbrzymie rozmiary2 Niektóre pliki, takie jak pliki dzienników demonów (jezeli ˙ i wy´swietlenie ich w cało´sci na ekranie nie jest zbyt uzyteczne. Ogólnie rzecz biorac, ˛ potrzebujesz wy´swietli´c ˙ tylko niektóre wiersze z pliku. Aby to zrobi´c, mozesz wykorzysta´c polecenie tail, które domy´slnie wy´swietli 10 ostatnich wierszy pliku /var/log/mail/info: # tail /var/log/mail/info

Pliki, takie jak dzienniki zmieniaja˛ si˛e bardzo dynamicznie, gdyz˙ demony z nimi zwiazane ˛ stale uzupełniaja˛ ˙ ich zawarto´sc´ działaniami, które prowadza.˛ Aby móc przeglada´ ˛ c te zmiany interaktywnie, mozesz wykorzysta´c opcj˛e -f: # tail -f /var/log/mail/info

W tym przypadku, wszystkie zmiany w pliku /var/log/mail/info zostana˛ wy´swietlone natychmiast na ˙ chcesz si˛e dowiedzie´c jak działa ekranie. Korzystanie z polecenia tail z opcja˛ -f jest bardzo pomocne, jezeli ˙ system. Na przykład, przegladaj ˛ ac ˛ plik dziennika /var/log/messages, mozesz sprawdza´c na biez˙ aco ˛ komu˙ nikaty systemu i róznorodne demony. ˙ korzystasz z tail równocze´snie na wielu plikach, to przed wy´swietleniem zawarto´sci pliku, program Jezeli ˙ jego nazw˛e. Tutaj, mozesz ˙ pokaze równiez˙ wykorzysta´c opcj˛e -f, aby zobaczy´c jak współpracuja˛ ze soba˛ poszczególne cz˛es´ ci systemu. ˙ Opcj˛e -n mozesz wykorzysta´c, aby wy´swietli´c ostatnich n wierszy pliku. Na przykład, aby wy´swietli´c 2 wiersze, wprowad´z: 1. Niektóre przykłady przedstawione w tym dziale opieraja˛ si˛e na rzeczywistej pracy i plikach dzienników serwera ˙ uruchomiony jest syslogd (który umozliwia ˙ (usług, demonów, itp.). Upewnij si˛e, ze logowanie demona), i odpowiedni ˙ ze ˙ pracujesz jako uzytkownik ˙ demon (w naszym przypadku Postfix), a takze, administrator. Oczywi´scie, nasze przy˙ ˙ stosowa´c do innych plików. kłady mozesz takze 2. Na przykład, plik /var/log/mail/info zawiera informacje na temat wysłanej poczty, wiadomo´sci dotyczace ˛ pobranej ˙ poczty przez uzytkowników korzystajacych ˛ z protokołu POP, itp.

65


Rozdział 9. Narz˛edzia wiersza polecen´ # tail -n2 /var/log/mail/info

˙ ˙ Tak jak w przypadku innych polecen, ´ mozesz korzysta´c w róznych opcji w tym samym czasie. Na przykład, korzystajac ˛ z -n2 oraz -f w tym samym czasie, uruchomisz dwa ostanie wiersze pliku i b˛edziesz widział nowe wiersze w chwili, gdy b˛eda˛ one dopisywane. Polecenie head jest podobne do tail, ale wy´swietla pierwsze wiersze pliku. Nast˛epujaca ˛ składnia, spowoduje wy´swietlenie, domy´slnie, pierwszych dziesi˛eciu wierszy pliku /var/log/mail/info: # head /var/log/mail/info

˙ Podobnie jak w przypadku tail, mozesz korzysta´c z opcji -n do okre´slenia ilo´sci wierszy, jakie maja˛ by´c wy´swietlone. Na przykład, aby wy´swietli´c dwa pierwsze wiersze, wprowad´z: # head -n2 /var/log/mail/info

˙ ˙ uzywa´ ˙ ˙ chcesz wy´swietli´c wiersze 9 i 10, mozesz ˙ Tych polecen´ mozesz takze c jednocze´snie. Na przykład, jezeli wykorzysta´c polecenie, w którym polecenie head wybierze 10 wierszy z pliku prze´sle je do polecenia tail. # head /var/log/mail/info | tail -n2

˙ Ostatnia cz˛es´ c´ wybierze 2 ostatnie wiersze i wy´swietli je na ekranie. W ten sam sposób mozesz wybra´c wiersz 20 rozpoczynajac ˛ od konca ´ pliku: # tail -n20 /var/log/mail/info |head -n1

˙ je poleceniu head. Nast˛epnie, poleW tym przykładzie tail wybierze ostatnich 20 wierszy pliku i przekaze cenie head wy´swietli na ekranie pierwszy wiersz z otrzymanych danych. ˙ chcemy wy´swietli´c wynik ostatniego przykładu na ekranie i zapisa´c go do pliku results. Przypu´sc´ my, ze ˙ nam w tym pomóc. Jego składnia jest nast˛epujaca: txt . Narz˛edzie tee moze ˛ tee [opcja(e)] [plik]

˙ Teraz mozemy zmieni´c poprzednie polecenie w nast˛epujacy ˛ sposób: # tail -n20 /var/log/mail/info |head -n1|tee results.txt

We´zmy inny przykład. Chcemy wybra´c ostatnich 20 wierszy, zapisa´c je do results.txt, ale na ekranie wy˙ wpisa´c: s´ wietli´c tylko pierwsze 20 wierszy. Aby to zrobi´c, nalezy # tail -n20 /var/log/mail/info |tee results.txt |head -n1

˙ ˙ Polecenie tee ma uzyteczn a˛ opcj˛e (-a), która umozliwia dodanie danych do istniejacego ˛ pliku. ˙ W kolejnym rozdziale pokazemy jak korzysta´c z polecenia grep jako z filtra oddzielajacego ˛ komunikaty Postfix ˙ usługi. od innych komunikatów wysyłanych przez rózne

9.1.2. grep: Lokalizowanie ciag´ ow w plikach , Ani nazwa, ani akronim („General Regular Expression Parser”) nie sa˛ zbyt intuicyjne, ale działanie polecenia jest bardzo proste: grep wyszukuje wzorzec okre´slony w argumencie w jednym lub wi˛ecej plikach. Jego składnia jest nast˛epujaca: ˛ grep [opcje] <wzorzec> [jeden lub wi˛ ecej plików]

˙ ˙ ˙ Jezeli wymieniono kilka plików, ich nazwy b˛eda˛ poprzedza´c kazdy wy´swietlony wiersz rezultatu. Mozesz zastosowa´c opcj˛e -h, aby nazwy te nie były wy´swietlane, albo skorzysta´c z opcji -l, aby wy´swietli´c tylko ˙ ˙ pasujace ˛ nazwy plików. Wzorzec jest wyrazeniem regularnym, który przewaznie składa si˛e z prostego słowa. Najcz˛es´ ciej stosowane sa˛ nast˛epujace ˛ opcje : •

˙ i małe litery; -i: wyszukiwanie nie zwraca uwagi na duze

-v: odwraca wyszukiwanie; wy´swietla wiersze, które nie pasuja˛ do wzorca;

˙ -n: wy´swietla numer kazdego znalezionego wiersza;

66


Rozdział 9. Narz˛edzia wiersza polecen´ •

˙ wzorzec powinien pasowa´c do całego słowa. -w: mówi poleceniu grep, ze

Powró´cmy do analizy pliku dziennika demona pocztowego. Chcemy odnale´zc´ wszystkie wiersze w pliku /var/log/mail/info, które zawieraja˛ wzorzec postfix. Wpisujemy nast˛epujace ˛ polecenie: # grep postfix /var/log/mail/info

˙ Jezeli chcemy znale´zc´ wszystkie wiersze, które NIE zawieraja˛ wzorca postfix, powinni´smy skorzysta´c z opcji -v: # grep -v postfix /var/log/mail/info

˙ by´c wykorzystywane w potoku. Polecenie grep moze ˙ chcemy odnale´zc´ wszystkie komunikaty o udanym wysłaniu poczty. Aby to osiagn Przypu´sc´ my, ze ˛ a´ ˛c, musimy wyszuka´c wszystkie wiersze dodane do pliku dziennika przez demona pocztowego (zawierajace ˛ wzorzec postfix), które musza˛ zawiera´c komunikat o udanej wysyłce (status=sent)3: # grep postfix /var/log/mail/info |grep status=sent

˙ ˙ W tym przypadku, grep jest uzywane dwukrotnie. Ten sam efekt mozna uzyska´c wykorzystujac ˛ narz˛edzie fgrep. fgrep jest wła´sciwie prostsza˛ metoda˛ wywołania grep -F. Po pierwsze musimy utworzy´c plik za˙ ˙ by´c utworzony w nast˛epujacy wierajacy ˛ wzorce wypisane po jednym we kazdym wierszu. Taki plik moze ˛ sposób (korzystamy z pliku o nazwie patterns.txt): # echo -e ’status=sent\npostfix’ >./patterns.txt

Sprawd´z wyniki za pomoca˛ polecenia cat. \n jest wzorcem specjalnym, który oznacza „nowy wiersz”. Nast˛epnie wywołujemy kolejne polecenie, w którym wykorzystujemy plik patterns.txt oraz narz˛edzie fgrep zamiast „dwukrotnego wywołania” polecenia grep: # fgrep -f ./patterns.txt /var/log/mail/info

˙ zawiera´c tyle wzorców, ile chcesz. Na przykład, aby wyszuka´c komunikaty dotyPlik ./patterns.txt moze czace ˛ udanego wysłania poczty na adres piotr@mandriva.com, wystarczy doda´c adres e-mail do naszego pliku ./patterns.txt uruchamiajac ˛ nast˛epujace ˛ polecenie: # echo ’piotr@mandriva.com’ >>./patterns.txt

˙ ˙ Oczywi´scie, mozesz połaczy´ ˛ c grep z tail i head. Jezeli chcemy odnale´zc´ komunikat o drugiej od konca ´ ˙ wpisa´c: wiadomo´sci wysłanej pod adres piotr@mandriva.com, nalezy # fgrep -f ./patterns.txt /var/log/mail/info | tail -n2 | head -n1

˙ filtr i umie´scimy jego wynik w potoku dla polecen´ tail oraz head. Teraz zastosujemy opisany wyzej

9.1.3. Wyra˙zenia regularne i filtrowanie egrep W przypadku grep korzystamy z wzorców i stałych danych. Jak znale´zc´ wszystkie wiadomo´sci wysłane do ˙ pracownika „Firmy ABC”? Wy´swietlenie wszystkich wiadomo´sci nie b˛edzie łatwym zadaniem pokazdego ˙ niewaz˙ mozemy kogo´s pomina´ ˛c, albo musimy przeszuka´c plik dziennika r˛ecznie. ˙ n´ regularnych Podobnie jak fgrep, grep posiada skrót do polecenia grep -E: egrep. Korzysta on z wyraze zamiast z wzorców, dostarczajac ˛ lepiej rozwini˛ety interfejs „grep”. Poza tym co omówili´smy w dziale Korzystanie ze znaków wieloznacznych, strona 50 podczas przedstawiania ˙ n´ regularnych: wzorców globalnych, podamy kilka dodatkowych wyraze •

[:alnum:] (wszystkie litery oraz wszystkie cyfry), [:alpha:] (wszystkie małe i wielkie litery) oraz [:digit:] (wszystkie cyfry) moga˛ by´c wykorzystywane zamiast osobistego definiowania zakresu znaków. Ponadto posiadaja˛ jeszcze jedna˛ zalet˛e: zawieraja˛ znaki narodowe i biora˛ pod uwag˛e lokalizacj˛e systemu.

˙ ˙ takze ˙ tego dokona´c za pomoca˛ nowego polece3. Jakkolwiek, filtrowanie jest mozliwe dzi˛eki wzorcowi statusu, mozna ˙ nia, które pokazuje ponizszy przykład.

67


Rozdział 9. Narz˛edzia wiersza polecen´ •

[:print:] reprezentuje wszystkie znaki, które moga˛ by´c wy´swietlone na ekranie.

[:lower:] oraz [:upper:] reprezentuja˛ odpowiednio wszystkie małe i wielkie litery.

˙ ˙ Jest wiele innych zakresów, które mozesz zobaczy´c w egrep(1). Powyzsze zakresy sa˛ stosowane najcz˛es´ ciej. ˙ ˙ wyst˛epowa´c jeden z kilku operatorów repetycji: Po wyrazeniu regularnym moze ? Wyst˛epujaca ˛ wcze´sniej pozycja jest opcjonalna, to znaczy: nie wyst˛epuje ani razu lub jeden raz (nie wi˛ecej niz˙ raz) * Wyst˛epujaca ˛ wcze´sniej pozycja b˛edzie wyst˛epowa´c zero lub wiele razy. + Wyst˛epujaca ˛ wcze´sniej pozycja b˛edzie wyst˛epowa´c jeden lub wiele razy. {n} Wyst˛epujaca ˛ wcze´sniej pozycja wyst˛epuje dokładnie n razy. {n,} Wyst˛epujaca ˛ wcze´sniej pozycja wyst˛epuje n lub wi˛ecej razy. {n,m} Wyst˛epujaca ˛ wcze´sniej pozycja wyst˛epuje co najmniej n razy, ale nie wi˛ecej niz˙ m razy. ˙ umie´scisz wyrazenie ˙ ˙ ˙ okreJezeli regularne wewnatrz ˛ nawiasów, mozesz je pó´zniej odzyska´c. Przypu´sc´ my, ze ˙ ˙ ˙ s´ liłe´s wyrazenie [:alpha:]+. Moze ono reprezentowa´c słowo. Jezeli chcesz wyszuka´c słowa, które pojawiaja˛ ˙ ˙ jest to pierwsza grupa. Mozesz ˙ si˛e dwukrotnie, mozesz je wprowadzi´c do nawiasów i wykorzysta´c \1 jezeli posiada´c do 9 takich „pami˛eci”. $ echo -e "abc def\nabc abc def\nabc1 abc1\nabcdef\nabcdabcd\nabcdef abcef" > testfile $ egrep "([[:alpha:]]+) \1" testfile abc abc def $

Znaki [ oraz ] sa, cze´ c, aby , scia, nazwy grupy, wiec , musimy je dolaczy´ , wykorzysta´c ten zakres znak´ ow. Pierwszy znak [ m´ owi, z˙ e bedziemy , korzysta´c z grupy znak´ ow, natomiast drugi jest cze´ , scia, nazwy grupy, nastepnie pojawiaja, sie, odpowiednie znaki zamykajace ]. , ,

˙ Wy´swietlone zostana˛ tylko wiersze całkowicie pasujace ˛ do dwóch grup liter oddzielonych spacja˛ i zadna inna ˙ regularnego. grupa pasujaca ˛ do wyrazenia ˙ ˙ wykorzysta´c znak |, aby znale´zc´ wyrazenie ˙ Mozesz takze znajdujace ˛ si˛e po lewej stronie znaku | lub po jego ˙ ˙ pliprawej stronie. Jest to operator łacz ˛ acy ˛ te wyrazenia. Korzystajac ˛ z tego samego, utworzonego powyzej ˙ ˙ ku testfile, mozesz spróbowa´c wyszuka´c wyrazenia, które zawieraja˛ tylko podwójne słowa lub podwójne słowa z liczbami: $ egrep "([[:alpha:]]+) \1|([[:alpha:][:digit:]]+) \2" testfile abc abc def abc1 abc1 $

˙ dla drugiej grupy korzystajacej ˙ c \2, w innym przypadku nie Zwró´c uwag˛e, ze ˛ z nawiasów, musieli´smy uzy´ ˙ spełniła by naszych oczekiwan. ´ Lepszym wyrazeniem w tym przypadku byłoby: $ egrep "([[:alnum:]]+) \1" testfile abc abc def abc1 abc1 $

68


Rozdział 9. Narz˛edzia wiersza polecen´ Aby odnale´zc´ okre´slone znaki musisz je „wyłaczy´ ˛ c”, poprzedzajac ˛ uko´snikiem. Te znaki to: ?, +, {, |, (, ) i oczywi´scie \. Aby je wyszuka´c musisz wpisa´c: \?, \+, \{, \|, \(, \) oraz \\. ˙ Ci i nie b˛edziesz musiał wpisywa´c powtarzajacych Ta prosta technika pomoze ˛ si˛e słów w „swoim swoim” tek´scie. ˙ Wyrazenia regularne powinny spełnia´c nast˛epujac ˛ zasady (albo te do nich podobne). Po´swi˛ecenie czasu na ˙ Ci w korzystaniu z innych narz˛edzi, takich jak sed. sed pozwala zrozumienie tych reguł znacznie pomoze ˙ na manipulowanie tekstem, zmian˛e go regularnymi wyrazeniami takimi jak reguły.

9.1.4. wc: Zliczanie element´ ow w plikach Polecenie wc (Word Count) jest wykorzystywane do zliczania liczby wierszy, słów i znaków w plikach. Za jego ˙ takze ˙ zliczy´c długo´sc´ najdłuzszego ˙ pomoca˛ mozna wiersza. Składnia polecenia jest nast˛epujaca: ˛ wc [opcja(e)] [plik(i)]

˙ wykorzysta´c nast˛epujace Mozna ˛ opcje: •

-l: zwraca liczb˛e wierszy;

-w: zwraca liczb˛e słów;

-m: zwraca liczb˛e znaków;

-c: zwraca liczb˛e bajtów;

˙ wiersza w tek´scie. -L: zwraca długo´sc´ najdłuzszego

Polecenie wc wy´swietla liczb˛e wierszy, słów i znaków domy´slnie. Oto kilka przykładów jego zastosowania: ˙ chcemy sprawdzi´c liczb˛e uzytkowników ˙ ˙ Jezeli w systemie, mozemy wpisa´c: $ wc -l /etc/passwd

˙ chcemy sprawdzi´c liczb˛e CPU w systemie, wystarczy wpisa´c: Jezeli $ grep "model name" /proc/cpuinfo |wc -l

W poprzednim dziale uzyskali´cmy list˛e komunikatów informujacych ˛ o udanym wysłaniu wiadomo´sci na ˙ chcemy si˛e dowiedzie´c ile jest komunikatów, to mozemy ˙ adresy zamieszczone w pliku ./patterns.txt. Jezeli przekierowa´c wyniki naszego filtra w potoku do polecenia wc: # fgrep -f ./patterns.txt /var/log/mail/info | wc -l

9.1.5. sort: Sortowanie zawarto´sci pliku Oto składnia tego doskonałego narz˛edzia sortowania4: sort [opcja(e)] [plik(i)]

˙ Rozwazmy sortowanie cz˛es´ ci pliku /etc/passwd. Jak wida´c, plik ten nie jest posortowany: $ cat /etc/passwd

˙ chcemy go posortowa´c wzgl˛edem pola login. To nalezy ˙ wpisa´c: Jezeli $ sort /etc/passwd

Polecenie sort sortuje dane w kolejno´sci rosnacej ˛ rozpoczynajac ˛ domy´slnie od pierwszego pola (w naszym przypadku, pola login). Aby sortowa´c dane w kolejno´sci malejacej, ˛ skorzystaj z opcji -r: $ sort -r /etc/passwd

4.

˙ by napisa´c cała˛ ksia˛zk˛ ˙ e. Omówimy tylko polecenie sort. O jego funkcjach mozna

69


Rozdział 9. Narz˛edzia wiersza polecen´ ˙ ˙ Kazdy uzytkownik posiada własne UID zapisane w pliku /etc/passwd. Nast˛epujace ˛ polecenie sortuje plik w ˙ sci od pola UID: kolejno´sci rosnacej ˛ w zalezno´ $ sort /etc/passwd -t":" -k3 -n

Tutaj wykorzystamy nast˛epujace ˛ opcje polecenia sort: •

˙ rozdzielnikiem pola jest symbol":"; -t":": mówi poleceniu sort, ze

˙ sortowanie musi by´c wykonane na trzeciej kolumnie; -k3: mówi, ze

˙ sortowanie ma by´c wykonane tylko na danych numerycznych, nie alfabetycznych. -n: mówi, ze

˙ zrobi´c na odwrót: To samo mozna $ sort /etc/passwd -t":" -k3 -n -r

˙ sort ma takze ˙ dwie inne istotne opcje: Pami˛etaj, ze •

-u: prowadzi sortowanie ignorujac ˛ powtarzajace ˛ si˛e pola;

-f: ignoruje wielko´sc´ znaków (traktuje małe litery tak samo jak wielkie).

˙ chcemy znale´zc´ uzytkownika ˙ ˙ Wreszcie, jezeli z najwyzszym UID, musimy wprowadzi´c nast˛epujace ˛ polecenie: $ sort /etc/passwd -t":" -k3 -n |tail -n1

gdzie sortujemy plik /etc/passwd w kolejno´sci rosnacej ˛ zgodnie z kolumna˛ UID, i przekierowujemy wynik przez potok do polecenia tail. Ono wy´swietli pierwsza˛ warto´sc´ posortowanej listy.

9.2. find: Wyszukiwanie plik´ ow w zale˙zno´sci od podanych kryteri´ ow

find jest tradycyjnym narz˛edziem systemów UNIX®. Jego zadaniem jest rekurencyjne przeszukanie jednego lub wielu katalog w celu znalezienia w tych katalogach plików spełniajacych ˛ okre´slone kryteria. Wspomnia˙ ne narz˛edzie jest bardzo uzyteczne, jednak jego składnia jest do´sc´ skomplikowana i dlatego potrzebna jest niewielka praktyka. Oto typowa składania: find [opcje] [katalogi] [kryterium1] ... [kryteriumN] [działanie]

˙ nie okre´slisz katalogu, polecenie find przeszuka katalog biez˙ acy. Jezeli ˛ Je´sli nie okre´slisz kryteriów, to wszyst˙ omówimy ich tylko kilka. Oto one: kie pliki zostana˛ odnalezione. Opcji, kryteriów i działan´ jest tak wiele, ze •

-xdev: nie przeszukuje katalogów zlokalizowanych na innych systemach plików.

-mindepth <n>: przeszukuje co najmniej n poziomów w głab ˛ okre´slonego katalogu.

˙ n poziomów w głab -maxdepth <n>: przeszukuje co najwyzej ˛ okre´slonego katalogu.

˙ prowadza˛ do katalogów. Domy´slnie, find nie s´ ledzi dowiaza -follow: s´ ledzi dowiazania ˛ jezeli ˛ n. ´

˙ bierze pod uwag˛e poczatek ˛ dnia jako punkt -daystart: przy korzystaniu z testów czasu (zobacz nizej), czasowy zamiast stosowa´c warto´sc´ domy´slna˛ (24 godziny przed obecnym czasem).

Kryteria moga˛ by´c jednym z wielu testów. Oto kilka z nich: •

˙ by´c jeden z nast˛epujacych: -type <typ_pliku>: wyszukuje okre´slony rodzaju pliku. typ_pliku moze ˛ f (zwykły plik), d (katalog), l (dowiazanie), ˛ s (gniazdo), b (plik trybu blokowego), c (plik trybu znakowego) lub p (potok).

-name <wzorzec>: wyszukuje plików, których nazwa pasuje do okre´slonego wzorca. Z ta˛ opcja˛ wzorzec jest traktowany jako wzorzec shell globbing (zobacz Korzystanie ze znaków wieloznacznych, strona 50).

-iname <wzorzec>: tak jak -name, ale ignoruje wielko´sc´ liter.

-atime <n>, -amin <n>: wyszukuje pliki które były otwierane n dni temu (-atime) lub n minut te˙ ˙ okre´sli´c <+n> lub <-n>, w których przypadku wyszukiwanie b˛edzie dotyczy´c mu (-amin). Mozesz takze plików otwieranych najpó´zniej lub najwcze´sniej n dni/minut temu.

70


Rozdział 9. Narz˛edzia wiersza polecen´ •

-anewer <a_file>: wyszukuje pliki które otwierano cz˛es´ ciej niz˙ plik plik_a.

-ctime <n>, -cmin <n>, -cnewer <file>: podobnie jak w przypadku -atime, -amin i -anewer, ale dotyczy ostatniego czasu modyfikacji plików.

-regex <wzorzec>: podobnie jak -name, ale wzorzec jest traktowany jako wyra˙zenie regularne.

-iregex <wzorzec>: podobnie jak -regex, ale ignoruje wielko´sc´ liter.

Jest wiele innych testów, sprawd´z find(1) aby uzyska´c wi˛ecej szczegółów. Aby połaczy´ ˛ c testy, zastosuj nast˛epujace ˛ rozwiazania: ˛ •

˙ zarówno c1 jak i c2 sa˛ prawdziwe; -a jest domniemywane, wi˛ec aby <c1> -a <c2>: prawdziwy, jezeli wszystkie testy c1, c2 oraz c3 pasowały, wystarczy wpisa´c <c1> <c2> <c3> .

˙ albo c1 albo c2, albo obydwa sa˛ prawdziwe. Pami˛etaj, ze ˙ opcja -o ma <c1> -o <c2>: prawdziwy jezeli ˙ ˙ chcesz znale´zc´ pliki, które spełniaja˛ kryteria c1 lub c2, a takze ˙ spełnizszy priorytet niz˙ -a, dlatego, jezeli niaja˛ kryterium c3, b˛edziesz musiał wykorzysta´c nawiasy i wpisa´c ( <c1> -o <c2> ) -a <c3>. Musisz opu´sci´c (dezaktywowa´c) nawiasy, bo w innym przypadku b˛eda˛ one interpretowane przez powloka!

-not <c1>: odwraca test c1, wtedy -not<c1> jest prawdziwe, gdy c1 jest fałszywe.

˙ ˙ okre´sli´c działanie dla kazdego ˙ Oczywi´scie, mozesz takze znalezionego pliku. Oto najcz˛es´ ciej stosowane działania: •

˙ -print: wy´swietla nazw˛e kazdego pliku na standardowym wyj´sciu. Jest to działanie domy´slne.

˙ -ls: wy´swietla na standardowym wyj´sciu odpowiednik ls -ilds dla kazdego znalezionego pliku.

˙ -exec <polecenie>: wykonuje polecenie polecenie na kazdym znalezionym pliku. Polecenie polecenie ˙ musi konczy´ ´ c si˛e znakiem ;, który nalezy wyłaczy´ ˛ c, aby powłoka go nieinterpretowała. Pozycja pliku jest oznaczona za pomoca˛ {}. Zobacz przykłady jego stosowania.

˙ -ok <polecenie>: tak jak -exec, ale pyta o potwierdzenie przed kazdym uruchomieniem polecenia.

Najlepszym sposobem poznania wszystkich opcji i parametrów jest analiza przykładów. Aby odnale´zc´ ˙ wpisa´c: wszystkie katalogi w katalogu /usr/share, nalezy find /usr/share -type d

˙ posiadasz serwer HTTP. Wszystkie Twoje pliki HTML znajduja˛ si˛e w /var/www/html, który Przypu´sc´ my, ze ˙ Twoim katalogiem biez˙ acym. jest takze ˛ Chcesz odnale´zc´ wszystkie pliki, których zawarto´sc´ nie była zmienia˙ na przez miesiac. ˛ Poniewaz˙ posiadasz strony róznych autorów, niektóre pliki posiadaja˛ rozszerzenie html, a ˙ chcesz umie´sci´c te pliki w katalogu /var/www/obsolete, wpisz5: niektóre rozszerzenie htm. Jezeli find \( -name "*.htm" -o -name "*.html" \) -a -ctime -30 \ -exec ln {} /var/www/obsolete \;

Jest to nieco skomplikowany przykład i dlatego wymaga niewielkich wyja´snien. ´ Kryteria sa˛ nast˛epujace: ˛ \( -name "*.htm" -o -name "*.html" \) -a -ctime -30

wyszukuje wszystkie pliki których nazwy koncz ´ a˛ si˛e albo na .htm albo na .html („\( -name "*.htm" -o -name "*.html" \)”), oraz (-a), które nie były zmieniane przez ostatnie 30 dni, a to prawie miesiac ˛ ˙ (-ctime -30). Pami˛etaj o nawiasach: sa˛ tutaj konieczne, poniewaz˙ opcja -a posiada wyzszy priorytet. Gdyby ich nie było, znalezione byłyby wszystkie pliki koncz ´ ace ˛ si˛e na .htm, oraz wszystkie pliki koncz ´ ace ˛ si˛e ˙ te nie zmieniane od miesiaca, ˙ ze ˙ nawiasy sa˛ wyłana .html a takze ˛ a nie o to nam chodzi. Pami˛etaj takze, ˛ czone z powłoki: gdyby´smy wstawili ( .. ) zamiast \( .. \), powłoka zinterpretowałaby je i próbowała ˙ by´c umieszwykona´c -name "*.htm" -o -name"*.html" w podpowłoce... Innym rozwiazaniem ˛ moze czenie nawiasów pomi˛edzy podwójnymi lub pojedynczymi cudzysłowami, ale tutaj lepszy b˛edzie uko´snik gdyz˙ musimy oddzieli´c tylko jeden znak. ˙ I w koncu, ´ istnieje polecenie które ma by´c wykonane dla kazdego pliku: -exec ln {} /var/www/obsolete \;

˙ ten przykład wymaga, aby /var/www oraz /var/www/obsolete znajdowały si˛e w tym samym systemie 5. Pami˛etaj, ze plików!

71


Rozdział 9. Narz˛edzia wiersza polecen´ Tutaj tez˙ musisz oddzieli´c znak ; od powłoki. W innym przypadku powłoka zinterpretuje to jako separator ˙ o tym zapomnisz, find wy´swietli komunikat, ze ˙ -exec jest brakujacym polecenia. Jezeli ˛ argumentem. ˙ katalog (/shared/images) zawierajacy Ostatni przykład: posiadasz duzy ˛ wszystkie rodzaje obrazów. Regularnie korzystasz z polecenia touch, aby aktualizowa´c czasy pliku o nazwie stamp znajdujacego ˛ si˛e w tym katalogu. Chcesz odnale´zc´ wszystkie obrazy JPEG które sa˛ nowsze niz˙ plik stamp, ale poniewaz˙ posiadasz ˙ ˙ unikna´ obrazy z róznych z´ ródeł, pliki te maja˛ rozszerzenia jpg, jpeg, JPG lub JPEG. Chcesz takze ˛c wyszuki˙ wania w katalogu old. Chcesz, aby lista tych plików została do Ciebie wysłana, a Twoja nazwa uzytkownika to piotr: find /shared/images -cnewer \ /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex ".*/old/.*" \ | mail piotr -s "New images"

˙ ˙ musisz je wpisywa´c za kazdym ˙ ˙ Oczywi´scie, to polecenie nie jest zbyt uzyteczne jezeli razem, a chcesz zeby było wykonywane regularnie. Prostym sposobem na okresowe jego uruchamianie jest skorzystanie z demona cron tak, jak to pokazano w nast˛epnym dziale.

9.3. Okresowe uruchamianie polece´ n 9.3.1. crontab: Raportowanie oraz edycja pliku crontab ˙ crontab umozliwia wykonywanie polecen´ w okre´slonych odst˛epach czasowych, równiez˙ bez konieczno´sci ˙ zdefiniowa´c logowania, a nast˛epnie wysłanie za pomoca˛ wiadomo´sci e-mail wyniku swojej pracy. Mozesz ˙ sci od opcji, crontab b˛edzie odst˛epy czasowe w minutach, godzinach, dniach, a nawet miesiacach. ˛ W zalezno´ ˙ działanie: miał rózne •

-l: wy´swietla biez˙ acy ˛ plik crontab;

-e: edytuje plik crontab;

-r: usuwa biez˙ acy ˛ plik crontab;

˙ ˙ ˙ to wykona´c tylko -u <user>: zastosuj jedno z powyzszych polecen´ dla uzytkownika <user>. Moze administrator.

˙ Rozpocznijmy od edycji pliku crontab. Jezeli wpiszesz crontab -e, znajdziesz si˛e na poczatku ˛ swojego ˙ ustawiłe´s zmienna˛ s´ rodowiskowa˛ EDITOR lub VISUAL, w innym przypadulubionego edytora tekstu, jezeli ku wykorzystany zostanie edytor Vi. Wiersz w pliku crontab składa si˛e z sze´sciu pól. Pierwsze pi˛ec´ z nich to odst˛epy czasowe dla minut, godzin, dni w miesiacu, ˛ miesi˛ecy oraz dni w tygodniu. Szóstym polem jest polecenie, które ma by´c wykonane. Wiersze rozpoczynajace ˛ si˛e od # sa˛ uznawane jako komentarze i b˛eda˛ ignorowane przez crond (program, który jest odpowiedzialny za wykonywanie plików crontab). Ten format ˙ jest nieco inny dla systemu crontab, w /etc/crontab. Tam, szóstym polem jest nazwa uzytkownika, która powinna by´c wykorzystana do uruchomienia polecenia okre´slonego z kolei w siódmym polu. Powinno si˛e ja˛ ˙ ˙ wykorzysta´c tylko do zadan´ administracyjnych i dla uruchomionych juz˙ zadan´ uzytkowników, aby podwyz˙ ˙ szy´c bezpieczenstwo ´ systemu (takich jak uzytkownik anti-virus lub uzytkownik stworzony do uruchamiania serwera baz danych). Oto przykład pliku crontab:

Aby wy´swietli´c go w spos´ ob mo˙zliwy do odczytu nale˙zy wlaczy´ c za, wijanie wierszy. Nale˙zy to zrobi´c wpisujac na ko´ n cu d lugiego wiersza , znaki \, kt´ ore oznaczaja,, z˙ e wiersz bedzie kontynuowany. Ta zasa, da dziala r´ ownie˙z w plikach Makefile oraz w powloce, a tak˙ze w innych miejscach. # Je˙ zeli nie chcesz, aby wiadomo´ s´ c była wysyłana # to wstaw poni˙ zszy wiersz jako komentarz #MAILTO="twój_adres_e-mail" # # Raport co 2 dni o nowych obrazach o godzinie 14, # z przykładu powy˙ zej - nast˛ epnie, "retouch" # pliku "stamp". "%" jest traktowany jako # nowy wiersz, co pozwala wstawi´ c kilka polece´ n w tym samym wierszu.

72


Rozdział 9. Narz˛edzia wiersza polecen´ 0 14 */2 * * find /shared/images -cnewer /shared/images/stamp -a -iregex ".*\.jpe?g" \ -a -not -regex ".*/old/.*"%touch /shared/images/stamp # # W ka˙ zde ´ swi˛ eta odegraj melodi˛ e :) 0 0 25 12 * mpg123 $HOME/sounds/merryxmas.mp3 # # W ka˙ zdy wtorek o godzinie 17 wy´ swietla list˛ e 0 17 * * 2 lpr $HOME/shopping-list.txt

\ \ \

zakupów...

˙ Jest kilka innych sposobów na okre´slenie odst˛epów czasowych niz˙ pokazano w powyzszym przykładzie. Mo˙ zesz okre´sli´c zestaw warto´sci dyskretnych oddzielonych od siebie przecinkami (1,14,23) lub zakres (1-15), a nawet połaczy´ ˛ c obie te metody (1-10,12-20), dodatkowo z przeskokiem (1-12,20-27/2). Teraz juz˙ tylko ˙ wybranie odpowiednich polecen, do Ciebie nalezy ´ które chcesz wstawi´c!

9.3.2. at: Planowanie jednorazowego wykonania polecenia ˙ ˙ uruchomi´c polecenie o okre´slonym czasie, ale jednorazowo. Na przykład, chcesz otrzyma´c przyMozesz takze pomnienie o spotkaniu, dzisiaj o 18:00. Uruchamiasz X, instalowany jest pakiet X11R6-contrib, a na przykład ˙ wykorzysta´c at: o godzinie 17:30 musisz wyj´sc´ i chcesz zosta´c o tym poinformowany. Do tego nalezy $ at 5:30pm # Wci´ snij CTRL-d aby wyj´ s´ c at> <EOT> job 1 at 2005-02-23 17:30 $

˙ ˙ sposoby: Czas mozesz okre´sli´c na rózne •

now + <interval>: oznacza biez˙ ac ˛ a˛ dat˛e plus interwał (Opcjonalnie. Brak okre´slenia interwału oznacza wykonanie polecenia teraz). Składnia interwału to <n> (minuty|godziny|dni|tygodnie|miesiace). ˛ ˙ Na przykład, mozesz wpisa´c now + 1 hour (godzina od teraz), now + 3 days (trzy dni od teraz) i tak dalej.

˙ <time><day>: w pełni okre´sla dat˛e. Parametr <time> jest obowiazkowy. ˛ at akceptuje wiele róznych for˙ matów warto´sci: mozesz wprowadzi´c 0100, 04:20, 2am, 0530pm, 1800, lub jedna˛ z trzech warto´sci spec˙ jalnych: noon, teatime (16.00) lub midnight. Parametr <day> jest nieobowiazkowy. ˛ Mozesz go okre´sli´c ˙ na trzy rózne sposoby: na przykład 12/20/2001, co oznacza 20 grudnia 2001, albo na sposób europejs˙ ˙ ki 20.12.2001. Mozesz pomina´ ˛c rok, ale wtedy akceptowany jest tylko zapis europejski: 20.12. Mozesz ˙ takze okre´sli´c miesiac ˛ za pomoca˛ liter: Dec 20 oraz 20 Dec, obydwa sa˛ poprawne.

˙ opcje: at równiez˙ akceptuje rózne •

-l: wy´swietla list˛e obecnie zakolejkowanych zadan; ´ pierwsze pole jest numerem zadania. Jest to odpowiednik polecenia atq.

˙ -d <n>: usuwa numer zadania <n> z kolejki. Numery zadan´ mozesz uzyska´c z atq. Jest to odpowiednik polecenia atrm <n>.

˙ Jak zwykle, mozesz sprawdzi´c at(1)manpage, aby uzyska´c wi˛ecej informacji.

9.4. Archiwizacja i kompresja danych 9.4.1. tar: Tape ARchiver

Podobnie jak find, tar jest tradycyjnym narz˛edziem UNIX®, wi˛ec jego składnia jest szczególna. Oto ona: tar [opcje] [pliki...]

˙ kazda ˙ Oto lista niektórych opcji. Pami˛etaj, ze z nich posiada odpowiedniki w długich opcjach, ale b˛edziesz musiał sprawdzi´c tar(1), poniewaz˙ ich tutaj nie opiszemy. 73


Rozdział 9. Narz˛edzia wiersza polecen´

Poczatkowy my´slnik (-) w kr´ otkich opcjach jest teraz pominiety, , , pojawia sie, on tylko przy opcjach dlugich.

c: wykorzystywana do tworzenia nowych archiwów.

x: wykorzystywana do wyodr˛ebniania plików z istniejacych ˛ archiwów.

t: wy´swietla zawarto´sc´ istniejacego ˛ archiwum.

v: rozszerza szczegółowo´sc´ . Wy´swietla pliki dodane do archiwum lub z niego wyodr˛ebnione. W połaczeniu ˛ ˙ z opcja˛ t (zobacz powyzej), wy´swietla długa˛ list˛e plików, zamiast krótkiej.

f <nazwa_pliku>: tworzy archiwum o nazwie nazwa_pliku, rozpakowuje archiwum nazwa_pliku ˙ ten parametr zostanie pomini˛ety, domy´slnym plikiem lub wy´swietla pliki, które si˛e w nim znajduja.˛ Jezeli ˙ parametrem jest - (my´slb˛edzie /dev/rmt0, który jest specjalnym plikiem zwiazanym ˛ z streamerem. Jezeli ˙ sci od tego, czy chcesz utworzy´c czy rozpakowa´c archiwum) b˛edzie nik), wej´scie lub wyj´scie (w zalezno´ zwiazane ˛ ze standardowym wej´sciem lub wyj´sciem.

˙ tworzone archiwum powinno by´c skompresowane za pomoca˛ gzip opcja z: mówi programowi tar, ze ˙ archiwum, które ma by´c rozpakowane jest skompresowane za pomoca˛ gzip. albo, ze

j: podobnie jak z, ale programem do kompresji jest bzip2.

p: podczas rozpakowywania plików z archiwum, chroni wszystkich atrybutów pliku, właczaj ˛ ac ˛ w to włas˙ no´sc´ , ostatni czas dost˛epu i tak dalej. Opcja bardzo uzyteczna w przypadku zrzutów systemu.

˙ archiwum do którego r: dołacza ˛ list˛e plików z wiersza polecen´ do istniejacego ˛ archiwum. Pami˛etaj, ze ˙ by´c skompresowane! chcesz dołaczy´ ˛ c pliki nie moze

A: dołacza ˛ archiwa z wiersza polecen´ do jednego z tych z opcja˛ f. Podobnie do r, archiwa nie moga˛ by´c skompresowane, aby ta opcja mogła działa´c.

˙ sprawdzi´c tar(1) aby uzyska´c ich pełna˛ list˛e. Zobacz, na przykład, Jest bardzo wiele innych opcji, wi˛ec nalezy opcj˛e d. ˙ chcesz utworzy´c archiwum wszystkich obrazów znajdujacych Przyjrzyjmy si˛e przykładowi. Przypu´sc´ my, ze ˛ si˛e w katalogu /shared/images, skompresowa´c je za pomoca˛ bzip2, nazwa´c images.tar.bz2 i umie´sci´c w ˙ wpisa´c: swoim katalogu /home. Aby to zrobi´c nalezy # # Uwaga: musisz znajdowa´ c si˛ e w katalogu z którego # pliki chcesz archiwizowa´ c! # $ cd /shared $ tar cjf ~/images.tar.bz2 images/

˙ chcieli´smy utworzy´c archiwum, j, Jak wida´c, korzystamy tutaj z trzech opcji: c przekazało poleceniu tar, ze ˙ chcemy je skompresowa´c za pomoca˛ bzip2, natomiast f ~/images.tar.bz2, ze ˙ archiwum ma zosta´c ze ˙ jego nazwa˛ ma by´c images.tar.bz2. Teraz mozemy ˙ utworzone w naszym katalogu domowym i, ze spraw˙ dzi´c, czy archiwum jest poprawne. Mozemy to zrobi´c wy´swietlajac ˛ jego pliki: # # Przejd´ z do katalogu domowego # $ cd $ tar tjvf images.tar.bz2

Tutaj powiedzieli´smy programowi tar aby wy´swietlił list˛e (t) plików z archiwum images.tar.bz2 (f ˙ archiwum jest skompresowane za pomoca˛ bzip2 (j) i, ze ˙ oczekujemy images.tar.bz2), ostrzegajac, ˛ ze ˙ usunałe´ ˛ s obrazy z katalogu. Na szcz˛es´ cie posiadasz ich archiwum i tedługiej listy (v). Teraz, powiedzmy ze ˙ zachowa´c wszystkie atrybuty raz chcesz je otworzy´c w to samo miejsce, do katalogu /shared. Ale chcesz takze plików: # # cd do katalogu do którego chcesz rozpakowa´ c pliki # $ cd /shared $ tar jxpf ~/images.tar.bz2

74


Rozdział 9. Narz˛edzia wiersza polecen´ Gotowe! ˙ chcesz wypakowa´c z archiwum katalog images/cars i nic poza tym. Musisz wprowaTeraz, przypu´sc´ my, ze dzi´c nast˛epujace ˛ polecenie: $ tar jxf ~/images.tar.bz2 images/cars

˙ Jezeli próbujesz archiwizowa´c pliki specjalne, tar przyjmie je takie, jakie sa,˛ czyli jako pliki specjalne, i nie ˙ bezpiecznie umie´sci´c /dev/mem w archiwum. Polecenie pob˛edzie zrzucał ich zawarto´sci. Dlatego, mozesz ˙ odno´sniki, wi˛ec nie musisz si˛e o nie partwi´c. Jezeli ˙ chodzi o dowiazania prawnie obsługuje takze ˛ symboliczne, ˙ si˛e takze ˙ opcji h na stronach manpage. przyjzyj

9.4.2. bzip2 oraz gzip: Programy do kompresji danych

Te narz˛edzia zostały juz˙ omówione przy programie tar. W przeciwienstwie ´ do narz˛edzia WinZip® z systemu ® Windows , archiwizacja i kompresja sa˛ wykonywane za pomoca˛ dwóch oddzielnych narz˛edzi: archiwizatora tar, a dwa pozostałe programy, które zostana˛ teraz przedstawione słuz˙ a˛ do kompresji danych: bzip2 oraz ˙ ˙ wykorzysta´c inne narz˛edzia do kompresji, takie jak zip, arj, czy rar, które równiez˙ gzip. Mozesz takze ˙ sa˛ rzadko stosowane). istnieja˛ w systemie GNU/Linux (jednakze Przede wszystkim, bzip2 został napisany jako zamiennik dla gzip. Stopien´ jego kompresji jest ogólnie lepszy, ale z drugiej strony, wymaga wi˛ekszej ilo´sci zasobów podczas pracy. Mimo to gzip jest ciagle ˛ wykorzystywany ze wzgl˛edu na swoja˛ kompatybilno´sc´ ze starszymi systemami. Oba polecenia maja˛ podobna˛ składni˛e: gzip [opcje] [plik(i)]

˙ nie została wprowadzona zadna ˙ Jezeli nazwa pliku, zarówno gzip jak i bzip2 b˛eda˛ oczekiwa´c na dane ze ˙ standardowego wej´scia i wy´sla˛ dane do standardowego wyj´scia. Dlatego mozesz korzysta´c z obydwu programów w potokach. Równiez˙ oba posiadaja˛ swoje własne opcje: •

˙ ˙ liczba, tym lepsza jest kompresja, ale lepsza oznacza, ze -1, ..., -9: ustala stopien´ kompresji. Im wyzsza ˙ jest wolniejsza. takze

-d: dekompresja plik (ów). Jest to odpowiednikiem korzystania z polecenia gunzip, czy bunzip2.

-c: wysyła wynik kompresji/dekompresji plików okre´slonych jako parametry do standardowego wyj´scia.

Domy´slnie, gzip oraz bzip2 wymazuja, plik(i), kt´ ore zostaly skompresowane (lub zdekompresowane) je˙zeli nie wykorzystasz opcji -c. Mo˙zesz temu zapobiec korzystajac , z opcji -k przy programie bzip2. gzip nie posiada takiej opcji.

˙ chcemy skompresowa´c wszystkie pliki z rozszerzeniem .txt w Czas na kilka przykładów. Przypu´sc´ my, ze ˙ wtedy wpisa´c: biez˙ acym ˛ katalogu stosujac ˛ bzip2 z maksymalna˛ kompresja.˛ Nalezy $ bzip2 -9 *.txt

˙ Teraz chcesz udost˛epni´c archiwum obrazów innemu uzytkownikowi, ale on nie ma bzip2, za to posiada ˙ je po prostu zdekompregzip. Nie musisz dekompresowa´c archiwum i ponownie go kompresowa´c. Mozesz sowa´c do standardowego wyj´scia, wykorzysta´c potok, skompresowa´c ze standardowego wej´scia i przekierowa´c wyj´scie do nowego archiwum, w nast˛epujacy ˛ sposób: bzip2 -dc images.tar.bz2 | gzip -9 >images.tar.gz

Mogłe´s wpisa´c bzcat zamiast bzip2 -dc. Istnieje odpowiednik gzip, ale jego nazwa to zcat, a nie gzcat. ˙ bzless dla plików bzip2 oraz zless dla gzip Jezeli ˙ Posiadasz takze chcesz zobaczy´c skompresowane pliki bezpo´srednio, bez konieczno´sci ich wcze´sniejszej dekompresji. W ramach c´ wiczen´ spróbuj odnale´zc´ i ˙ wykorzysta´c, aby zobaczy´c skompresowane pliki bez wcze´sniejszej dewykorzysta´c polecenie, które nalezy ˙ bez wykorzystania bzless, czy zless. kompresji, a takze

75


Rozdział 9. Narz˛edzia wiersza polecen´

9.5. Wiele, wiele wiecej... , ˙ ksia˛zka ˙ ˙ encyklopedii. Niniejszy rozdział nie Istnieje tyle polecen, ´ ze na ich temat miałaby rozmiary duzej ˙ zawiera nawet jednej dziesiatej ˛ cz˛es´ ci zagadnienia, ale pomimo tego dzi˛eki jego wyja´snieniom mozesz juz˙ ˙ ˙ chcesz, mozesz przeczyta´c strony manuala: sort(1), sed(1) oraz zip(1L) (tak, masz racj˛e: wiele zrobi´c. Jezeli ˙ mozesz rozpakowywa´c oraz tworzy´c archiwa .zip w systemie GNU/Linux), convert(1) i tak dalej. Najlepszym sposobem zapoznania si˛e z tymi narz˛edziami jest ich wypróbowanie, a na pewno znajdziesz dla nich dobre zastosowanie, nawet takie, którego si˛e nie spodziewałe´s. Miłej zabawy!

76


Rozdzial 10. Kontrola proces´ ow Dowiedzieli´smy si˛e juz˙ czym jest proces, Procesy, strona 10. Teraz przedstawimy jak przeglada´ ˛ c procesy i ich ˙ jak nimi zarzadza´ własno´sci, a takze ˛ c.

10.1. Dodatkowe informacje dotyczace proces´ ow , ˙ Mozliwe jest monitorowanie procesów i ich zatrzymywanie, wstrzymywanie, wznawianie, itp. Aby zrozumie´c przykłady, które przedstawimy w niniejszym rozdziale, warto jest dowiedzie´c si˛e troch˛e wi˛ecej na temat procesów.

10.1.1. Drzewo proces´ ow Podobnie jak pliki, wszystkie procesy, które działaja˛ w systemie GNU/Linux sa˛ zorganizowane w postaci drzewa. Korzeniem tego drzewa jest init, który jest uruchamiany przy rozruchu. System przypisuje numer (PID, ˙ ˙ PID od procesu nadProcess ID) do kazdego procesu, aby móc go zidentyfikowa´c. Procesy, przyjmuja˛ takze rz˛ednego (PPID, Parent Process ID). init jest swoim własnym procesem nadrz˛ednym: PID oraz PPID procesu init to 1.

10.1.2. Sygnaly

˙ ˙ sygnały, które sa˛ identyfikowane Kazdy proces w UNIX® reaguje na wysłane do niego sygnały. Sa˛ 64 rózne albo poprzez swój numer (rozpoczynajac ˛ od 1) lub przez swoje symboliczne nazwy (SIGx, gdzie x to nazwa ˙ sygnału). Sygnały „wyzsze” od 32 (od 33 do 64) sa˛ sygnałami czasu rzeczywistego i nie b˛eda˛ omawiane w ˙ ˙ okre´sli´c swoje własne zachowanie, poza dwoma tym rozdziale. Dla kazdego z tych sygnałów, proces moze sygnałami: sygnałem numer 9 (KILL) oraz numer 19 (STOP). Sygnał 9 nieodwołalnie konczy ´ proces nie dajac ˛ mu czasu na prawidłowe zamkni˛ecie. Jest to sygnał, który si˛e wysyła do procesu, który uległ zawieszeniu lub wywołuje inne problemy. Pełna lista sygnałów jest dost˛epna po wprowadzeniu polecenia kill -l.

10.2. Informacje na temat proces´ ow: ps oraz pstree Te dwa polecenia wy´swietlaja˛ list˛e procesów obecnie uruchomionych w systemie, zgodnie z kryteriami, które ustawisz. pstree, w porównaniu do ps -f, ma bardziej przejrzysty wynik.

10.2.1. ps Uruchomienie polecenia ps bez argumentów spowoduje pokazanie tylko procesów zainicjowanych przez Ciebie i podłaczonych ˛ do wykorzystywanego przez Ciebie terminala: $ ps PID TTY 18614 pts/3 20173 pts/3

TIME CMD 00:00:00 bash 00:00:00 ps

Jak w przypadku wielu narz˛edzi UNIX®, ps posiada wiele przydatnych opcji, z których najpopularniejsze to: •

˙ a: wy´swietla procesy uruchomione przez wszystkich uzytkowników;

˙ x: wy´swietla procesy bez kontroli terminala lub kontrolowane przez inny terminal niz˙ obecnie uzywasz;

˙ ˙ procesu wy´swietla nazw˛e uzytkownika, który go uruchomił oraz czas w którym został u: dla kazdego uruchomiony.

Istnieje wiele innych opcji. Sprawd´z strony podr˛ecznika dla polecenia ps(1), aby uzyska´c wi˛ecej informacji.

77


Rozdział 10. Kontrola procesów ˙ pola: najwazniejszym ˙ Wynik ps jest podzielony na rózne z nich jest pole PID, które zawiera identyfikator procesu. Pole CMD zawiera nazw˛e wykonanego polecenia. Najcz˛estszy sposób na wywołanie ps jest nast˛epujacy: ˛ $ ps ax | less

˙ mozesz ˙ Wy´swietlona zostanie lista wszystkich obecnie uruchomionych procesów tak, ze zidentyfikowa´c jeden lub wi˛ecej procesów, które powoduja˛ problemy i kolejno je zakancza´ ´ c.

10.2.2. pstree ˙ natychmiast mozesz ˙ Polecenie pstree wy´swietla procesy w formie struktury drzewa. Zaleta˛ jest to, ze zo˙ ˙ ˙ chcesz zakonczy´ ´ c seri˛e procesów i jezeli sa˛ one ze soba˛ zwiazane, ˛ mozesz baczy´c procesy nadrz˛edne: jezeli ˙ po prostu zamkna´ ˛c proces nadrz˛edny. Skorzystaj z opcji -p, aby wy´swietli´c PID kazdego procesu, oraz -u, ˙ ˙ struktura jest zwykle do´sc´ długa, aby pokaza´c nazwa˛ uzytkownika, który go uruchomił. Ze wzgl˛edu na to, ze powiniene´s wykorzysta´c pstree w nast˛epujacy ˛ sposób: $ pstree -up | less

Pozwala to przegladn ˛ a´ ˛c cała˛ struktur˛e drzewa procesów.

10.3. Wysylanie sygnal´ ow do proces´ ow: kill, killall oraz top 10.3.1. kill, killall Te dwa polecenia słuz˙ a˛ do wysyłania sygnałów do procesów. Polecenie kill wymaga numeru procesu w formie argumentu, natomiast killall wymaga nazwy procesu. Obydwa z tych polecen´ moga˛ dodatkowo odbiera´c numer sygnału, który ma by´c wysłany do procesu w ˙ chcesz zakonczy´ postaci argumentu. Domy´slnie, oba wysyłaja˛ sygnał numer 15 (TERM). Na przykład, jezeli ´ c proces z PID 785, wprowad´z nast˛epujace ˛ polecenie: $ kill 785

˙ chcesz wysła´c sygnał 19 (STOP), wprowad´z: Jezeli $ kill -19 785

˙ zamiast tego chcesz zakonczy´ Przypu´sc´ my, ze ´ c proces, którego nazw˛e juz˙ znasz. Zamiast szuka´c numeru pro˙ ˙ nazwa˛ procesu jest „mozilla”, cesu wykorzystujac ˛ ps, mozesz zakonczy´ ´ c proces za pomoca˛ jego nazwy. Jezeli ˙ mozesz wprowadzi´c polecenie: $ killall -9 mozilla

˙ jeste´s uzytkownikiem ˙ Cokolwiek si˛e stanie, zakonczysz ´ tylko swój własny proces (chyba, ze administrator), ˙ ˙ pracujesz na systemie wielouzytkowni˙ wi˛ec nie musisz si˛e martwi´c o procesy innych uzytkowników, jezeli kowym, poniewaz˙ nie b˛eda˛ one naruszone.

10.3.2. Polaczenie ps i kill:top , ˙ jest wykorzystywany top jest programem, który jednocze´snie pełni funkcj˛e programów ps oraz kill, a takze do monitorowania procesów w czasie rzeczywistym dostarczajac ˛ informacj˛e na temat CPU, wykorzystania pami˛eci, czasu pracy, itp., jak pokazano w rysunek 10-1.

78


Rozdział 10. Kontrola procesów

Rysunek 10-1. Monitorowanie procesów za pomoca˛ programu top ˙ Narz˛edzie top jest w pełni obsługiwane za pomoca˛ klawiatury. Mozesz uzyska´c pomoc wciskajac ˛ klawisz h. ˙ Oto najbardziej uzyteczne polecenia: •

k: to polecenie jest wykorzystywane do wysyłania sygnału do procesu. top zada pytanie o PID procesu po którym nastapi ˛ numer lub nazwa sygnału, który ma zosta´c wysłany (domy´slnie TERM lub 15);

˙ do sortowania procesów wzgl˛edem wykorzystywanej przez nie pami˛eci (pole %MEM); M: to polecenie słuzy

P: to polecenie jest wykorzystywane do sortowania procesów ze wzgl˛edu na wykorzystanie CPU (pole %CPU): jest to domy´slna metoda sortowania;

˙ u: jest wykorzystywane do wy´swietlenia procesów danego uzytkownika. top poprosi o podanie którego. ˙ nie wprowadzisz nazwy, wszystkie procesy zostana˛ wy´sMusisz wprowadzi´c jego nazw˛e, nie UID. Jezeli wietlone;

˙ i: domy´slnie, wszystkie procesy zostana˛ wy´swietlone, nawet te u´spione. To polecenie umozliwia wy´swietlenie tylko procesów obecnie uruchomionych (procesy, których pole STAT pokazuje R, Running), a nie inne. Wykorzystanie tego polecenia spowoduje ponowne wy´swietlenie wszystkich procesów.

r: to polecenie jest wykorzystywane do zmiany priorytetu wybranych procesów.

10.4. Ustawianie priorytetu dla procesu: nice, renice ˙ ˙ „warto´sciami nice”, Kazdy proces w systemie jest uruchomiony z okre´slonymi priorytetami, zwanymi takze ˙ ˙ ˙ priorytet) do 19 (najnizszy priorytet). Jezeli nie zostało które moga˛ przyjmowa´c warto´sc´ od -20 (najwyzszy ˙ okre´slone inaczej, kazdy proces zostanie uruchomiony z domy´slnymi priorytetem o warto´sci 0 (priorytet „ba˙ zowy”). Procesy z wi˛ekszym priorytetem (nizsza warto´sc´ nice, az˙ do -20) zostana˛ ustawione do uruchomienia cz˛es´ ciej niz˙ te z mniejszym priorytetem (az˙ do 19), a przez to przydzielenie im wi˛ekszej ilo´sci cyklów proce˙ ˙ c priorytety procesów, których sa˛ wła´scicielami w zakresie od sora. Zwykli uzytkownicy moga˛ jedynie obniza´ ˙ ustawi´c dowolny priorytet dowolnemu procesowi. 0 do 19. Administrator (root) moze

10.4.1. renice ˙ jeden lub wi˛ecej procesów wykorzystuje zbyt wiele zasobów systemowych, mozesz ˙ Jezeli zmieni´c ich priorytet zamiast je zakancza´ ´ c. Aby to zrobi´c, wykorzystaj polecenie renice. Jego składnia jest nast˛epujaca: ˛ renice priorytet [[-p] pid ...] [[-g] pgrp ...] [[-u] u˙ zytkownik ...]

gdzie priorytet jest warto´scia˛ priorytetu, pid (wykorzystaj opcj˛e -p w przypadku wielu procesów), to ID ˙ procesu, pgrp (wykorzystaj opcj˛e -g jezeli jest wi˛ecej niz˙ jeden), to ID grupy procesu, a u˙ zytkownik (-u, ˙ gdy wi˛ecej niz˙ jeden), to nazwa uzytkownika b˛edacego ˛ wła´scicielem procesu. ˙ masz uruchomiony proces z PID 785, który wykonuje długie i skomplikowane obliczenia Przypu´sc´ my, ze ˙ naukowe, i podczas gdy pracuje, chcesz zagra´c w gr˛e do której potrzebne sa˛ wolne zasoby systemu. Mozesz wtedy wpisa´c:

79


Rozdział 10. Kontrola procesów $ renice +15 785

W tym przypadku, Twój proces prawdopodobnie zabierze wi˛ecej czasu, ale b˛edzie wykorzystywał mniej zasobów CPU. ˙ ˙ jaki´s uzytkownik ˙ Jezeli jeste´s administratorem systemu i widzisz, ze uruchamia zbyt wiele procesów, które ˙ zasobów systemowych, mozesz ˙ wykorzystuja˛ za duzo zmieni´c priorytety tych procesów za pomoca˛ jednego polecenia: # renice +20 -u piotr

˙ ˙ Po tym poleceniu, wszystkie procesy uzytkownika piotr b˛eda˛ posiadały najnizszy priorytet i nie b˛eda˛ miały ˙ wpływu na inne procesy uruchamiane przez pozostałych uzytkowników.

10.4.2. nice Teraz, gdy juz˙ wiesz jak zmienia´c priorytety uruchomionych juz˙ procesów, powiemy Ci jak uruchomi´c polecenie z okre´slonym wcze´sniej procesem. Wykorzystaj do tego polecenie nice. W tym przypadku musisz okre´sli´c polecenie jako opcj˛e do polecenia nice. Opcja -n jest wykorzystywana do ustawiania warto´sci priorytetu. Domy´slnie, nice ustawia warto´sc´ priorytetu na 10. Na przykład, chcesz stworzy´c obraz ISO płyty instalacyjnej Mandriva Linux: $ dd if=/dev/cdrom of=~/mandriva1.iso

˙ W niektórych systemach ze standardowym nap˛edem CD-ROM IDE, proces kopiowania duzych no´sników ˙ zajmowa´c duzo ˙ zasobów systemowych. Aby zapobiec blokowaniu procesów przez kopioinformacji moze ˙ ˙ ˙ wanie, mozesz uruchomi´c je z nizszym priorytetem, wpisujac ˛ ponizsze polecenie: $ nice -n 19 dd if=/dev/cdrom of=~/mandriva1.iso

80


Rozdzial 11. Pliki rozruchowe: init sysv System V jest schematem rozruchowym opartym na UNIX® AT&T i jest jednym z tradycyjnych schematów UNIX® słuz˙ acych ˛ do uruchamiania systemu. Jest odpowiedzialny za uruchamianie lub zatrzymywanie usług, aby wprowadzi´c system do jednego z domy´slnych stanów. Usługi si˛egaja˛ od podstawowego uwierzytelniania ˙ uzytkownika, az˙ do lokalnego serwera graficznego czy usług internetowych.

11.1. Na poczatku byl init , System zostaje uruchomiony, a po tym jak jadro ˛ wszystko skonfiguruje i zamontuje główny system plików, uruchomiony zostaje /sbin/init1. init jest procesem nadrz˛ednym w stosunku do wszystkich procesów systemu i jest odpowiedzialny za uruchomienie systemu na odpowiednim poziomie uruchamiania. Poziomom uruchamiania przyjrzymy si˛e w dalszej cz˛es´ ci rozdziału (zobacz Poziomy uruchamiania, strona 81). Plik konfiguracyjny init nosi nazw˛e /etc/inittab i posiada własna˛ stron˛e podr˛ecznika (inittab(5)), wi˛ec opiszemy tylko kilka z dost˛epnych warto´sci konfiguracyjnych. Pierwszym z wierszy, który powinien zwróci´c Twoja˛ uwag˛e jest: si::sysinit:/etc/rc.d/rc.sysinit

˙ /etc/rc.d/rc.sysinit ma by´c uruchomiony przy starcie systemu Ten wiersz mówi procesowi init, ze (si oznacza System Init). Aby okre´sli´c domy´slny poziom uruchamiania, init wyszuka wiersz zawierajacy ˛ słowo kluczowe initdefault: id:5:initdefault:

˙ domy´slnym poziomem uruchamiania jest 5. Wie on takze, ˙ ze ˙ aby przej´sc´ do W tym przypadku, init wie, ze 5 poziomu, musi uruchomi´c nast˛epujace ˛ polecenie: l5:5:wait:/etc/rc.d/rc 5

˙ Jak wida´c, składnia kazdego poziomu uruchamiania jest podobna. ˙ odpowiedzialny za ponowne uruchamianie niektórych programów, które nie moga˛ by´c uruinit jest takze ˙ chamiane przez inny proces. Na przykład, kazdy z programów logowania, który działa na sze´sciu wirtualnych konsolach jest uruchamiany przez init2. Druga konsola wirtualna jest identyfikowana nast˛epujaco: ˛ 2:2345:respawn:/sbin/mingetty tty2

11.2. Poziomy uruchamiania Wszystkie pliki zwiazane ˛ z uruchamianiem systemu sa˛ zlokalizowane w katalogu /etc/rc.d. Oto lista tych plików: $ ls /etc/rc.d init.d/ rc0.d/ rc* rc1.d/

rc2.d/ rc3.d/

rc4.d/ rc5.d/

rc6.d/ rc.alsa_default*

rc.local* rc.modules*

rc.sysinit*

Jak juz˙ wspomniano, rc.sysinit jest pierwszym plikiem uruchamianym przez system. Jest on odpowiedzialny za ustawianie podstawowej konfiguracji komputera: rodzaju klawiatury, konfiguracj˛e okre´slonych urzadze ˛ n, ´ sprawdzanie systemu plików, itp. Nast˛epnie, uruchamiany jest skrypt rc z okre´slonym poziomem uruchamiania w argumencie. Jak juz˙ wi˙ dzieli´smy, poziom uruchamiania jest prosta˛ liczba˛ całkowita,˛ a dla kazdego zdefiniowanego poziomu uruchamiania <x>, musi istnie´c odpowiedni katalog rc<x>.d. Przy standardowej instalacji Mandriva Linux, mogłe´s ˙ c, ze ˙ istnieje sze´sc´ poziomów uruchamiania: zauwazy´ 1. Złym pomysłem jest umieszczenie /sbin w innym systemie plików niz˙ root. Jadro ˛ nie zamontowało do tej pory jeszcze ˙ zadnej innej partycji i dlatego nie b˛edzie mogło odnale´zc´ /sbin/init. ˙ nie chcesz sze´sciu wirtualnych konsoli, mozesz ˙ ˙ chcesz zwi˛ek2. Jezeli kilka doda´c lub usuna´ ˛c zmieniajac ˛ ten plik. Jezeli ˙ ˙ X jest takze ˙ uruchamiany poprzez szy´c liczb˛e konsoli, mozesz wprowadzi´c liczb˛e nie wi˛eksza˛ niz˙ 64. Lecz nie zapomnij, ze wirtualna˛ konsol˛e, wi˛ec zostaw co najmniej jedna˛ wolna˛ dla X.

81


Rozdział 11. Pliki rozruchowe: init sysv •

0: całkowite zatrzymanie komputera.

1: tryb jednego u˙zytkownika. Wykorzystuje si˛e go w przypadku znaczacych ˛ problemów lub przy odzyskiwaniu systemu.

2: tryb wielu u˙zytkowników, bez sieci.

˙ 3: tryb wielu uzytkowników z siecia˛

4: niewykorzystany.

5: tak jak poziom uruchamiania 3, ale dodatkowo uruchamiany jest graficzny interfejs logowania.

6: ponowne uruchomienie.

˙ Przyjzyjmy si˛e zawarto´sci katalogu rc3.d: $ ls /etc/rc.d/rc3.d/ K09dm@ S12syslog@ S01udev@ S13partmon@ S03iptables@ S15cups@ S05harddrake@ S17alsa@ S10network@ S18sound@ S11shorewall@ S20xfs@ $

S24messagebus@ S25haldaemon@ S25netfs@ S29numlock@ S33nifd@ S34mDNSResponder@

S40atd@ S55sshd@ S56ntpd@ S56rawdevices@ S75keytable@ S90crond@

S91dictd-server@ S92lisa@ S95kheader@ S99local@

Jak wida´c, wszystkie pliki w tym katalogu sa˛ dowiazaniami, ˛ i wszystkie maja˛ szczególna˛ form˛e. Forma ogólna jest nast˛epujaca: ˛ <S|K><order><nazwa_usługi>

S oznacza uruchomienie usługi, a K jej zabicie (zatrzymanie). Skrypty sa˛ uruchamiane w kolejno´sci rosnacej ˛ ˙ dwa skrypty posiadaja˛ ten sam numer, to w rosnacej ˙ takze ˙ numeracji, a jezeli ˛ kolejno´sci alfabetycznej. Mozna ˙ c, ze ˙ kazde ˙ zauwazy´ dowiazanie ˛ kieruje do okre´slonego skryptu zlokalizowanego w katalogu /etc/init. d (inny niz˙ skrypt local, który jest odpowiedzialny za kontrolowanie okre´slonej usługi). Kiedy system przechodzi do okre´slonego poziomu uruchamiania, rozpoczyna uruchamianie dowiaza ˛ n´ K w kolejno´sci: polecenie rc patrzy, gdzie kieruje dowiazanie, ˛ nast˛epnie wywołuje odpowiedni skrypt z jednym argumentem: stop. Nast˛epnie uruchamia skrypty S korzystajac ˛ z tej samej metody, poza tym skrypty sa˛ wywoływane z parametrem start. ˙ kiedy system przechodzi do poziomu uruchamiania Wi˛ec bez omawiania wszystkich skryptów, widzimy, ze 3, najpierw uruchamia polecenie K09dm, (np. /etc/init.d/dm stop). Nast˛epnie, uruchamiane sa˛ skrypty S: najpierw S01udev, który włacza ˛ /etc/init.d/udev start, a nast˛epnie S03iptables, itd. ˙ ˙ Wyposazony w te informacje, mozesz utworzy´c własny poziom uruchamiania w zaledwie kilka minut (na przykład, wykorzystujac ˛ poziom uruchamiania 4), lub zapobiec uruchamiania lub zatrzymywania usługi poprzez usuni˛ecie odpowiedniego dowiazania. ˛

11.2.1. Konfiguracja uslug na poziomach uruchamiania ˙ ˙ wykorzysta´c polecenie chkconfig, aby doda´c, usuna´ Mozesz takze ˛c, aktywowa´c lub dezaktywowa´c usługi na okre´slonych poziomach uruchamiania. Wykorzystaj chkconfig --add nazwa_usługi aby doda´c (aktywowa´c) usług˛e nazwa_usługi do wszystkich obsługiwanych3poziomów uruchamiania, a chkconfig --del nazwa_usługi, aby usuna´ ˛c (dezaktywacja) okre´slona˛ usług˛e ze wszystkich poziomów uruchamiana.

Wprowad´z chkconfig --list, aby zobaczy´c, kt´ ore z uslug sa, dostepne, ich nazwy, a tak˙ z e ich status na wszystkich poziomach , uruchamiania.

Wprowadzenie chkconfig --levels 35 sshd on aktywuje serwer SSH (sshd) na poziomie uruchamiania 3 i 5, podczas gdy wprowadzenie chkconfig --levels 3 sound off spowoduje usuni˛ecie obsługi ˙ pominiesz parametr --levels levels_list, okre´slona usługa d´zwi˛eku z poziomu uruchamiania 3. Jezeli ˙ pami˛etaj, ze ˙ zostanie aktywowana lub dezaktywowana na poziomach uruchamiania 2, 3, 4 oraz 5. Jednakze ˙ usługi zwiazane 3. „Obsługiwane” poziomy uruchamiania oznaczaja,˛ na przykład, ze ˛ z siecia˛ nie b˛eda˛ dodane do poziomu 2, który nie obsługuje sieci.

82


Rozdział 11. Pliki rozruchowe: init sysv ˙ mozesz właczy´ ˛ c usługi na poziomach uruchamiania, które nie posiadaja˛ odpowiedniego dla nich wsparcia, wi˛ec lepiej jest okre´sli´c poziomy uruchamiania na których usługi maja˛ by´c uruchomione.

11.2.2. Kontrolowanie uslug w trakcie pracy systemu Usługi moga˛ by´c kontrolowane w trakcie pracy systemu za pomoca˛ polecenia service, oboj˛etnie czy sa˛ one skonfigurowane do uruchamiania na okre´slonym poziomie uruchamiania, czy nie. Jego składnia jest nast˛epujaca: ˛ service nazwa_usługi działanie Gdzie nazwa_usługi jest nazwa˛ usługi, która ma by´c skontrolowana, taka jak okre´slona przez chkconfig --list, a działanie jest jedno z nast˛epujacych: ˛ start ˙ wi˛ekszo´sc´ usług wy´sle ostrzezenie, ˙ ˙ sa˛ juz˙ uruchomione, Uruchamia okre´slona˛ usług˛e. Pami˛etaj, ze jezeli a ty chcesz uruchomi´c je jeszcze raz: wykorzystaj wtedy działanie restart. stop ˙ wszyscy uzytkownicy ˙ Zatrzymuje okre´slona˛ usług˛e. Pami˛etaj, ze podłaczeni ˛ do tej usługi zostana˛ automatycznie rozłaczeni ˛ w momencie zatrzymania usługi. restart Zatrzymuje, a nast˛epnie uruchamia okre´slona˛ usług˛e. Jest to odpowiednik wykonania polecenia ˙ wszyscy uzyt˙ service nazwa_usługi stop && service nazwa_usługi start. Pami˛etaj, ze kownicy podłaczeni ˛ do tej usługi b˛eda˛ automatycznie rozłaczeni ˛ w momencie kiedy zrestartujesz usług˛e. ˙ od usług inne działania, które sa˛ zalezne ˙ ˙ ˙ sa˛ obsługiwane przez wszystkie z Rózne usługi obsługuja˛ rózne działania (te wymienione powyzej nich). Na przykład działanie przeładuj do przeładowania pliku konfiguracyjnego bez ponownego uruchamiania usługi; force-stop wymusza zamkni˛ecie usługi; status informuje o stenie usługi; itp. Uruchom service nazwa_usługi aby dowiedzie´c si˛e jakie działania sa˛ przez nia˛ obsługiwane.

83


Rozdział 11. Pliki rozruchowe: init sysv

84


Rozdzial 12. Bezpiecze´ nstwo zdalnego dostepu , Administratorzy systemu musza˛ si˛e podłaczy´ ˛ c do fizycznie odległych maszyn, aby edytowa´c pliki konfiguracyjne, kontrolowa´c usługi, uruchamia´c programy, itp. telnet był wykorzystywany do dost˛epu do zdalnych systemów, jakkolwiek nie jest to rozwiazanie ˛ bezpieczne. Poniewaz˙ cała komunikacja odbywa si˛e w publicznym (i jednocze´snie niebezpiecznym) Internecie, administratorzy systemu potrzebuja˛ bezpiecznego rozwia˛ ˙ zania do zdalnego dost˛epu. ssh (który oznacza Secure SHell) umozliwia dost˛ep do zdalnych komputerów bezpiecznie, szyfrujac ˛ całe połaczenie. ˛

Rysunek 12-1. Schemat połaczenia ˛ SSH

12.1. Konfiguracja serwera SSH ˙ pakiet openssh-server jest Za „serwer” przyjmujemy komputer do którego si˛e podłaczamy. ˛ Upewnij si˛e ze ˙ usługa sshd jest uruchomiona1. zainstalowany oraz, ze ˙ ˙ Podstawowa konfiguracja serwera SSH pozwala uzytkownikom na dost˛ep do komputera, pod warunkiem, ze ˙ chcesz ograniczy´c dost˛ep do SSH dla okre´slonej listy uzytkowników, ˙ posiadaja˛ oni na nim konto. Jezeli zmien´ plik /etc/ssh/sshd_config i dodaj lub zmien´ wiersz, aby wygladał ˛ nast˛epujaco: ˛ AllowUsers ania piotr@192.168.0.*

˙ ˙ Powyzszy przykład pozwala tylko uzytkownikom ania oraz piotr na podłaczenie ˛ si˛e do komputera poprzez ˙ SSH; piotr b˛edzie miał taka˛ mozliwo´ sc´ tylko z komputera o adresie 192.168.0. w sieci (lokalnej). ˙ Uzytkownicy b˛eda˛ musieli podłacza´ ˛ c si˛e za pomoca˛ zwykłych kont i korzysta´c z polecenia su, aby sta´c si˛e ˙ ˙ uzytkownikami administrator. Aby pozwoli´c uzytkownikom na podłaczenie ˛ si˛e jako administrator bezpo´srednio przez SSH, zmien´ wiersz PermitRootLogin no na PermitRootLogin yes. Pami˛etaj jed˙ to ustawienie, wprawdzie wygodne, nie jest zbytnio bezpieczne. nak, ze Sprawd´z sshd(8) oraz sshd_config(5), aby uzyska´c wi˛ecej informacji na temat opcji i konfiguracji serwera SSH.

12.2. Konfiguracja klienta SSH ˙ pakiet openssh-clients Poprzez „klienta” rozumiemy komputer z którego si˛e łaczymy. ˛ Upewnij si˛e, ze jest zainstalowany. ˙ Wpisz ssh username@remote_machine, aby podłaczy´ ˛ c si˛e do systemu remote_machine uzywaj ac ˛ konta username. Zostaniesz poproszony o podanie swojego hasła do zdalnego systemu. Wprowad´z je, a uzyskasz dost˛ep do serwera tak jak by´s si˛e przed nim znajdował. Oboj˛etnie, czy podłaczysz ˛ si˛e do jednego czy wielu komputerów (zwykle w przypadku administratorów), ˙ by´c pomini˛ety korzystajac krok podawania hasła moze ˛ z kluczy SSH. Zastosuj polecenie ssh-keygen, aby 1. Wprowad´z polecenie service sshd start, aby go uruchomi´c. Usługa SSH jest skonfigurowana do uruchamiania w momencie rozruchu.

85


Rozdział 12. Bezpieczenstwo ´ zdalnego dost˛epu wygenerowa´c klucz SSH, a nast˛epnie polecenie ssh-copy-id username@remote_machine, aby skopiowa´c swój klucz na zdalne komputery. Kiedy wprowadzisz polecenie ssh-copy-id zostaniesz poproszony ˙ o wprowadzenie hasła do zdalnego systemu, ale tylko raz na system. Teraz mozesz SSH bezpo´srednio do zdalnego komputera bez podawania hasła.

Aby ten mechanizm zadzialal, musisz uruchomi´c polecenie ssh-add i wprowadzi´c swoje haslo — utworzone podczas generacji klucza SSH — za ka˙zdym razem gdy rozpoczynasz sesje, na komputerze kliencie. Je˙zeli otrzymasz komunikat, z˙ e polaczenie do Twojego agen, ta uwierzytelniania nie mo˙ze zosta´c otwarte, uruchom polecenie eval ‘ssh-agent‘ (pamietaj o apostrofach) zanim uruchomisz , ssh-add.

12.3. Kopiowanie plik´ ow do lub ze zdalnego systemu Aby przenie´sc´ pliki do zdalnego systemu na serwerze SSH wykorzystaj polecenie scp, które oznacza Secure CoPy (Bezpieczne kopiowanie). Jego składnia jest nast˛epujaca: ˛ scp [opcje] local_path [user@]remote_host:[pełna_´ scie˙ zka_na_zdalnym_hoscie] ˙ nie okre´slisz cz˛es´ ci user@, to wykorzystane zostanie logowanie z komputera klienta. Jezeli ˙ pominiesz Jezeli ˙ e na zdalnym komputerze, plik zostanie skopiowany do katalogu domowego uzytkownika ˙ s´ ciezk˛ user w ˙ dwukropek (:) oddziela nazw˛e uzytkownika ˙ zdalnym systemie. Pami˛etaj ze oraz okre´slenie komputera od ˙ na zdalnym komputerze. s´ ciezki Aby przenie´sc´ pliki ze zdalnego systemu na lokalny komputer wykorzystaj nast˛epujac ˛ a˛ składni˛e: scp [opcje] [user@]remote_host:full_path_on_the_remote_host local_path ˙ ˙ Jezeli s´ ciezka z´ ródłowa okre´sla katalog, to opcja -r jest obowiazkowa. ˛ Zobacz scp(1), aby uzyska´c wi˛ecej informacji na temat opcji scp.

86


Rozdzial 13. Zarzadzanie pakietami z wiersza polece´ n , ˙ Aplikacje Rpmdrake sa˛ przede wszystkim interfejsami graficznymi do pot˛eznego narz˛edzia wiersza polecen´ ˙ pracujakim jest urpmi. Dla tych, którzy chca˛ zarzadza´ ˛ c swoimi pakietami z wiersza polecen´ (korzystne, jezeli ˙ jesz zdalnie) przedstawimy najbardziej uzyteczne polecenia.

13.1. Instalacja i usuwanie pakiet´ ow Te procesy sa˛ wykonywane za pomoca˛ prostych polecen: ´ urpmi <nazwa_pakietu> ˙ oczywi´scie istnieje. Jezeli ˙ paZa pomoca˛ tego polecenia okre´slony pakiet zostanie zainstalowany, jezeli ˙ kiet zawiera w sobie ciag ˛ nazwa_pakietu, to polecenie równiez˙ zadziała. Jezeli do polecenia pasuje wi˛ecej niz˙ jeden pakiet, zobaczysz list˛e numerowana˛ potencjalnych trafien: ´ wystarczy wpisa´c liczb˛e odpowiadajac ˛ a˛ pakietowi, który chcesz zainstalowa´c i wcisna´ ˛c klawisz Enter. ˙ pakiet, który próbujesz zainstalowa´c posiada zalezno´ ˙ sci (inne pakiety, które musza˛ by´c zainstaloJezeli ˙ je i wci´snij klawisz Y, aby wane, aby funkcjonował poprawnie), to ich lista zostanie wy´swietlona. Przejzyj zainstalowa´c wszystkie pakiety. urpme <nazwa_pakietu> ˙ To poleceniu usunie pakiet nazwa_pakietu. Jezeli inne zainstalowane pakiety zalez˙ a˛ od pakietu, który ˙ ta˛ list˛e i wci´snij klawisz Y aby usuna´ chcesz usuna´ ˛c, to ich lista zostanie wy´swietlona. Przejzyj ˛c wszystkie pakiety.

Zar´ owno urpmi jak i urpme obsluguja, opcje, --auto, kt´ ora powoduje automatyczna, instalacje, lub usuwanie zale˙zno´sci.

Sprawd´z strony podr˛ecznika dla polecen´ urpmi(8) oraz urpme(8), aby uzyska´c wi˛ecej informacji na temat samych polecen´ jak i ich opcji.

13.2. Zarzadzanie no´snikami , ˙ „´zródła” z których mozesz ˙ No´sniki oprogramowania to rózne instalowa´c pakiety. Aby polecenie urpmi działało poprawnie, musi by´c zdefiniowany przynajmniej jeden no´snik. Domy´slnie zdefiniowane sa˛ no´sniki, które były wykorzystywane przy instalacji systemu (sie´c, CD, DVD, itp.). Powiniene´s zdefiniowa´c inne no´sniki do instalacji poprawek bł˛edów i aktualizacji bezpieczenstwa. ´ Dodawanie i usuwanie no´sników jest do´sc´ proste, ˙ bardzo dokładnie przestrzega´c reguł składni. ale nalezy

13.2.1. Dodawanie nowych no´snik´ ow urpmi.addmedia <nazwa> <URL> To polecenie pozwala na dodanie nowego no´snika albo z lokalnego dysku, urzadzenia ˛ wymienialnego (CD/DVD), lub z sieci poprzez protokoły HTTP, FTP, NFS, ssh lub rsync. Składnia URL zmienia si˛e dla ˙ ˙ kazdego no´snika, wi˛ec zalecamy sprawdzi´c strony podr˛ecznika urpmi.addmedia(8) przed jego uzyciem.

Je˙zeli dodajesz nowy no´snik aktualizacji, wykorzystaj opcje, --update do polecenia urpmi.addmedia.

˙ Mozesz wykorzysta´c równiez˙ zasoby internetowe, takie jak Easy Urpmi Page (http://easyurpmi.zarb. ˙ nie wiesz gdzie znale´zc´ no´sniki zawierajace ˙ org/), jezeli ˛ róznorodne programy przeznaczone dla Twojej dys-

87


Rozdział 13. Zarzadzanie ˛ pakietami z wiersza polecen´ trybucji Mandriva Linux. Klub Mandriva (http://club.mandriva.com/) równiez˙ udost˛epnia moduł No´snika urpmi (http://club.mandriva.com/modules.php?name=Mirrors-list) z pakietami testowymi.

No´sniki w Klubie Mandriva sa, dostepne tylko dla jego czlonk´ ow. ,

13.2.2. Usuwanie no´snik´ ow urpmi.removemedia <nazwa> ˙ nie pami˛etasz nazwy no´snika, wykonanie polecenia To polecenie spowoduje usuni˛ecie no´snika nazwa. Jezeli ˙ urpmi.removemedia bez zadnego parametru wy´swietli wszystkie no´sniki.

13.2.3. Aktualizacja no´snik´ ow urpmi.update <nazwa> ˙ To polecenie przeszukuje okre´slony no´snik i aktualizuje zwiazan ˛ a˛ z nim list˛e pakietów. Jest to polecenie uzyteczne w przypadku cz˛esto zmieniajacych ˛ si˛e no´sników, takich jak no´sniki poprawek bł˛edów i bezpieczen´ stwa. Skorzystaj z opcji -a aby przeskanowa´c wszystkie no´sniki.

13.2.4. Kolejno´s´ c no´snik´ ow Kolejno´sc´ w jakiej sa˛ uszeregowane no´sniki w pliku /etc/urpmi/urpmi.cfg jest bardzo istotna, poniewaz˙ ˙ jest wi˛ecej niz˙ jeden no´snik, który go zawiera: okre´sla ona no´snik z którego instalowany b˛edzie pakiet, jezeli pakiety b˛eda˛ instalowane z pierwszego no´snika znajdujacego ˛ si˛e na li´scie, który je zawiera.

W przypadku dodawania no´snik´ ow sieciowych, bed , a, one dodawane przed no´snikami lokalnymi i wymienialnymi. Dzieje sie, tak, gdy˙z zwykle no´sniki sieciowe posiadaja, bardziej aktualne pakiety ni˙z te znajdujace sie, na dyskach lokalnych i wymienialnych. ,

13.3. Inne polecenia 13.3.1. Listy pelne i syntezowane Przy dodawaniu no´snika, sa˛ dwie opcje dla listy pakietów: syntezowane lub pełne. Skorzystaj z opcji --probe-synthesis aby wyszuka´c i wykorzysta´c syntezowana˛ list˛e pakietów, albo opcj˛e --probe-hdlist ˙ sa˛ one do wyszukania i wykorzystania listy pełnej. Listy syntezowane maja˛ mniejszy rozmiar, co powoduje, ze ˙ ˙ posiadaja˛ mniej informacji na temat z wolnym połaczeniem ˛ sieciowym. Jednakze lepsze dla uzytkowników pakietów.

13.3.2. Wyszukiwanie pakiet´ ow zawierajacych okre´slony plik , ˙ Jezeli potrzebujesz okre´slonego pliku w swoim systemie, ale nie wiesz jaki pakiet go zawiera, to wprowad´z polecenie urpmf <file_name>, a wszystkie pakiety, zainstalowane lub nie, zawierajace ˛ plik nazwa_ pliku zostana˛ wy´swietlone.

Je˙zeli wykorzystujesz listy syntezowane, polecenie urpmf mo˙ze tylko szuka´c plik´ ow w ju˙z zainstalowanych pakietach.

88


Rozdział 13. Zarzadzanie ˛ pakietami z wiersza polecen´ ˙ Mozesz nawet wprowadzi´c tylko cz˛es´ c´ nazwy. Na przykład urpmf salsa zwróci list˛e wszystkich pakietów, które zawieraja˛ plik o nazwie zawierajacej ˛ słowo salsa. [root@test ania]# urpmf salsa kaffe:/usr/lib/kaffe/lib/i386/libtritonusalsa-1.1.2.so kaffe:/usr/lib/kaffe/lib/i386/libtritonusalsa.la kaffe:/usr/lib/kaffe/lib/i386/libtritonusalsa.so

13.3.3. Aktualizacja pakiet´ ow To polecenie zaktualizuje okre´slony pakiet: urpmi.update -a && urpmi --update <nazwa_pakietu>

To polecenie spowoduje automatyczna˛ aktualizacj˛e wszystkich pakietów, które jej wymagaja:˛ urpmi.update -a && urpmi --update --auto-select --auto

˙ ˙ Jezeli nie posiadasz zadnego no´snika zdefiniowanego jako no´snik aktualizacji, musisz pomina´ ˛c opcj˛e ˙ --update w powyzszych poleceniach urpmi.

89


Rozdział 13. Zarzadzanie ˛ pakietami z wiersza polecen´

90


Dodatek A. Glossary account on a UNIX® system, the combination of a name, a personal directory, a password and a shell which allows a user to connect to this system. alias a mechanism used in a shell in order to make it substitute one string for another before executing the command. You can see all aliases defined in the current session by typing alias at the prompt. APM Advanced Power Management. A feature used by some BIOSes in order to make the machine enter a standby state after a given period of inactivity. On laptops, APM is also responsible for reporting the battery status and (if supported) the estimated remaining battery life. ARP Address Resolution Protocol. The Internet protocol used to dynamically map an Internet address to a physical (hardware) address on a local area network. This is limited to networks that support hardware broadcasting. ASCII American Standard Code for Information Interchange. The standard code used for storing characters, including control characters, on a computer. Many 8-bit codes (such as ISO 8859-1, the Linux default character set) contain ASCII as their lower half. Patrz tez˙ : ISO 8859. assembly language is the programming language that is closest to the computer, which is why it’s called a „low level” programming language. Assembly has the advantage of speed since assembly programs are written in terms of processor instructions so little or no translation is needed when generating executables. Its main disadvantage is that it is processor (or architecture) dependent. Writing complex programs is very timeconsuming as well. So, assembly is the fastest programming language, but it isn’t portable between architectures. ATAPI („AT Attachment Packet Interface”) An extension to the ATA specification („Advanced Technology Attachment”, more commonly known as IDE, Integrated Drive Electronics) which provides additional commands to control CD-ROM drives and magnetic tape drives. IDE controllers equipped with this extension are also referred to as EIDE (Enhanced IDE) controllers. ATM This is an acronym for Asynchronous Transfer Mode. An ATM network packages data into standard size blocks (53 bytes: 48 for the data and 5 for the header) that it can be conveyed efficiently from point to point. ATM is a circuit switched packet network technology oriented towards high speed (multi-megabit) optical networks. atomic a set of operations is said to be atomic when they execute all at once and cannot be preempted. background in shell context, a process is running in the background if you can type commands that are captured by the process while it is running. Patrz tez˙ : job, foreground. backup is a means of saving your important data to a safe medium and location. Backups should be done regularly, especially with more critical information and configuration files (the most important directories to backup are /etc, /home and /usr/local). Traditionally, many people use tar with gzip or bzip2 to backup directories and files. You can use these tools or programs like dump and restore, along with many other free or commercial backup solutions. batch is a processing mode where jobs which are submitted to the CPU are executed sequentially until all the jobs have been processed.

91


Dodatek A. Glossary beep is the little noise your computer’s speaker emits to warn you of some ambiguous situation when you’re using command completion and, for example, there’s more than one possible choice for completion. There might be other programs that make beeps to let you know of some particular situation. beta testing is the name given to the process of testing the beta version of a program. Programs usually get released in alpha and beta states for testing prior to final release. binary in the context of programming, binaries are the compiled, executable code. bit stands for BInary digiT. A single digit which can take the values 0 or 1, because calculation is done in base two. block mode files files whose contents are buffered. All read/write operations for such files go through buffers, which allow for asynchronous writes on the underlying hardware, and for reads, which allows the system to avoid disk access if the data is already in a buffer. Patrz tez˙ : buffer, buffer cache, character mode files. boot the procedure taking place when a computer is switched on, where peripherals are recognized sequentially and where the operating system is loaded into memory. bootdisk a bootable floppy disk containing the code necessary to load the operating system from the hard disk (sometimes it is self-sufficient). bootloader is a program which starts the operating system. Many bootloaders give you the opportunity to load more than one operating system by allowing you choose between them from a menu. Bootloaders like GRUB and LILO are popular because of this feature and are very useful in dual- or multi-boot systems. BSD

Berkeley Software Distribution. A UNIX® variant developed at the Berkeley University computing department. This version has always been considered more technically advanced than the others, and has brought many innovations to the computing world in general and to UNIX® in particular.

buffer a small portion of memory with a fixed size, which can be associated with a block mode file, a system table, a process and so on. The buffer cache maintains coherency of all buffers. Patrz tez˙ : buffer cache. buffer cache a crucial part of an operating system kernel, it is in charge of keeping all buffers up-to-date, shrinking the cache when needed, clearing unneeded buffers and more. Patrz tez˙ : buffer. bug illogical or incoherent behavior of a program in a special case, or a behavior that does not follow the documentation or accepted standards issued for the program. Often, new features introduce new bugs in a program. Historically, this term comes from the old days of punch cards: a bug (the insect!) slipped into a hole of a punch card and, as a consequence, the program misbehaved. Admiral Grace Hopper, having discovered this, declared „It’s a bug!”, and since then the term has remained. Note that this is only one of the many stories which attempt to explain the term bug. byte eight consecutive bits, which when interpreted in base ten result in a number between 0 and 255. Patrz tez˙ : bit. case when taken in the context of strings, the case is the difference between lowercase letters and uppercase (or capital) letters. 92


Dodatek A. Glossary CHAP Challenge-Handshake Authentication Protocol: protocol used by ISPs to authenticate their clients. In this scheme, a value is sent to the client (the machine making the connection), which it uses to calculate a hash based on the value. The client sends the hash back to the server for comparison to the hash calculated by the server. This authentication method is different to PAP in that it re- authenticates on a periodic basis after the initial authentication. Patrz tez˙ : PAP. character mode files files whose content is not buffered. When associated with physical devices, all input/output on these devices is performed immediately. Some special character devices are created by the operating system (/dev/zero, /dev/null and others). They correspond to data flows. Patrz tez˙ : block mode files. CIFS Common Internet File System The successor to the SMB file system, used on DOS systems. client program or computer which periodically connects to another program or computer to give it orders or ask for information. In the case of peer to peer systems such as SLIP or PPP the client is taken to be the end that initiates the connection and the remote end receiving the call is designated as the server. It is one of the components of a client/server system. client/server system system or protocol consisting of a server and one or several clients. command line provided by a shell and which allows the user to type commands directly. Also subject of an eternal „flame war” between its supporters and its detractors. command mode under Vi or one of its clones, it is the state of the program in which pressing a key will not insert the character in the file being edited, but instead performs an action specific to the key (unless the clone has re-mappable commands and you have customized your configuration). You may get out of it typing one of the „back to insertion mode” commands: i, I, a, A, s, S, o, O, c, C, ... compilation is the process of translating source code that is human readable (well, with some training) and that is written in some programming language (C, for example) into a binary file that is machine readable. completion the ability of a shell to automatically expand a substring to a filename, user name or other item, as long as there is a match. compression is a way to shrink files or decrease the number of characters sent over a communications connection. Some file compression programs include compress, zip, gzip, and bzip2. console is the name given to what used to be called terminals. They were the machines (a screen plus a keyboard) connected to one big central mainframe. On PC s, the physical terminal is the keyboard and screen. Patrz tez˙ : virtual console. cookies temporary files written on the local hard disk by a remote web server. It allows for the server to be aware of a user’s preferences when this user connects again. datagram A datagram is a discrete package of data and headers which contain addresses, which is the basic unit of transmission across an IP network. You might also hear this called a „packet”. dependencies are the stages of compilation that need to be satisfied before going on to other compilation stages in order to successfully compile a program. This term is also used where one set of programs you wish to install are dependent on other programs which may or may not be installed on your system, in which case you 93


Dodatek A. Glossary may get a message telling you that the system needs to „satisfy dependencies” in order to continue the installation. desktop If you’re using the X Window System, the desktop is the place on the screen where you work and upon which your windows and icons are displayed. It is also called the background, and is usually filled with a simple color, a gradient color or even an image. Patrz tez˙ : virtual desktops. DHCP Dynamic Host Configuration Protocol. A protocol designed for machines on a local network to dynamically get an IP address from a DHCP server. directory Part of the file system structure. Files or other directories can be stored within a directory. Sometimes there are sub-directories (or branches) within a directory. This is often referred to as a directory tree. If you want to see what’s inside another directory, you will either have to list it or change to it. Files inside a directory are referred to as leaves while sub-directories are referred to as branches. Directories follow the same restrictions as files although the permissions mean different things. The special directories . and .. refer to the directory itself and to the parent directory respectively. discrete values are values that are non-continuous. That is, there’s some kind of „spacing” between two consecutive values. distribution is a term used to distinguish one GNU/Linux manufacturers product from another. A distribution is made up of the core Linux kernel and utilities, as well as installation programs, third-party programs, and sometimes proprietary software. DLCI The DLCI is the Data Link Connection Identifier and is used to identify a unique virtual point to point connection via a Frame Relay network. The DLCI’s are normally assigned by the Frame Relay network provider. DMA Direct Memory Access. A facility used in the PC architecture which allows a peripheral to read or write from main memory without the help of the CPU. PCI peripherals use bus mastering and do not need DMA. DNS Domain Name System. The distributed name and address mechanism used in the Internet. This mechanism allows you to map a domain name to an IP address, allowing you to look up a site by domain name without knowing the IP address of the site. DNS also allows reverse lookup, allowing you to obtain machine’s IP address from its name. DPMS Display Power Management System. Protocol used by all modern monitors to manage power saving features. Monitors supporting these features are commonly called „green” monitors. echo occurs when the characters you type in a user name entry field, for example, are shown „as is”, instead of showing „*” for each one you type. editor is a term typically used for programs that edit text files (aka text editor). The most well-known GNU/Linux editors are the GNU Emacs (Emacs) editor and the UNIX® editor Vi. ELF Executable and Linking Format. This is the binary format used by most GNU/Linux distributions. email stands for Electronic Mail. This is a way to send messages electronically between people on the same network. Similar to regular mail (aka snail mail), email needs a destination and sender address to be 94


Dodatek A. Glossary sent properly. The sender must have an address like „sender@senders.domain” and the recipient must have an address like „recipient@recipients.domain.” Email is a very fast method of communication and typically only takes a few minutes to reach anyone, regardless of where in the world they are located. In order to write email, you need an email client such as pine or mutt which are text-mode clients, or GUI clients such as KMail. environment is the execution context of a process. It includes all the information that the operating system needs to manage the process and what the processor needs to execute the process properly. Patrz tez˙ : process. environment variables a part of a process’ environment. Environment variables are directly viewable from the shell. Patrz tez˙ : process. escape in the shell context, is the action of surrounding a string between quotes to prevent the shell from interpreting that string. For example, when you need to use spaces in a command line and pipe the results to some other command you have to put the first command between quotes („escape” the command) otherwise the shell will interpret it incorrectly and it won’t work as expected. ext2 short for the „Extended 2 file system”. This is GNU/Linux’s native file system and has the characteristics of any UNIX® file system: support for special files (character devices, symbolic links, etc), file permissions and ownership, and other features. FAQ Frequently Asked Questions. A document containing a series of questions and answers about a specific topic. Historically, FAQs appeared in newsgroups, but this sort of document now appears on various web sites, and even commercial products have FAQs. Generally, they are very good sources of information. FAT

File Allocation Table. File system used by DOS and Windows®.

FDDI Fiber Distributed Digital Interface. A high-speed network physical layer, which uses optical fiber for communication. Mostly used on large networks, mainly because of its price. It is rarely seen as a means of connection between a PC and a network switch. FHS File system Hierarchy Standard. A document containing guidelines for a coherent file tree organization on UNIX® systems. Mandriva Linux complies with this standard in most aspects. FIFO First In, First Out. A data structure or hardware buffer where items are taken out in the order they were put in. UNIX® pipes are the most common examples of FIFO s. filesystem scheme used to store files on a physical media (hard drive, floppy) in a consistent manner. Examples of file systems are FAT, GNU/Linux’ ext2fs, ISO9660 (used by CD-ROMs) and so on. An example of a virtual filesystem is the /proc filesystem. firewall a machine or a dedicated piece of hardware that in the topology of a local network is the single connection point to the outside network, and which filters, controls the activity on some ports, or makes sure that only some specific interfaces may have access to the outside world. flag is an indicator (usually a bit) that is used to signal some condition to a program. For example, a filesystem has, among others, a flag indicating if it has to be dumped in a backup, so when the flag is active the filesystem gets backed up, and when it’s inactive it doesn’t. focus the state for a window to receive keyboard events (such as key-presses, key-releases and mouse clicks) unless they are trapped by the window manager. 95


Dodatek A. Glossary foreground in shell context, the process in the foreground is the one that is currently running. You have to wait for such a process to finish in order to be able to type commands again. Patrz tez˙ : job, background. Frame Relay Frame Relay is a network technology ideally suited to carrying traffic which is of bursty or sporadic nature. Network costs are reduced by having many Frame Relay customers sharing the same network capacity and relying on them wanting to make use of the network at slightly different times. framebuffer projection of a video card’s RAM into the machine’s address space. This allows for applications to access the video RAM without the chore of having to talk to the card. All high-end graphical workstations use frame buffers. FTP File Transfer Protocol. This is the standard Internet protocol used to transfer files from one machine to another. full-screen This term is used to refer to applications that take up the entire visible area of your display. gateway link connecting two IP networks. GFDL The GNU Free Documentation License. The license which applies to all Mandriva Linux documentation. GIF Graphics Interchange Format. An image file format, widely used on the web. GIF images may be compressed or animated. Due to copyright problems it is a bad idea to use them, so the recommended solution is to replace them as much as possible by the PNG format. globbing in the shell, the ability to group a certain set of filenames with a globbing pattern. Patrz tez˙ : globbing pattern. globbing pattern a string made of normal characters and special characters. Special characters are interpreted and expanded by the shell. GNU GNU’s Not Unix. The GNU project was initiated by Richard Stallman at the beginning of the 1980s, and aimed at developing a free operating system („free” as in „free speech”). Currently, all tools are there, except... the kernel. The GNU project kernel, Hurd, is not rock solid yet. Linux borrows, among others, two things from GNU: its C compiler, gcc, and its license, the GPL. Patrz tez˙ : GPL. GPL General Public License. The license of the GNU/Linux kernel, it goes the opposite way of all proprietary licenses in that it applies no restrictions as to copying, modifying and redistributing the software, as long as the source code is made available. The only restriction is that the persons to whom you redistribute it must also benefit from the same rights. GUI Graphical User Interface. Interface to a computer consisting of windows with menus, buttons, icons and so on. A great majority of users prefer a GUI to a CLI (Command Line Interface) for ease of use, even though the latter is far more versatile. guru An expert. Used to qualify someone particularly skilled, but also of valuable help for others. hardware address This is a number that uniquely identifies a host in a physical network at the media access layer. Examples of this are Ethernet Addresses and AX.25 Addresses. 96


Dodatek A. Glossary hidden file is a file which can’t be „seen” when doing a ls command with no options. Hidden files’ filenames begin with a . and are used to store the user’s personal preferences and configurations for the different programs (s)he uses. For example, bash’s command history is saved into .bash_history, a hidden file. home directory often abbreviated as „home”, this is the name for the personal directory of a given user. Patrz tez˙ : account. host refers to a computer and is commonly used when talking about computers that are connected to a network. HTML HyperText Markup Language. The language used to create web documents. HTTP HyperText Transfer Protocol. The protocol used to connect to web sites and retrieve HTML documents or files. icon is a little drawing (normally sized 16x 16, 32x 32, 48x 48 and sometimes 64x 64 pixels) which in a graphical environment represents a document, a file or a program. IDE Integrated Drive Electronics. The most widely used bus on today’s PC s for hard disks. An IDE bus may contain up to two devices, and the speed of the bus is limited by the device on the bus with the slower command queue (and not the slower transfer rate!). Patrz tez˙ : ATAPI. IP masquerading This is a technique where a firewall is used to hide your computer’s true IP address from the outside. Typically, any outside network connections you make through the firewall will inherit the firewall’s IP address. This is useful in situations where you may have a fast Internet connection with only one IP address but wish to use more than one computer on your internal network. inode entry point leading to the contents of a file on a UNIX®-like filesystem. An inode is identified in a unique way by a number, and contains meta-information about the file it refers to, such as its access times, its type, its size, but not its name! insert mode under Vi or any of its clones, it is the state of the program in which pressing a key will insert that character in the file being edited (except pathological cases like the completion of an abbreviation, right justify at the end of the line, ...). One gets out of it pressing the key Esc (or Ctrl-[). Internet is a huge network that connects computers around the world. IP address is a numeric address consisting of four parts which identifies your computer on the Internet. IP addresses are structured in a hierarchical manner, with top level and national domains, domains, sub-domains and each machine’s personal address. An IP address will look something like 192.168.0.1. A machine’s personal address can be one of two types: static or dynamic. Static IP addresses are addresses which never change, they are permanently assigned.. Dynamic IP addresses mean that an IP address will change with each new connection to the network. Dial-up and cable modem users typically have dynamic IP addresses while some DSL and other high-speed connections provide static IP addresses. IRC Internet Relay Chat. One of the few Internet standards for live speech. It allows for channel creation, private talks and file exchange. It also allows servers to connect to each other, which is why several IRC networks exist today: Undernet, DALnet, EFnet to name a few.

97


Dodatek A. Glossary IRC channels are the „places” inside IRC servers where you can chat with other people. Channels are created in IRC servers and users join those channels so they can communicate with each other. Messages written on one channel are only visible to the people connected to that channel. Two or more users can create a „private” channel so they don’t get disturbed by other users. Channel names begin with a #. ISA Industry Standard Architecture. The very first bus used on PC s, it is slowly being abandoned in favor of the PCI bus. ISA is still commonly found on SCSI cards supplied with scanners, CD writers and some other older hardware. ISDN Integrated Services Digital Network. A set of communication standards for voice, digital network services and video. It has been designed to eventually replace the current phone system, known as PSTN (Public Switched Telephone Network) or POTS (Plain Ole Telephone Service). ISDN is known as a circuit switched data network. ISO International Standards Organization. A group of companies, consultants, universities and other sources which enumerates standards in various disciplines, including computing. The papers describing standards are numbered. The standard number iso9660, for example, describes the file system used on CDROMs. ISO 8859 The ISO 8859 standard includes several 8-bit extensions to the ASCII character set. Especially important is ISO 8859-1, the „Latin Alphabet No. 1”, which has become widely implemented and may already be seen as the de facto standard ASCII replacement. ISO 8859-1 supports the following languages: Afrikaans, Basque, Catalan, Danish, Dutch, English, Faroese, Finnish, French, Galician, German, Icelandic, Irish, Italian, Norwegian, Portuguese, Scottish, Spanish, and Swedish. Note that the ISO 8859-1 characters are also the first 256 characters of ISO 10646 (Unicode). However, it lacks the EURO symbol and does not fully cover Finnish and French. ISO 8859-15 is a modification of ISO 8859-1 to covers these needs. Patrz tez˙ : ASCII. ISP Internet Service Provider. A company which sells Internet access to its customers, either over telephone lines or high-bandwidth circuits such as dedicated T-1 circuits, DSL or cable. JPEG Joint Photographic Experts Group. Another very common image file format. JPEG is mostly suited for compressing real-world scenes, and does not work very well on non-realistic images. job in a shell context, a job is a process running in the background. You can have several jobs in the same shell and control these jobs independently. Patrz tez˙ : foreground, background. kernel is the core of the operating system. The kernel is responsible for allocating resources and separating processes from each other. It handles all of the low-level operations which allow programs to talk directly to the hardware on your computer, manages the buffer cache and so on. kill ring under Emacs, it is the set of text areas cut or copied since the editor was started. The text areas may be recalled to be inserted again, and the structure is ring-like. LAN Local Area Network. Generic name given to a network of machines connected to the same physical wire. launch is the action of invoking, or starting, a program.

98


Dodatek A. Glossary LDP Linux Documentation Project. A nonprofit organization that maintains GNU/Linux documentation. It’s mostly known for documents like HOWTOs, but it also maintains FAQ s, and even a few books. library is a collection of procedures and functions in binary form to be used by programmers in their programs (as long as the library’s license allows them to do so). The program in charge of loading shared libraries at run time is called the dynamic linker. link reference to an inode in a directory, therefore giving a (file) name to the inode. Examples of inodes which don’t have a link (and hence have no name) are: anonymous pipes (as used by the shell), sockets (aka network connections), network devices and so on. linkage last stage of the compile process, consisting of linking together all object files in order to produce an executable file, and matching unresolved symbols with dynamic libraries (unless a static linkage has been requested, in which case the code of these symbols will be included in the executable). Linux is a UNIX®-like operating system which runs on a variety of different computers, and is free for anyone to use and modify. Linux (the kernel) was written by Linus Torvalds. login connection name for a user on a UNIX® system, and the action to connect. lookup table is a table that stores corresponding codes (or tags) and their meaning. It is often a data file used by a program to get further information about a particular item. For example, HardDrake uses such a table to know what a manufacturer’s product code means. This is one line from the table, giving information about item CTL0001 CTL0001 sound sb Creative Labs SB16 \ HAS_OPL3|HAS_MPU401|HAS_DMA16|HAS_JOYSTICK

loopback virtual network interface of a machine to itself, allowing the running programs not to have to take into account the special case where two network entities are in fact the same machine. major number specific to the device class. manual page a small document containing the definitions of a command and its usage, to be consulted with the man command. The first thing one should (learn how to) read when learning about a command you aren’t familiar with. MBR Master Boot Record. Name given to the first sector of a bootable hard drive. The MBR contains the code used to load the operating system into memory or a bootloader (such as LILO), and the partition table of that hard drive. MIME Multipurpose Internet Mail Extensions. A string of the form type/subtype describing the contents of a file attached in an e-mail. This allows MIME -aware mail clients to define actions depending on the type of the file. minor number identifying the specific device we are talking about. MPEG Moving Pictures Experts Group. An ISO committee which generates standards for video and audio compression. MPEG is also the name of their algorithms. Unfortunately, the license for this format is very restrictive, and as a consequence there are still no Open Source MPEG players... 99


Dodatek A. Glossary mount point is the directory where a partition or another device is attached to the GNU/Linux filesystem. For example, your CD-ROM is mounted in the /mnt/cdrom directory, from where you can explore the contents of any mounted CDs. mounted A device is mounted when it is attached to the GNU/Linux filesystem. When you mount a device you can browse its contents. This term is partly obsolete due to the „supermount” feature, so users do not need to manually mount removable media. Patrz tez˙ : mount point. MSS The Maximum Segment Size (MSS) is the largest quantity of data which can be transmitted at one time. If you want to prevent local fragmentation MSS would equal MTU-IP header. MTU The Maximum Transmission Unit (MTU) is a parameter which determines the largest datagram than can be transmitted by an IP interface without it needing to be broken down into smaller units. The MTU should be larger than the largest datagram you wish to transmit un-fragmented. Note, this only prevents fragmentation locally, some other link in the path may have a smaller MTU and the datagram will be fragmented there. Typical values are 1500 bytes for an Ethernet interface, or 576 bytes for a PPP interface. multitasking the ability of an operating system to share CPU time between several processes. At a low level, this is also known as multiprogramming. Switching from one process to another requires that all the current process context be saved and restored when this process runs again. This operation is called a context switch, and on Intel, is done 100 times per second, thereby making it fast enough so that a user has the illusion that the operating system runs several applications at the same time. There are two types of multitasking: in preemptive multitasking the operating system is responsible for taking away the CPU and passing it to another process; cooperative multitasking is where the process itself gives back the CPU. The first variant is obviously the better choice because no program can consume the entire CPU time and block other processes. GNU/Linux performs preemptive multitasking. The policy to select which process should be run, depending on several parameters, is called scheduling. multiuser is used to describe an operating system which allows multiple users to log into and use the system at the exact same time, each being able to do their own work independent of other users. A multitasking operating system is required to provide multiuser support. GNU/Linux is both a multitasking and multiuser operating system, as is any UNIX® system for that matter. named pipe a UNIX® pipe which is linked, as opposed to pipes used in shells. Patrz tez˙ : pipe, link. naming a word commonly used in computing for a method to identify objects. You will often hear of „naming conventions” for files, functions in a program and so on. NCP NetWare Core Protocol. A protocol defined by Novell to access Novell NetWare file and print services. NFS Network File System. A network file system created by Sun Microsystems in order to share files across a network in a transparent way. newsgroups discussion and news areas which can be accessed by a news or USENET client to read and write messages specific to the topic of the newsgroup. For example, the newsgroup alt.os.linux.mandrake is an alternate newsgroup (alt) dealing with the Operating System (OS) GNU/Linux, and specifically, Mandriva Linux (mandrake). Newsgroups are broken down in this fashion to make it easier to search for a particular topic.

100


Dodatek A. Glossary NIC Network Interface Controller. An adapter installed in a computer which provides a physical connection to a network, such as an Ethernet card. NIS Network Information System. NIS was also known as „Yellow Pages”, but British Telecom holds a copyright on this name. NIS is a protocol designed by Sun Microsystems in order to share common information across a NIS domain, which may consist of an entire LAN, or just a part of it. It can export password databases, service databases, groups information and more. null, character the character or byte number 0. It is used to mark the end of a string. object code is the code generated by the compilation process to be linked with other object codes and libraries to form an executable file. Object code is machine readable. Patrz tez˙ : compilation, linkage. on the fly Something is said to be done „on the fly” when it’s done along with something else, without you noticing it or explicitly asking for it. open source is the name given to free source code of a program that is made available to the development community and public at large. The theory behind this is that allowing source code to be used and modified by a broader group of programmers will ultimately produce a more useful product for everyone. Some popular open source programs include Apache, sendmail and GNU/Linux. operating system is the interface between the applications and the underlying hardware. The tasks for any operating system are primarily to manage all of the machine specific resources. On a GNU/Linux system, this is done by the kernel and loadable modules. Other well-known operating systems include Amiga®OS, Mac OS®, FreeBSD®, OS/2®, UNIX®, Windows NT®, and Windows® 9x. owner in the context of users and their files, the owner of a file is the user who created that file. owner group in the context of groups and their files, the owner group of a file is the group to which the user who created that file belongs. PAP Password Authentication Protocol. A protocol used by many ISPs to authenticate their clients. In this scheme, the client (you) sends an identifier/password pair to the server, but none of the information is encrypted. See CHAP for the description of a more secure system. Patrz tez˙ : CHAP. pager program displaying a text file one screen at a time, and making it easy to move back and forth and search for strings in this file. We suggest you to use less. password is a secret word or combination of words or letters which is used to secure something. Passwords are used in conjunction with user logins to multi-user operating systems, web sites, FTP sites, and so forth. Passwords should be hard-to-guess phrases or alphanumeric combinations, and should never be based on common dictionary words. Passwords ensure that other people cannot log into a computer or site with your account. patch, to patch file containing a list of corrections to issue to source code in order to add new features, to remove bugs, or to modify it according to one’s wishes and needs. The action consisting of the application of these corrections to the archive of source code (aka „patching”).

101


Dodatek A. Glossary path is an assignment for files and directories to the filesystem. The different layers of a path are separated by the "slash" or ’/’ character. There are two types of paths on GNU/Linux systems. The relative path is the position of a file or directory in relation to the current directory. The absolute path is the position of a file or directory in relation to the root directory. PCI Peripheral Components Interconnect. A bus created by Intel which today is the standard bus for PC and other architectures. It is the successor to ISA, and it offers numerous services: device identification, configuration information, IRQ sharing, bus mastering and more. PCMCIA Personal Computer Memory Card International Association. More and more commonly called „PC Card” for simplicity reasons, this is the standard for external cards attached to a laptop: modems, hard disks, memory cards, Ethernet cards, and more. The acronym is sometimes humorously expanded to People Cannot Memorize Computer Industry Acronyms... pipe

a special UNIX® file type. One program writes data into the pipe, and another program reads the data at the other end. UNIX® pipes are FIFO s, so the data is read at the other end in the order it was sent. Very widely used with the shell. See also named pipe.

pixmap is an acronym for „pixel map”. It’s another way of referring to bitmap images. plugin add-on program used to display or play some multimedia content found on a web document. It can usually be easily downloaded if your browser is not yet able to display or play that kind of information. PNG Portable Network Graphics. Image file format created mainly for web use, it has been designed as a patentfree replacement for GIF and also has some additional features. PnP Plug’N’Play. First an add-on for ISA in order to add configuration information for devices, it has become a more widespread term which groups all devices able to report their configuration parameters. All PCI devices are Plug’N’Play. POP Post Office Protocol. One common protocol used for retrieving mail from an ISP. See IMAP for an example of another remote-access mail protocol. porting one of two ways to run a program on a system it was not originally intended for. For example, to be able to run a Windows®-native program under GNU/Linux (natively), it must first be ported to GNU/Linux. PPP Point to Point Protocol. This is the protocol used to send data over serial lines. It is commonly used to send IP packets to the Internet, but it can also be used with other protocols such as Novell’s IPX protocol. precedence dictates the order of evaluation of operands in an expression. For example: If you have 4 + 3 * 2 you get 10 as the result, since the multiplication has higher precedence than the addition. If you want to evaluate the addition first, then you have to add parenthesis like this: (4 + 3) * 2. When you do this, you’ll get 14 as the result since the parenthesis have higher precedence than the addition and the multiplication, so the operations in parenthesis get evaluated first. preprocessors are compilation directives which instruct the compiler to replace those directives for code in the programming language used in the source file. Examples of C ’s preprocessors are #include, #define, etc. process in the operating system context, a process is an instance of a program being executed along with its environment. 102


Dodatek A. Glossary prompt in a shell, this is the string before the cursor. When you see it, you can type your commands. protocol Protocols organize the communications between different machines across a network, either using hardware or software. They define the format of transferred data, whether one machine controls another, etc. Many well-known protocols include HTTP, FTP, TCP, and UDP. proxy a machine which sits between a network and the Internet, whose role is to speed up data transfers for the most widely used protocols (for example, HTTP and FTP). It maintains a cache of previous requests, so a machine which makes a request for something which is already cached will receive it quickly, because it will get the information from the local cache. Proxies are very useful on low bandwidth networks (such as modem connections). Sometimes the proxy is the only machine able to access outside the network. pull-down menu is a menu that is „rolled” with a button in some of its corners. When you press that button, the menu „unrolls” itself, showing you the full menu. quota is a method for restricting disk usage and limits for users. Administrators can restrict the size of home directories for a user by setting quota limits on specific file systems. RAID Redundant Array of Independent Disks. A project initiated at the computing science department of Berkeley University, in which the storage of data is spread across an array of disks using different schemes. At first, this was implemented using floppy drives, which is why the acronym originally stood for Redundant Array of Inexpensive Disks. RAM Random Access Memory. Term used to identify a computer’s main memory. The „Random” here means that any part of the memory can be directly accessed. read-only mode for a file means that the file cannot be written to. You can read its contents but you can’t modify them. Patrz tez˙ : read-write mode. read-write mode for a file, it means that the file can be written to. You can read its contents and modify them. Patrz tez˙ : read-only mode. regular expression a powerful theoretical tool which is used to search and match text strings. It lets one specify patterns these strings must obey. Many UNIX® utilities use it: sed, awk, grep, perl and others. RFC Request For Comments. RFC s are the official Internet standard documents, published by the IETF (Internet Engineering Task Force). They describe all protocols, their usage, their requirements and so on. When you want to learn how a protocol works, pick up the corresponding RFC. root

is the superuser of any UNIX® system. Typically root (aka the system administrator) is the person responsible for maintaining and supervising the UNIX® system. This person also has complete access to everything on the system.

root directory This is the top level directory of a filesystem. This directory has no parent directory, thus ’..’ for root points back to itself. The root directory is written as ’/’. root filesystem This is the top level filesystem. This is the filesystem where GNU/Linux mounts its root directory tree. It is necessary for the root filesystem to reside in a partition of its own, as it is the basis for the whole system. It contains the root directory.

103


Dodatek A. Glossary route Is the path that your datagrams take through the network to reach their destination. It is the path between one machine and another in a network. RPM Red Hat Package Manager. A packaging format developed by Red Hat in order to create software packages, it is used in many GNU/Linux distributions, including Mandriva Linux. run level is a configuration of the system software which only allows certain selected processes to exist. Allowed processes are defined, for each runlevel, in the file /etc/inittab. There are eight defined runlevels: 0, 1, 2, 3, 4, 5, 6, S and switching between them can only be achieved by a privileged user by means of executing the commands init and telinit. script shell scripts are sequences of commands to be executed as if they were sequentially entered in the console. shell scripts are UNIX®’s (somewhat) equivalent of DOS batch files. SCSI Small Computers System Interface. A bus with a high throughput designed to allow for several types of peripherals to be connected to it. Unlike IDE, a SCSI bus is not limited by the speed at which the peripherals accept commands. Only high-end machines integrate a SCSI bus directly on the motherboard, therefore most PC s need add-on cards. security levels Mandriva Linux’s unique feature which allows you to set different levels of restriction according to how secure you want to make your system. There are 6 predefined levels ranging from 0 to 5, where 5 is the tightest security. You can also define your own security level. segmentation fault A segmentation fault occurs when a program tries to access memory that is not allocated to it. This generally causes the program to stop immediately. server program or computer that provides a feature or service and awaits the connections from clients to execute their orders or give them the information they ask. In the case of peer to peer systems such as SLIP or PPP, the server is taken to be the end of the link that is called and the end calling is taken to be the client. It is one of the components of a client/ server system. shadow passwords a password management suite on UNIX® systems in which the file containing the encrypted passwords is not world-readable, unlike that usually found with a normal password system. It also offers other features such as password aging. shell The shell is the basic interface to the operating system kernel and provides the command line where users enter commands to run programs and system commands. All shells provide a scripting language which can be used to automate tasks or simplify often-used complex tasks. These shell scripts are similar to batch files from the DOS operating system, but are much more powerful. Some example shells are bash, sh, and tcsh. single user is used to describe a state of an operating system, or even an operating system itself, that only allows a single user to log into and use the system at any time. site dependent means that the information used by programs like imake and make to compile some source file depends on the site, the computer architecture, the computer’s installed libraries, and so on. SMB

104

Server Message Block. Protocol used by Windows® machines (9x or NT ) for file and printer sharing across a network. Patrz tez˙ : CIFS.


Dodatek A. Glossary SMTP Simple Mail Transfer Protocol. This is the common protocol for transferring email. Mail Transfer Agents such as sendmail or postfix use SMTP. They are sometimes called SMTP servers. socket file type corresponding to any network connection. soft links Patrz: symbolic links standard error the file descriptor number 2, opened by every process, used by convention to print error messages to the terminal screen. Patrz tez˙ : standard input, standard output. standard input the file descriptor number 0, opened by every process, used by convention as the file descriptor from which the process receives data. Patrz tez˙ : standard error, standard output. standard output the file descriptor number 1, opened by every process, used by convention as the file descriptor in which the process prints its output. Patrz tez˙ : standard error, standard input. streamer is a device which takes „streams” (not interrupted or divided in shorter chunks) of characters as its input. A typical streamer is a tape drive. SVGA Super Video Graphics Array. The video display standard defined by VESA for the PC architecture. The resolution is 800x 600 x 16 colors. switch Switches are used to change the behavior of programs, and are also called command-line options or arguments. To determine if a program has optional switches which may be used, read the man pages or try to pass the --help switch to the program (i.e.. program --help). symbolic links are special files, containing nothing but a string which references another file. Any access to them is the same as accessing the file whose name is the referenced string, which may or may not exist, and the path to which can be given in a relative or an absolute way. target is the object of compilation, i.e. the binary file to be generated by the compiler. TCP Transmission Control Protocol. This is the most common reliable protocol which uses IP to transfer network packets. TCP adds the necessary checks on top of IP to make sure that packets are delivered. Unlike UDP, TCP works in connected mode, which means that two machines must establish a connection before exchanging data. telnet creates a connection to a remote host and allows you to log into the machine, provided you have an account. Telnet is the most widely-used method of remote logins, however there are better and more secure alternatives, such as ssh. theme-able a graphical application is theme-able if it is able to change its appearance in real time. Many window managers are theme-able. traverse for a directory on a UNIX® system, this means that the user is allowed to go through this directory, and possibly to directories under it. This requires that the user has the execute permission on this directory. 105


Dodatek A. Glossary URL Uniform Resource Locator. A string with a special format used to identify a resource on the Internet in a unique way. The resource can be a file, a server or other item. The syntax for a URL is protocol://server.name[:port]/path/to/resource. When only a machine name is given and the protocol is http://, it defaults to retrieving the file index. html on the server. username is a name (or more generally a word) which identifies a user on a system. Each username is attached to a unique and single UID (user ID) Patrz tez˙ : login. variables are strings which are used in Makefile files to be replaced by their value each time they appear. Usually they are set at the beginning of the Makefile. They are used to simplify Makefile and source files tree management. More generally, variables in programming are words that refer to other entities (numbers, strings, tables, etc.) that are likely to vary while the program is executing. verbose For commands, the verbose mode means that the command reports to standard (or possibly error) output all the actions it performs and the results of those actions. Sometimes, commands have a way to define the „verbosity level”, which means that the amount of information that the command will report can be controlled. VESA Video Electronics Standards Association. An industry standards association aimed at the PC architecture. For example, it is the author of the SVGA standard. virtual console is the name given to what used to be called terminals. On GNU/Linux systems, you have what are called virtual consoles which enable you to use one screen or monitor for many independently running sessions. By default, you have six virtual consoles that can be reached by pressing ALT-F1 through ALT-F6. There is a seventh virtual console, ALT-F7, which will permit you to reach a running X Window System. In X, you can reach the text console by pressing CTRL-ALT-F1 through CTRL-ALT-F6. Patrz tez˙ : console. virtual desktops In the X Window System, the window manager may provide you several desktops. This handy feature allows you to organize your windows, avoiding the problem of having dozens of them stacked on top of each other. It works as if you had several screens. You can switch from one virtual desktop to another in a manner which depends on the window manager you’re using. Patrz tez˙ : window manager, desktop. WAN Wide Area Network. This network, although similar to a LAN, connects computers on a network which is not physically connected to the same wires and are separated by a greater distance. wildcard The ’*’ and ’?’ characters are used as wildcard characters and can represent anything. The ’*’ represents any number of characters, including no characters. The ’?’ represents exactly one character. Wildcards are often used in regular expressions. window In networking, the window is the largest amount of data that the receiving end can accept at a given point in time. window manager the program responsible for the „look and feel” of a graphical environment, dealing with window bars, frames, buttons, root menus, and some keyboard shortcuts. Without it, it would be hard or impossible to have virtual desktops, to resize windows on the fly, to move them around, ... workspace switcher a little applet that allows you to switch between the available virtual desktops. Patrz tez˙ : virtual desktops.

106


Indeks .bashrc, 48 s´ rodowisko procesu, 36 zmienna, 12 Ania Pingwin, 5 atrybut plik, 49 Borges, ?? DocBook, ?? dokumentacja Mandriva Linux, 3 dowiazanie ˛ symboliczne, 31 sztywne, 32 dyski, 17 edytory tekstów Emacs, 57 vi, 60 FHS, 21 file trybu blokowego, 27 GID, 8 group zmiana, 49 grupa, 7 hasło, 8 home partycja, 18 IDE urzadzenia, ˛ 19 katalog kopiowanie, 49 przenoszenie, 48 tworzenie, 47 usuwanie, 47 zmiana nazw, 48 Klub Mandriva, 1 kolejno´sc´ zestawienia, 51 konsola, 8 konto, 7 listy dyskusyjne Mandriva Linux, 1 Mandriva Expert, 1 Mandriva Linux security, 1 moduły, 38 narz˛edzia obsługa plików, 47 oznaczenie polecenie, 4 Paczki, 2 pakiety zarzadzanie, ˛ 87 pami˛ec´ RAM, 18 partycja wymiany, 17 partycje, 17, 41 logiczne, 19 podstawowe, 19

rozszerzone, 19 PID, 11 pierwszy nadrz˛edny, 19 pierwszy podrz˛edny slave, 19 Piotr Pingwin, 5 plik atrybut, 32, 49 gniazdo, 28 kopiowanie, 49 odno´snik, 27, 28 przenoszenie, 48 szukaj, 70 trybu blokowego, 31 trybu znakowego, 27, 31 tworzenie, 47 usuwanie, 47 zmiana nazwy, 48 polecenia at, 73 bzip2, 75 cat, 13 cd, 12 chgrp, 49 chmod, 50 chown, 49 cp, 49 crontab, 72 grep, 66 gzip, 75 init, 81 kill, killall, 78 less, 14, 52 ls, 14 mkdir, 47 mount, 43 mv, 48 ps, 77 pwd, 12 rm, 47 rmdir, 48 scp, 86 sed, 52 ssh, 85 ssh-add, 86 ssh-keygen, 85 szukaj, 70 tar, 73 touch, 47 umount, 43 urpmi, 87 wc, 52 potok, 52 anonimowy, 29 nazwany, 29 plik, 28 powłoka, 11, 47 znaki wieloznaczne, 51 poziom uruchamiania, 81

107


prawa dost˛epu, 50 proces, 11, 35, 54 procesy, 77 programowanie, 2 programy ImageMagick, 53 terminale, 53 przekierowanie, 52 root katalog, 21, 36 partycja, 17 ˙ uzytkownik, 8 rozwój, 2 SCSI dyski, 19 sektor, 17 Sklep Mandriva, 2 Soundblaster, 19 ssh klient, 85 klucz, 85 serwer, 85 standardowe wej´scie, 51 wyj´scie, 51 standardowy bład, ˛ 51 swap partycja, 18 rozmiar, 18 udev, 20 UID, 8 umi˛edzynarodowienie, 2 UNIX®, 7 usr partycja, 18 ˙ uzytkownicy przykładowi, 5 ˙ uzytkownika, 7 warto´sci dyskretne, 51 wieloznaczny znak, 51 wiersz polecen´ narz˛edzia, 65 uzupełnianie, 53 wprowadzenie, 47 wirus, 11 w˛ezeł, 28 tablica, 28 wła´sciciel, 49 zmiana, 49 zdalny dost˛ep, 85 automatyzacja, 85 znak zach˛etny, 8 znak zach˛ety, 11 znaki specjalne, 53 wieloznaczne, 51 znaki czasowe

108

atime, 47 ctime, 47 mtime, 47


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.