Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00538 009668 10437430 na godz. na dobę w sumie
Szkoła systemu Linux - książka
Szkoła systemu Linux - książka
Autor: , , Liczba stron: 328
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-0767-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> linux
Porównaj ceny (książka, ebook, audiobook).

Zaprzyjaźnij się z systemem Linux!

Coraz większą popularność w świecie oprogramowania zdobywają produkty typu open source z systemem operacyjnym Linux na czele. Dlaczego i Ty powinieneś dołączyć do wciąż rosnącej społeczności użytkowników systemów z tej rodziny? Ponieważ zapewniają bezpieczne, stabilne oraz darmowe środowisko pracy. Dzięki wielu dystrybucjom systemu Linux zarówno początkujący, jak i zaawansowani użytkownicy mogą wybrać produkt dostosowany do swych potrzeb.

Książka 'Szkoła systemu Linux' szybko wprowadzi Cię w świat oprogramowania typu open source. Poznasz liczne programy, które umożliwiają między innymi zarządzanie danymi, pisanie i drukowanie dokumentów czy korzystanie z sieci. Nauczysz się używać środowiska graficznego oraz wiersza poleceń. Dowiesz się, jak działają systemy operacyjne, w tym Linux. Na płycie dołączonej do książki znajduje się jedna z dystrybucji systemu Linux, cdlinux.pl, którą możesz uruchomić bezpośrednio z napędu CD-ROM. Dzięki temu będziesz mógł szybko i bezpiecznie wykonać opisane ćwiczenia oraz utrwalić nabytą wiedzę.

Poznaj system Linux dzięki 40 prostym lekcjom.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Szko‡a systemu Linux Autorzy: Jerzy Kaczmarek, Agnieszka Landowska, Micha‡ Wr(cid:243)bel ISBN: 83-246-0767-6 Format: B5, stron: 320 Coraz wiŒksz„ popularno(cid:156)(cid:230) w (cid:156)wiecie oprogramowania zdobywaj„ produkty typu open source z systemem operacyjnym Linux na czele. Dlaczego i Ty powiniene(cid:156) do‡„czy(cid:230) do wci„¿ rosn„cej spo‡eczno(cid:156)ci u¿ytkownik(cid:243)w system(cid:243)w z tej rodziny? Poniewa¿ zapewniaj„ bezpieczne, stabilne oraz darmowe (cid:156)rodowisko pracy. DziŒki wielu dystrybucjom systemu Linux zar(cid:243)wno pocz„tkuj„cy, jak i zaawansowani u¿ytkownicy mog„ wybra(cid:230) produkt dostosowany do swych potrzeb. Ksi„¿ka (cid:132)Szko‡a systemu Linux(cid:148) szybko wprowadzi CiŒ w (cid:156)wiat oprogramowania typu open source. Poznasz liczne programy, kt(cid:243)re umo¿liwiaj„ miŒdzy innymi zarz„dzanie danymi, pisanie i drukowanie dokument(cid:243)w czy korzystanie z sieci. Nauczysz siŒ u¿ywa(cid:230) (cid:156)rodowiska graficznego oraz wiersza poleceæ. Dowiesz siŒ, jak dzia‡aj„ systemy operacyjne, w tym Linux. Na p‡ycie do‡„czonej do ksi„¿ki znajduje siŒ jedna z dystrybucji systemu Linux, cdlinux.pl, kt(cid:243)r„ mo¿esz uruchomi(cid:230) bezpo(cid:156)rednio z napŒdu CD-ROM. DziŒki temu bŒdziesz m(cid:243)g‡ szybko i bezpiecznie wykona(cid:230) opisane (cid:230)wiczenia oraz utrwali(cid:230) nabyt„ wiedzŒ. (cid:149) Uruchamianie systemu Linux (cid:149) Korzystanie z program(cid:243)w biurowych (cid:149) Praca w (cid:156)rodowisku graficznym (cid:149) Korzystanie z wiersza poleceæ (cid:149) Aplikacje zwi„zane z internetem (cid:149) System plik(cid:243)w i zarz„dzanie danymi (cid:149) Programy multimedialne (cid:149) Systemy zarz„dzania tre(cid:156)ci„ (Joomla! i Mambo) (cid:149) Zarz„dzanie dyskami (cid:149) Instalowanie systemu Linux Poznaj system Linux dziŒki 40 prostym lekcjom Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treści Wstęp .............................................................................................. 7 Rozdział 1. Wprowadzenie do systemów operacyjnych ...................................... 11 Lekcja 1. Budowa systemu komputerowego ................................................................... 11 Lekcja 2. Czym jest system operacyjny .......................................................................... 15 Lekcja 3. Różnorodność systemów operacyjnych ........................................................... 18 Lekcja 4. Cechy dystrybucji cdlinux.pl ........................................................................... 22 Rozdział 2. Rozpoczęcie pracy z systemem Linux .............................................. 27 Lekcja 5. Przygotowanie komputera do pracy z cdlinux.pl ............................................ 28 Lekcja 6. Uruchomienie dystrybucji cdlinux.pl .............................................................. 31 Lekcja 7. Uruchomienie środowiska graficznego ........................................................... 35 Lekcja 8. Praca ze środowiskiem graficznym ................................................................. 39 Uruchomienie programu i posługiwanie się oknem .................................................. 42 Praca z wieloma oknami i pulpitami ......................................................................... 43 Lekcja 9. Ręczna konfiguracja komputera ...................................................................... 45 Lekcja 10. Korzystanie z przeglądarki ............................................................................ 49 Otwarcie strony o znanym adresie ............................................................................ 52 Poszukiwanie informacji w sieci ............................................................................... 53 Lekcja 11. Konfiguracja i korzystanie z konta pocztowego ............................................ 55 Uruchomienie programu do obsługi poczty .............................................................. 57 Konfiguracja konta pocztowego ................................................................................ 57 Korzystanie z poczty ................................................................................................. 61 Wysyłanie listu .......................................................................................................... 62 Odbieranie poczty przychodzącej ............................................................................. 64 Usuwanie wiadomości z serwera pocztowego .......................................................... 65 Lekcja 12. Korzystanie z komunikatorów internetowych ............................................... 68 Konfiguracja komunikatora Kadu ............................................................................. 69 Rozmowa w programie Kadu .................................................................................... 71 Jabber — program Psi ............................................................................................... 74 Rozdział 3. Zarządzanie danymi ........................................................................ 79 Lekcja 13. System plików ............................................................................................... 79 Przeglądanie katalogów i podgląd plików w programie mc ..................................... 84 Kopiowanie, przenoszenie i usuwanie plików .......................................................... 85 Praca z grupą plików ................................................................................................. 86 Wyszukiwanie plików ............................................................................................... 87 Lekcja 14. Montowanie nośników danych ...................................................................... 88 Montowanie nośników danych .................................................................................. 91 4 Szkoła systemu Linux Lekcja 15. Program do zarządzania plikami ................................................................... 93 Poruszanie się po drzewie katalogów ........................................................................ 94 Uruchamianie programów ......................................................................................... 95 Operacje na plikach i katalogach .............................................................................. 96 Organizacja pulpitu ................................................................................................... 98 Lekcja 16. Zapisywanie konfiguracji ............................................................................ 101 Zapis ustawień konfiguracyjnych ............................................................................ 103 Zmiany w zapisywanych ustawieniach ................................................................... 105 Wczytywanie zapisanych ustawień ......................................................................... 109 Rozdział 4. Biurowe i multimedialne programy użytkowe ................................. 111 Lekcja 17. Edytor tekstu OpenOffice.org Writer .......................................................... 112 Tworzenie prostego dokumentu .............................................................................. 113 Praca z plikiem zapisanym na dysku ....................................................................... 115 Formatowanie dokumentu ....................................................................................... 116 Zmiana formatu akapitu .......................................................................................... 117 Zmiana treści dokumentu ........................................................................................ 118 Dodawanie rysunków w dokumencie ..................................................................... 119 Konfigurowanie pasków narzędzi ........................................................................... 121 Lekcja 18. Drukowanie dokumentów ............................................................................ 122 Dodawanie drukarek ............................................................................................... 123 Drukowanie dokumentu w edytorze tekstu ............................................................. 124 Lekcja 19. Arkusz kalkulacyjny .................................................................................... 125 Tworzenie prostych tabel z obliczeniami ................................................................ 127 Podgląd wydruku i formatowanie wyglądu ............................................................ 129 Modyfikacja istniejącego arkusza ........................................................................... 131 Tworzenie wykresu ................................................................................................. 132 Lekcja 20. Program do tworzenia prezentacji ............................................................... 136 Wykonanie prezentacji ............................................................................................ 138 Formatowanie prezentacji ....................................................................................... 139 Lekcja 21. Programy do odtwarzania muzyki i filmów ................................................ 141 Program do odtwarzania muzyki ............................................................................. 142 Sterowanie multimedialnymi urządzeniami zewnętrznymi .................................... 144 Odtwarzanie pliku dźwiękowego ............................................................................ 145 Tworzenie listy odtwarzania ................................................................................... 147 Odtwarzanie muzyki z płyty Audio CD .................................................................. 148 Program do odtwarzania filmów ............................................................................. 149 Odtwarzanie pliku wideo ........................................................................................ 151 Odtwarzanie filmu z płyty DVD ............................................................................. 152 Lekcja 22. Programy do przeglądania i tworzenia grafiki ............................................. 153 Pobieranie zdjęć z aparatu cyfrowego ..................................................................... 154 Przeglądanie, obracanie i usuwanie zdjęć ............................................................... 156 Obróbka zdjęcia cyfrowego .................................................................................... 157 Wykonywanie zrzutów ekranu ................................................................................ 160 Rozdział 5. Praca z wierszem poleceń ............................................................. 163 Lekcja 23. Działanie wiersza poleceń ........................................................................... 164 Dodanie nowego użytkownika ................................................................................ 165 Praca z wieloma terminalami .................................................................................. 167 Lekcja 24. Organizacja pracy z wierszem poleceń ........................................................ 168 Uzyskanie informacji o użytkownikach .................................................................. 169 Wyświetlanie komunikatów na ekranie .................................................................. 169 Grupowanie poleceń ................................................................................................ 170 Spis treści 5 Uzupełnianie poleceń, ścieżek dostępu i nazw plików ........................................... 172 Historia poleceń ....................................................................................................... 173 Uzyskanie informacji o poleceniach ....................................................................... 174 Lekcja 25. Polecenia do zarządzania plikami ................................................................ 176 Wyświetlanie zawartości katalogu .......................................................................... 179 Zmiana praw dostępu .............................................................................................. 180 Tworzenie katalogów i plików ................................................................................ 182 Edycja pliku tekstowego ......................................................................................... 184 Kopiowanie oraz przenoszenie plików i katalogów ................................................ 185 Usuwanie plików i katalogów ................................................................................. 187 Lekcja 26. Kompresja i archiwizacja ............................................................................ 188 Kompresja plików ................................................................................................... 190 Dekompresja plików ............................................................................................... 191 Tworzenie kopii zapasowych .................................................................................. 191 Wybór plików do archiwizacji ................................................................................ 193 Rozdział 6. Zastosowania sieci Internet ......................................................... 195 Lekcja 27. Udostępnianie danych w sieci ........................................................................... 195 Udostępnianie stron internetowych ......................................................................... 197 Uruchomienie serwera Apache ............................................................................... 198 Zmiany konfiguracji serwera Apache ..................................................................... 200 Lekcja 28. Wymiana plików w sieci Internet ................................................................ 201 Uruchomienie serwera ssh w cdlinux.pl ................................................................. 202 Kopiowanie plików z wykorzystaniem SCP ........................................................... 203 Kopiowanie plików z wykorzystaniem FTP ........................................................... 204 Kopiowanie plików w trybie graficznym ................................................................ 206 Lekcja 29. Praca na zdalnych serwerach .......................................................................... 208 Praca zdalna w trybie tekstowym ............................................................................ 209 Praca zdalna w trybie graficznym ........................................................................... 210 Możliwości wykorzystania sieci Internet ................................................................ 212 Rozdział 7. Zarządzanie systemem z wiersza poleceń ...................................... 215 Lekcja 30. Polecenia do zarządzania procesami ........................................................... 216 Zarządzanie procesami ............................................................................................ 220 Zarządzanie wieloma procesami ............................................................................. 221 Standardowe strumienie procesów .......................................................................... 223 Mechanizm potoku .................................................................................................. 225 Lekcja 31. Przetwarzanie danych tekstowych ............................................................... 226 Poszukiwanie wierszy zawierających wzorzec ....................................................... 227 Przetwarzanie danych tekstowych .......................................................................... 229 Kontrola danych tekstowych ................................................................................... 232 Lekcja 32. Definiowanie środowiska pracy użytkownika ............................................. 234 Definicja synonimu polecenia ................................................................................. 234 Zmienne powłoki ..................................................................................................... 235 Definiowanie znaku zachęty ................................................................................... 236 Zmiany w środowisku pracy ................................................................................... 237 Rozdział 8. Zarządzanie systemem za pomocą skryptów ................................. 241 Lekcja 33. Pisanie i uruchamianie skryptów ................................................................. 242 Pierwszy skrypt ....................................................................................................... 242 Przykład skryptu do archiwizacji ............................................................................ 243 Korzystanie ze zmiennych w skryptach .................................................................. 244 Przekazywanie argumentów z wiersza poleceń ...................................................... 246 Skrypty systemu Linux ............................................................................................ 248 6 Szkoła systemu Linux Lekcja 34. Programowanie w języku powłoki .............................................................. 250 Instrukcja warunkowa if .......................................................................................... 251 Instrukcja warunkowa case ..................................................................................... 254 Pętle while i until ..................................................................................................... 255 Użycie pętli for ........................................................................................................ 257 Definiowanie funkcji ............................................................................................... 258 Sprawdzanie poprawności parametrów wywołania ................................................ 258 Zasady pisania skryptów ......................................................................................... 261 Rozdział 9. Zarządzanie dyskami .................................................................... 265 Lekcja 35. Działanie dysków twardych ......................................................................... 265 Budowa dysku twardego ......................................................................................... 266 Uruchamianie systemu operacyjnego ...................................................................... 268 System plików ......................................................................................................... 270 Montowanie nośników trwałych ............................................................................. 271 Lekcja 36. Partycje dysków twardych ........................................................................... 273 Podział dysku twardego na partycje ........................................................................ 275 Tworzenie systemu plików na partycji .................................................................... 279 Zmiana rozmiaru partycji FAT/ext ......................................................................... 280 Zmiana rozmiaru NTFS .......................................................................................... 282 Lekcja 37. Tworzenie pamięci wymiany ....................................................................... 285 Tworzenie pliku wymiany ....................................................................................... 287 Tworzenie partycji wymiany ................................................................................... 289 Rozdział 10. Zaawansowane wykorzystanie cdlinux.pl ...................................... 293 Lekcja 38. Instalacja dystrybucji cdlinux.pl na dysku twardym ................................... 294 Instalacja cdlinux.pl na dysku ................................................................................. 295 Praca z systemem Linux zainstalowanym na dysku ............................................... 300 Lekcja 39. Instalacja dodatkowego oprogramowania ................................................... 301 Lekcja 40. Tworzenie własnej płyty cdlinux.pl ............................................................. 309 Skorowidz ................................................................................... 313 Rozdział 7. Zarządzanie systemem z wiersza poleceń Najważniejszym zadaniem każdego systemu operacyjnego jest uruchamianie programów użytkowych. Na komputerze można uruchamiać różnego rodzaju programy. Najczę- ściej są to aplikacje, takie jak edytory, programy do odtwarzania plików multimedial- nych, przeglądarki internetowe czy gry komputerowe. Inne specjalizowane programy mogą umożliwiać zarządzanie bazami danych czy projektowanie domów. Programy tego typu nie są bezpośrednio związane z pracą systemu operacyjnego — są jedynie przez niego uruchamiane, kontrolowane i zarządzane. Istnieje również liczny zbiór programów przeznaczonych do kontroli działania sys- temu operacyjnego oraz do sterowania i zarządzania nim. Programy te służą do kon- taktów użytkownika z systemem, do zarządzania plikami, procesami, pamięcią ope- racyjną, dyskami i do kontroli funkcji systemu. Stanowią one integralną część systemu operacyjnego i dlatego znajdują się w każdej dystrybucji systemu Linux. Wykony- walne programy do zarządzania systemem operacyjnym są w systemie Linux uru- chamiane z wiersza poleceń i dlatego często nazywa się je również poleceniami powłoki. W wierszu poleceń można wydać wiele rozkazów do zarządzania procesami, pli- kami i innymi mechanizmami w systemie operacyjnym. Programy do zarządzania systemem można przydzielić, w zależności od ich przeznaczenia, do następujących kategorii: (cid:141) zarządzanie użytkownikami: passwd, adduser, su, (cid:141) zarządzanie procesami: ps, kill, bg, fg, (cid:141) przetwarzanie tekstu: grep, egrep, wc, cut, diff, tr, sed, (cid:141) definiowanie środowiska pracy: alias, unalias, umask, (cid:141) operacje na plikach: chmod, touch, find, (cid:141) zarządzanie systemem plików: cd, cp, ls, mv, rm, mkdir. 216 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń Nazwy podstawowych programów do zarządzania i komunikacji z systemem opera- cyjnym są zawsze takie same we wszystkich systemach operacyjnych typu Linux lub Unix. Ich możliwości mogą być jednak różne w zależności od ich wersji. Programy do zarządzania systemem operacyjnym znajdują się między innymi w ka- talogu /sbin, jednak aby je uruchomić, wystarczy w wierszu poleceń wpisać ich nazwę, bez pełnej ścieżki dostępu. Jest to możliwe dzięki ustawieniom środowiska pracy użytkownika, wśród których znajduje się zmienna wyznaczająca katalogi poszukiwa- nia programów. Domyślnie w tej zmiennej znajduje się również katalog /bin. Dzięki temu z punktu widzenia użytkownika programy do zarządzania systemem operacyj- nym mogą być traktowane jako polecenia powłoki, ponieważ są przez nią poprawnie interpretowane i wykonywane. Dzięki programom do zarządzania systemem operacyjnym użytkownik może kontro- lować system operacyjny i podejmować decyzje o stanie procesów, priorytetach ich uruchamiania. Ma także możliwość rozwiązywania problemów, jakie mogą się pojawić w trakcie pracy systemu operacyjnego. Lekcja 30. Polecenia do zarządzania procesami Mechanizmy tworzenia procesów i zarządzania nimi należą do złożonych i trudnych zagadnień w systemach operacyjnych. Ponieważ czasami dochodzi do zawieszenia procesów w wyniku niepoprawnych działań użytkownika lub błędów w programach, dlatego ważne jest zrozumienie, jak procesy powstają i działają. Zarządzanie procesami w systemach operacyjnych bazuje na znanych z codzienności metodach organizacji i zarządzania działaniem. Człowiek organizuje swoją pracę in- tuicyjnie, rozróżniając rzeczy ważne i pilne oraz te mniej istotne. Jednak w przypadku zarządzania dokonywanego przez system komputerowy brakuje intuicji i inteligencji człowieka, dlatego programy do zarządzania procesami są bardzo złożone. Jedną z analogii, która dobrze ilustruje zagadnienie zarządzania procesami, może być czynność przygotowania posiłku. Żeby zrobić obiad, trzeba wykonać wiele czynności, takich jak przygotowanie produktów, ich mycie, krojenie, gotowanie czy zmywanie naczyń. Kolejność tych czynności nie zawsze może być dowolna. Najpierw trzeba marchewkę obrać, a następnie dodać do zupy. Podobnie w systemie operacyjnym, żeby wykonać pewne działanie, np. przetwarzanie danych, konieczne jest wykonanie wielu czynności: otwarcie pliku, jego odczytanie, przekształcenie danych i zapis do pliku. Za te czynności mogą odpowiadać różne, niezależne procesy i podobnie jak w przy- padku gotowania pewne czynności muszą zostać wykonane w określonej kolejności. W systemach operacyjnych za kolejność wykonywania procesów odpowiadają wy- specjalizowane programy kolejkowania i szeregowania zadań. Lekcja 30. Polecenia do zarządzania procesami 217 Jeżeli kucharz jest jeden, to musi dzielić swój czas pomiędzy różne czynności. W cza- sie operacji krojenia, gdy występuje zdarzenie wymagające interwencji kucharza, np. kipi zupa, trzeba przerwać krojenie i zamieszać w garnku. Jednak częste przełączanie się między czynnościami powoduje, że czas ich realizacji znacznie się wydłuża. Gdy czas przełączania się między czynnościami przekracza czas poświęcany na realizację zadań, mamy do czynienia ze zjawiskiem nazywanym w systemach operacyjnych szamotaniem. Czasem lepiej zakończyć jeden proces, aby rozpocząć drugi. W syste- mach komputerowych odpowiednikiem kucharza jest procesor. To on odpowiada za realizację procesów, pomiędzy którymi jest przełączany. Jednym z mechanizmów szeregowania zadań jest przydzielanie kwantu (przedziału) czasu na realizację danego procesu. Innym mechanizmem szeregowania zadań jest nadawanie procesom priory- tetów, oznaczających ich ważność. Podobnie jak w przypadku gotowania — kipiąca zupa przerywa inne czynności, np. krojenie. W systemach operacyjnych np. czynności zarządzania procesami mają wyższy priorytet niż uruchomienie gry dla użytkownika. Złożone algorytmy kolejkowania i zarządzania zadaniami zmierzają do eliminacji zja- wiska szamotania. Warto sobie uświadomić, że przy wszystkich procesach przygotowania potraw korzy- stamy z tych samych zasobów: kuchni, mebli, oświetlenia, noży, śmietnika itp. Zasoby te są współdzielone, tak jak kucharz, i również są przełączane pomiędzy procesami. W systemie komputerowym współdzielony jest procesor, ale także pamięć operacyjna, zasoby dyskowe i inne urządzenia. Należy podkreślić, że w systemie operacyjnym w każdej chwili wykonywany jest tylko jeden proces, który na ten czas otrzymuje wyłączny dostęp do wszystkich potrzebnych mu zasobów. Po zakończeniu kwantu czasu procesor i inne zasoby są przekazywane do dyspozycji kolejnego procesu. W przypadku gdy komputer ma jeden procesor, czynności zarządzania procesami przebiegają inaczej niż w systemach wieloprocesorowych. Podobnie jak w przysłowiu: „gdzie kucharek sześć, tam nie ma co jeść”, jeżeli procesorów jest wiele, to mamy do czynienia z problemami współbieżności, współdzielenia zasobów i rozproszenia prze- twarzania. Obsługa komputerów z wieloma procesorami przez system operacyjny jest bardziej skomplikowana, jednak z punktu widzenia użytkownika takie maszyny są bar- dziej wydajne i pozwalają na szybszą realizację złożonych i pracochłonnych zadań. Kończąc te porównania, warto zdawać sobie sprawę, że podstawy algorytmów do za- rządzania procesami w systemach operacyjnych mają swoje źródła w zarządzaniu czyn- nościami życia codziennego. W systemie operacyjnym może pracować jednocześnie wielu użytkowników, którzy uruchamiają wiele różnych programów. Każdy z programów stanowi jeden lub więcej procesów. Proces może działać w trybie użytkownika (ang. user mode) lub trybie jądra (ang. kernel mode), z których ten ostatni ma wyższy poziom uprzywilejowania w korzystaniu z czasu procesora oraz dostępu do pamięci. Każdy nowy proces ma przypisany unikalny numer identyfikacyjny PID (ang. Process IDentificator). Numery PID są nadawane w kolejności tworzenia procesów. Informacje o procesie zapisane są w specjalnej strukturze nazywanej u-obszarem. Jest to zbiór danych zawierający takie informacje, jak numer identyfikacyjny UID (ang. User ID) osoby, która proces utworzyła, dane o terminalu użytkownika, bieżącym katalogu, plikach dostępnych dla procesu i wiele innych. 218 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń Proces może znajdować się w następujących stanach: nowy, gotowy do uruchomienia, aktywny (gdy przydzielono mu procesor) oraz zatrzymany, gdy czeka na wystąpienie jakiegoś zdarzenia, na przykład na zakończenie działania innego procesu. Dane o wszyst- kich uruchomionych w systemie procesach są zapisywane w specjalnej tablicy proce- sów. Znajdują się w niej takie informacje, jak identyfikator właściciela, rozmiar pa- mięci niezbędnej dla procesu oraz jego priorytet i stan. Na podstawie tych danych system operacyjny podejmuje decyzję, który proces zostanie uruchomiony jako na- stępny. Jeżeli proces nie zakończył się w ustalonym kwancie czasu, to zostanie prze- rwany, zatrzymany i umieszczony w kolejce procesów oczekujących na wykonanie. Mechanizm powstawania nowego procesu przebiega zawsze według pewnej procedury. Nowy proces może powstać jedynie poprzez powielenie innego, już istniejącego proce- su. Powielany proces nazywany jest macierzystym (a potocznie rodzicem), natomiast nowo powstały proces — potomnym (potocznie dzieckiem). Na rysunku 30.1 przedstawiono mechanizm powielenia i tworzenia procesów. Rysunek 30.1. Powstawanie nowego procesu uruchomienia programu Proces macierzysty wykonuje operację powielenia (ang. fork) i powstaje proces potom- ny. Nowy proces otrzymuje własny identyfikator PID, a także zapamiętuje identyfikator rodzica PPID (ang. Parent PID). Proces macierzysty zostaje zawieszony i czeka (ang. wait) na zakończenie procesu potomnego. W procesie potomnym dochodzi do wyko- nania (ang. exec) zawartego w nim kodu programu. Po zakończeniu (ang. exit) proces Lekcja 30. Polecenia do zarządzania procesami 219 potomny przekazuje do rodzica informację o prawidłowości wykonania, tak zwany kod wyjścia. Przy poprawnym wykonaniu procesu potomnego kod wyjścia jest liczbą zero, a gdy proces zakończy się niepoprawnie, jest to liczba niezerowa. Kody wyjścia można wykorzystywać do sterowania procesami i wysyłania komunikatów do użyt- kownika o nieprawidłowościach w wykonywanych programach. Końcowym stanem procesu potomnego jest stan zwany zombie, który oznacza, że proces już zakończył działanie, ale jeszcze czeka, aby proces macierzysty odebrał stworzone przez niego dane i kod wyjścia. Przodkiem wszystkich procesów w systemie jest proces o nazwie init i identyfikato- rze PID równym 1, który jest tworzony w momencie startu systemu operacyjnego. Następnie uruchamiane są procesy obsługi sprzętu, a potem procesy logowania i identy- fikacji użytkownika. Procesy te umożliwiają użytkownikowi zalogowanie się do sys- temu operacyjnego. Po zakończeniu tej operacji dla użytkownika jest uruchamiany proces powłoki. Proces pierwszej powłoki jest niezwykle ważny dla użytkownika, ponieważ każdy uruchamiany przez niego program może zaistnieć w systemie jedynie w wyniku jej powielenia. Powłoka staje się procesem macierzystym dla innych proce- sów użytkownika. Tak jak dziecko dziedziczy pewne cechy rodzica, tak proces potomny dziedziczy ce- chy procesu macierzystego. Powielona powłoka przenosi do nowego procesu dane o użytkowniku, jego terminalu, prawa dostępu do otwartych plików, informacje o śro- dowisku pracy, zdefiniowane aliasy i inne. Uruchamianie programu poprzez powłokę przypomina nieco inżynierię genetyczną, gdy do komórki macierzystej wprowadzamy dane zmieniające nieznacznie wygląd organizmu. Nowy organizm będzie miał wiele cech rodzica, ale też własne nowe cechy. Powielony proces powłoki staje się jakby komórką macierzystą, do której wprowadzamy dodatkowe wiersze kodu programu, który chcemy uruchomić. Tą czynność realizują funkcje fork i exec, czyli powiel i wykonaj. Zarządzanie procesami przez użytkownika polega nie tylko na ich tworzeniu, ale również na ich zatrzymywaniu, uruchamianiu w określonym czasie i z określonym priorytetem czy usuwaniu. Wśród poleceń i mechanizmów do zarządzania procesami można wyróżnić: (cid:141) ps — wyświetlanie listy uruchomionych procesów, (cid:141) kill — usuwanie procesów, (cid:141) jobs — wyświetlanie listy procesów wykonywanych w tle, (cid:141) — uruchamianie procesu w tle, (cid:141) | — przekazywanie danych z jednego do drugiego procesu, (cid:141) nice — uruchamianie procesu z niskim priorytetem, (cid:141) nohup — uruchamianie procesu, który będzie działał także po zakończeniu sesji przez użytkownika. 220 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń Zarządzanie procesami Użytkownik może kontrolować procesy, które zostały przez niego uruchomione. Staje się to konieczne w sytuacji, gdy dochodzi do zawieszenia procesu lub gdy użytkownik nie wie, jak program zakończyć. Zatrzymanie jednego z procesów może być wyni- kiem błędu programu lub pomyłki użytkownika, jednak nie oznacza to, że system operacyjny przestał funkcjonować poprawnie. System operacyjny Linux zawiesza się niezwykle rzadko. Proces może być zawieszony, czyli czekać na zakończenie działa- nia innego procesu lub na wystąpienie jakiegoś zdarzenia. Jednak w tym samym cza- sie pozostali użytkownicy systemu mogą bez przeszkód realizować własne zadania. W sytuacji zawieszenia procesu można za pomocą mechanizmów systemu operacyjne- go wyeliminować go i powrócić do normalnej pracy. W celu poznania mechanizmów zarządzania procesami wykonaj w trybie tekstowym następujące kroki: 1. Zaloguj się do systemu i wyświetl uruchomione procesy, wpisując w wierszu poleceń: # ps Polecenie ps wyświetla informacje o uruchomionych procesach. Wywołane bez parametru wyświetla tylko procesy uruchomione na bieżącym terminalu użytkownika. Zauważ, że pokazane są trzy procesy: proces logowania, proces bieżącej powłoki oraz właśnie uruchomiony proces realizujący wydane polecenie ps. Dwa pierwsze procesy istnieją dla każdego użytkownika na każdym jego terminalu i umożliwiają wydawanie poleceń. Dla każdego procesu, oprócz jego nazwy, podawany jest także numer PID oraz nazwa terminalu, na którym został uruchomiony. 2. Uruchom edytor vim, wpisując w wierszu poleceń: # vim plik1 Uruchomienie nowego programu powoduje utworzenie przez system operacyjny nowego procesu użytkownika. Edytor vim ma duże możliwości i jest często używany przez administratorów systemów operacyjnych do pracy w trybie tekstowym. W tym trybie edytor zajmuje cały ekran i użytkownik nie ma możliwości wydawania poleceń do systemu, ponieważ nie ma dostępu do wiersza poleceń. Aby powrócić do wiersza poleceń, należy zakończyć proces edycji poprzez naciśnięcie pewnej kombinacji klawiszy. Ta kombinacja klawiszy nie jest intuicyjna i jeżeli użytkownik jej nie zna, bardzo trudno jest ją zgadnąć. Dodatkowo edytor vim w trakcie edycji nie podpowiada sposobu jej zakończenia. Istnieje nawet dowcip, mówiący o możliwości wygenerowania dowolnie długiego losowego ciągu znaków przez użytkownika, który próbuje wyjść z programu vim. Załóżmy, że nie jest znany sposób zakończenia pracy z edytorem vim. 3. Spróbuj zakończyć działanie programu vim, naciskając kombinację klawiszy Ctrl+C. Kombinacja ta umożliwia zazwyczaj przerwanie bieżącego procesu, lecz w przypadku edytora vim jest ona nieskuteczna. W takiej sytuacji jedną z dróg rozwiązania problemu jest usunięcie zawieszonego procesu. Lekcja 30. Polecenia do zarządzania procesami 221 4. Przejdź do innego terminalu za pomocą kombinacji klawiszy Alt+F2. Zaloguj się ponownie, używając tego samego konta użytkownika. Zauważ, że masz do czynienia z sytuacją, w której system operacyjny działa poprawnie. Brak możliwości wydawania poleceń na poprzednim terminalu wynika z jego zablokowania przez jeden z procesów. 5. Wyświetl informacje o zalogowanych w systemie użytkownikach, wpisując w wierszu poleceń: # finger Polecenie finger wydane bez parametrów umożliwia odczytanie informacji o wszystkich terminalach, na których pracują zalogowani użytkownicy. Z wyświetlonych informacji powinno wynikać, że jesteś użytkownikiem dwóch terminali — jednego, na którym właśnie pracujesz, oraz drugiego, w którym został uruchomiony edytor vim. Zauważ, że terminale w trybie tekstowym są oznaczane nazwą tty z numerem nadawanym w kolejności ich uruchamiania. W trybie graficznym oznaczenia terminali to pts/0, pts/1 i następne. 6. Wyświetl informacje o uruchomionych dotychczas procesach, wpisując w wierszu poleceń: # ps –t tty1 Polecenie ps z opcją –t wyświetla procesy uruchomione na terminalu, którego nazwa została podana jako parametr. Na jednym z używanych terminali wśród uruchomionych procesów znajduje się proces edytora vim. Odczytaj jego numer identyfikacyjny PID wyświetlony w pierwszej kolumnie, np. 4269. Numer PID zawieszonego procesu jest niezbędny przy jego usuwaniu. 7. Zamknij program edytora vim poprzez likwidację jego procesu. W tym celu wpisz w wierszu poleceń: # kill -9 4269 Polecenie kill (dosłownie: zabij) zamyka proces o numerze PID podanym jako parametr wywołania. Polecenie to wywołane tylko z numerem procesu bez opcji –9 umożliwia procesowi samodzielne zakończenie działania, dzięki czemu możliwe jest np. zapisanie i zamknięcie plików tymczasowych. Wywołanie polecenia kill z opcją –9 oznacza, że system operacyjny usunie proces niezależnie od jego stanu i priorytetu. 8. Przejdź do terminalu, na którym był uruchomiony edytor, i sprawdź, czy proces edytora został zakończony. Sprawdź listę procesów na terminalu za pomocą polecenia ps. Zauważ, że procesu edytora nie ma już na tej liście. Warto zapamiętać, że pracę w edytorze vim kończy wpisanie ciągu znaków :q! i naciśnięcie klawisza Enter. Zarządzanie wieloma procesami Użytkownik ma możliwość pracy z wieloma procesami jednocześnie. Niekiedy za- chodzi konieczność, żeby w trakcie pracy z jednym programem uruchomić inny czy przejść do wiersza poleceń. Inne programy mogą być uruchamiane w tle, kiedy nie 222 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń zachodzi konieczność kontroli ich wykonania albo interakcji z użytkownikiem. W przy- padku pracy z wieloma procesami będą one wykonywane w tle, co oznacza, że mogą one działać jednocześnie, umożliwiając dalszą pracę w wierszu poleceń. Jednak istnieje możliwość przełączenia się na dany proces w celu jego kontroli czy kontynuacji inte- rakcji. Przełączanie się między procesami w trybie tekstowym jest podobne do pracy z wieloma oknami w trybie graficznym. Tylko jedno okno może być w danym momen- cie aktywne, a użytkownik ma możliwość przełączania się między oknami. Aby pracować z wieloma procesami, wykonaj w trybie tekstowym następujące polecenia: 1. # sleep 300 Uruchom program sleep, który tworzy proces czekający przez podaną jako parametr liczbę sekund. Dopiero po upływie zadanego czasu proces kończy swoje działanie i umożliwia dalszą pracę w wierszu poleceń. Naciśnij klawisze Ctrl+Z. Ta kombinacja klawiszy pozwala na zatrzymanie bieżącego procesu i przejście do wiersza poleceń. 2. # fg Polecenie fg (ang. foreground) umożliwia przywrócenie wykonywania procesu, który został wcześniej zatrzymany. Polecenie to wywołane bez parametru przywróci proces, który ostatnio został umieszczony w tle, czyli proces programu sleep. Ponownie zatrzymaj ten proces za pomocą kombinacji klawiszy Ctrl+Z. 3. # vim plik1 Uruchom edytor vim jako proces działający w tle. Znak jest poleceniem dla powłoki, żeby poprzedzające go polecenie uruchomić w tle. 4. # man more Uruchom jeszcze jeden proces w tle, np. wyświetlenie pomocy dla polecenia more. 5. # jobs Polecenie jobs umożliwia wyświetlenie procesów uruchomionych w tle. Przykładowy rezultat jego wykonania może wyglądać następująco: [1] [2] - [3] + Stopped Stopped Stopped sleep 300 vim plik1 man more Pierwsza kolumna zawiera numer procesu, którego można użyć przy przywracaniu podglądu działania procesu. Druga kolumna zawiera znaki + i – odpowiednio przy procesie na pierwszym i drugim planie. Na pierwszym planie jest proces ostatnio przeniesiony w tło. Polecenie fg wywołane bez parametrów uruchomi podgląd wykonania właśnie tego procesu. Trzecia kolumna zawiera opis stanu procesu. Wyświetlone procesy są w stanie zatrzymania (ang. stopped). W tym polu może się także pojawić wartość Running (działający) dla procesów, które nie wymagają interakcji z użytkownikiem. Ostatnia kolumna pokazuje nazwę programu i parametry jego wywołania. Lekcja 30. Polecenia do zarządzania procesami 223 6. # bg 1 Polecenie bg (ang. background) uruchamia w tle zatrzymany wcześniej proces, którego numer podano jako parametr. Wydane z parametrem 1 oznacza, że wykonywanie procesu sleep zostało wznowione. Zauważ, że ruchomienie procesu w tle oznacza, że wykonuje on swoje działania, a użytkownik może w tym samym czasie wydawać kolejne polecenia w programie powłoki. Uruchom ponownie polecenie jobs i zauważ, że stan procesu sleep zmienił swoją wartość na Running. Po zakończeniu działania proces sleep wyświetli na ekranie komunikat o zakończeniu pracy. 7. # fg 3 Polecenie fg przywraca działanie procesu. Wywołane bez parametru uruchomi proces znajdujący się w tle na pierwszym planie (oznaczenie +). Wywołane z numerem procesu przywraca podgląd jego działania, w podanym przykładzie wyświetli rezultat działania polecenia man more. Zakończ procesy man i vim, przełączając się na nie kolejno i zamykając programy. Procesy możesz też usunąć, korzystając z poznanego polecenia kill. Poczekaj na samodzielne zakończenie pracy przez proces sleep. Standardowe strumienie procesów Działanie każdego programu polega w pewnym sensie na przetwarzaniu danych, nie- zależnie od tego, czy te dane pochodzą z pliku, czy z klawiatury użytkownika. Do operacji przetwarzania konieczne są dane wejściowe oraz sposób prezentacji rezultatów. Przekazywanie danych przypomina przepływ strumienia wody i dlatego w informatyce mówi się o strumieniach danych. Każdy proces od chwili uruchomienia posiada trzy strumienie danych — wejściowy, wyjściowy i strumień błędów. Ideę procesu i standardowych strumieni wejściowych i wyjściowych pokazuje rysu- nek 30.2. Rysunek 30.2. Proces i standardowe strumienie Każdy proces posiada standardowe wejście SI (ang. standard input), którym zwykle jest klawiatura. Innymi strumieniami wejściowymi mogą być otwarte dla procesu pliki. Standardowym wyjściem SO (ang. standard output) jest zwykle monitor, ale także może to być plik. Każdy proces posiada również standardowy strumień błędów SE (ang. standard error), za pomocą którego przekazywane są informacje o błędach 224 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń pojawiających się w trakcie trwania procesu. Komunikaty o błędach mogą pojawiać się na monitorze i zaciemniać dane wyjściowe programu. Metodą eliminacji tego pro- blemu jest przekazywanie komunikatów o błędach do specjalnego pliku. Wszystkie strumienie procesu mają nadane tzw. deskryptory, które ułatwiają ich rozpoznawanie przez system operacyjny. Deskryptory są to liczby całkowite, i tak strumień wejściowy to 0, wyjściowy to 1, a strumień błędów to 2. W systemie operacyjnym występuje mechanizm przekierowania strumieni danych wej- ściowych i wyjściowych. Pozwala on na decydowanie, skąd pochodzą dane przeka- zywane do procesu i gdzie mają być umieszczone po jego zakończeniu. Zmiana kie- runku strumienia wejściowego realizowana jest przez (znak mniejszości), strumienia wyjściowego realizowana jest przez (znak większości), a dopisanie danych do pliku realizuje znak (dwa znaki większości). W celu wykorzystania mechanizmu przekierowania wpisz w wierszu poleceń: 1. # cat plik1 Polecenie cat służy do przeglądania i łączenia plików, ale może także służyć jako pseudoedytor. Ze względu na to, że nie podano w poleceniu strumienia wejściowego, standardowym wejściem jest klawiatura. Oznacza to, że znaki wpisywane przez użytkownika na klawiaturze zostaną przekazane do polecenia cat. W kolejnych wierszach wpisz po kilka znaków, niektóre z wierszy zacznij od litery s. W trakcie pisania wiersze tekstu będą również widoczne na monitorze. Znak oznacza przekierowanie strumienia wyjściowego do pliku o podanej nazwie. Jeżeli plik wcześniej nie istniał, zostanie on utworzony. Wpisane przez użytkownika wiersze tekstu zostaną zapisane w tym pliku. Działanie polecenia cat może być zakończone klawiszami Ctrl+D. Podejrzyj zawartość utworzonego pliku za pomocą polecenia more. 2. # cat plik1 plik2 W podanym poleceniu cat dzięki mechanizmowi przekierowania strumieniem wejściowym jest plik plik1, a strumieniem danych wyjściowych — plik2. Oznacza to, że zawartość jednego z plików zostanie bez modyfikacji przepisana do drugiego pliku. Sprawdź za pomocą polecenia more rezultat wykonania operacji. 3. # cat plik2 W podanym poleceniu standardowym wejściem dla procesu cat ponownie jest klawiatura, natomiast standardowym wyjściem — plik2. Użycie podwójnego znaku większości oznacza, że wpisywane z klawiatury dane nie zastąpią dotychczasowych danych w pliku, ale zostaną dopisane na jego końcu. Wpisz kilka wierszy tekstu, niektóre zaczynając od litery s, zakończ edycję i sprawdź zawartość pliku za pomocą polecenia more. 4. # cat plik4 Wywołaj polecenie cat, podając jako parametr nieistniejący plik. Zauważ pojawiający się komunikat o błędzie. Komunikaty o błędach mogą być Lekcja 30. Polecenia do zarządzania procesami 225 wyświetlane pomiędzy danymi wyjściowymi procesu, co zmniejsza czytelność wyników. Dlatego niekiedy wyświetlanie komunikatów o błędach nie jest pożądane. 5. # cat plik4 2 /dev/null Aby zablokować wyświetlania komunikatów o błędach na ekranie, należy je przekierować do pliku. Jedną z możliwości jest ich przekierowanie do pliku /dev/null, w którym wszystkie dane giną. Zauważ, że w poleceniu posłużono się numerycznym deskryptorem standardowego strumienia błędów (cyfra 2). Mechanizm potoku Aby wykonać złożone przetwarzanie danych, niekiedy konieczne staje się urucho- mienie wielu procesów, z których kolejny wykorzystuje rezultaty pracy poprzednika. Wówczas dane wyjściowe pierwszego procesu powinny być przekazane do drugiego procesu jako jego dane wejściowe. Tę operację realizuje mechanizm zwany potokiem (ang. pipeline), oznaczany znakiem | (pionowej linii). Działanie mechanizmu potoku ilustruje rysunek 30.3. Rysunek 30.3. Mechanizm potoku Działanie mechanizmu potoku polega na przekierowaniu strumienia wyjściowego jednego z procesów, np. procesu grep, na wejście innego procesu — w pokazanym przykładzie sort. Polecenie grep odczytuje wskazany plik wiersz po wierszu i pozo- stawia tylko te z wierszy, które pasują do wzorca — w pokazanym przykładzie za- czynają się od litery s. Wybrane wiersze pliku są następnie przekazywane do innego procesu wykonującego polecenie sort, które porządkuje wiersze rosnąco lub malejąco. Standardowym wyjściem tego polecenia jest monitor, na którym zostanie wyświetlony rezultat działań obu procesów. Mechanizm potoku jest powszechnie używany do łączenia poleceń i wykonywania złożonych operacji przetwarzających dane. 226 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń W celu wykorzystania mechanizmu potoku wpisz w wierszu poleceń: 1. # ps –u root Polecenie ps z parametrem –u wyświetla wszystkie procesy uruchomione przez użytkownika o podanej nazwie, w tym przypadku root. Użytkownik ten ma wiele procesów, których lista może nie zmieścić się na jednym ekranie. Aby zobaczyć wszystkie wartości, należy skorzystać z mechanizmu potoku. 2. # ps –u root | more W podanym poleceniu rezultat wykonania komendy ps został przekierowany do polecenia more, które umożliwia stronicowanie wyświetlanego tekstu. Zwróć uwagę, że teraz jest widoczny proces init o numerze PID równym 1. Poprzednio był on niewidoczny. Przewiń listę procesów za pomocą klawisza Spacja. 3. # grep ^s plik2 | sort Podane polecenie jest związane z przykładem umieszczonym na rysunku 30.3. Polecenie grep służy do filtrowania tekstów. Z podanego pliku wejściowego odczytuje kolejne wiersze i na wyjściu pozostawia tylko te, które są zgodne ze wzorcem. Podany wzorzec ^s oznacza, że pierwszym znakiem wiersza powinna być litera s. Poprzez mechanizm potoku dane wyjściowe procesu grep zostaną przekazane do procesu sort. Polecenie sort służy do porządkowania wierszy w kolejności alfabetycznej czy numerycznej. 4. # grep ^s plik2 | sort –r | more Mechanizmu potoku można użyć wielokrotnie, tworząc złożone ciągi operacji przetwarzania danych. Wynik działania polecenia grep jest przekazany do programu sort, który dzięki opcji wywołania –r posortuje dane malejąco. Zauważ, że dane te zostały przekazane do polecenia more poprzez kolejny mechanizm potoku. Najczęściej polecenia do zarządzania procesami przydają się w sytuacji zawieszenia jednego z procesów, gdy zachodzi konieczność jego zatrzymania. Jednak zaawansowane działania, takie jak zarządzanie serwerami czy obliczeniami numerycznymi, wymagają umiejętności nadzorowania stanu procesów czy wykonywania procesów w tle. Lekcja 31. Przetwarzanie danych tekstowych Konfiguracja systemu operacyjnego i programów zapisywana jest w plikach teksto- wych. Są one przeznaczone do zapisu ustawień programów użytkowych, serwerów usług lub zawierają informacje o aktualnym stanie systemu operacyjnego i środowiskach użytkowników. Dzięki zapisywaniu parametrów działania systemu w plikach jest możliwe odtworzenie tej samej konfiguracji przy każdorazowym uruchomieniu systemu. W trakcie Lekcja 31. Przetwarzanie danych tekstowych 227 prac administracyjnych często występuje konieczność znalezienia określonej informacji o systemie i jego konfiguracji zapisanej w pliku tekstowym. Niekiedy zachodzi także konieczność dokonania zmiany zapisanych danych. Plik tekstowy z danymi konfiguracyjnymi oraz inne pliki tekstowe są zbiorem znaków, które są podzielone na wiersze o różnej długości. Każdy wiersz kończy się specjal- nym znakiem. Przetwarzanie plików tekstowych w systemie Linux zawsze opiera się na operacjach na poszczególnych wierszach. Również praca powłoki polega na inter- pretowaniu poleceń zapisywanych w wierszach. To wiersz jest interpretowany, wyko- nywany, wyświetlany, zapisywany, a także może być przetwarzany przez programy. W dystrybucjach systemu Linux znajdują się liczne programy do wykonywania zło- żonych operacji przetwarzania danych tekstowych; programy te można pogrupować według realizowanych przez nie funkcji: (cid:141) wyświetlanie zawartości pliku — more, tail, head, less, (cid:141) filtrowanie wierszy wg wzorca — grep, egrep, fgrep, (cid:141) zliczanie słów i wierszy — wc, nl, du, (cid:141) przetwarzanie treści wierszy — cut, tr, sed, awk, (cid:141) sortowanie wierszy — sort, uniq, (cid:141) łączenie i rozłączanie — cat, join, split, csplit, (cid:141) porównywanie zawartości plików — cmp, comm, diff. Niektóre z tych programów mają bardzo duże możliwości przetwarzania plików tek- stowych, jednak ich zastosowanie jest niekiedy skomplikowane. Są one wykorzysty- wane przy pracach administracyjnych. Poszukiwanie wierszy zawierających wzorzec Przy wyszukiwaniu informacji w plikach tekstowych często stosuje się program o na- zwie grep. Program ten filtruje dane, analizując każdy wiersz i pozostawia tylko te z nich, które spełniają warunek zdefiniowany w formie wzorca, podany jako parametr wywołania. Wzorzec może być podany w wierszu poleceń, jak również może być po- bierany z pliku, w którym można umieścić wiele różnych wzorców. Wzorzec może być ciągiem znaków, jak również wyrażeniem regularnym, definiującym pewne zbiory danych tekstowych. Istnieje również polecenie egrep, które pozwala na stosowanie rozszerzonych wyrażeń regularnych. Wywołanie tego polecenia jest równoznaczne z użyciem w poleceniu grep opcji –E. Wzorzec może być wyrażeniem, w którym znaki specjalne mają określone znaczenia, na przykład: (cid:141) ala — poszukiwany jest podany ciąg znaków; (cid:141) a.a — znak kropki zastępuje jeden dowolny znak, w tym przypadku poszukiwany jest ciąg zaczynający i kończący się literami a, pomiędzy którymi będzie jeden znak (litera albo nawet cyfra); 228 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń (cid:141) a.* — znak gwiazdki oznacza powtórzenie znaku poprzedzającego dowolną liczbę razy, w tym przypadku poszukiwane są słowa zawierające ciąg znaków zaczynający się literą a; (cid:141) [aeiouy] — w nawiasie kwadratowym podaje się zbiór poszukiwanych znaków, np. listę samogłosek; (cid:141) [a–zA–Z] — w nawiasie kwadratowym można podać także zakres poszukiwanych znaków, np. wszystkie wielkie i małe litery; (cid:141) ^a — po znaku ^ podaje się ciąg znaków, który musi wystąpić na początku wiersza, np. literę a; (cid:141) a$ — przed znakiem $ podaje się ciąg znaków, który musi wystąpić na końcu wiersza, np. literę a. Za pomocą wyrażeń regularnych ze znakami specjalnymi można opisać ciągi znaków i ich zbiory. Można stosować także pewne kombinacje poszczególnych znaków spe- cjalnych, co pozwala na wyrażenie bardzo złożonych zależności między słowami czy znakami w pliku tekstowym. Wzorce mogą być stosowane w większości poleceń działających na danych tekstowych. Pozwalają one na wybieranie z dużych plików tekstowych jedynie tych treści, które interesują użytkownika. Najczęściej wzorców używa się w połączeniu z poleceniem grep. Polecenie grep posiada kilka opcji wywołania, z których najważniejsze to: (cid:141) -v — pozostawienie wierszy niepasujących do wzorca, (cid:141) -c — podanie liczby wierszy pasujących do wzorca, (cid:141) -n — ponumerowanie znalezionych wierszy, (cid:141) -w — pozostawienie wierszy, w których są całe słowa, a nie ciągi znaków, pasujące do wzorca, (cid:141) -i — eliminacja rozróżnienia małych i wielkich liter, (cid:141) -l — podanie tylko nazw plików zawierających wiersze pasujące do wzorca, (cid:141) -E — włączenie rozszerzonych wyrażeń regularnych (egrep). Polecenie grep pozwala na zmniejszenie ilości danych przekazywanych przez pro- gramy kontrolujące system poprzez ich przefiltrowanie i wyświetlenie tylko tych wierszy, które zawierają interesujące dla użytkownika informacje. Poleceniem grep można się posłużyć, aby uzyskać czytelny rezultat działania programów przetwarza- jących dane tekstowe. W celu poznania możliwości polecenia grep wpisz w wierszu poleceń: 1. # ls /bin Polecenie ls wyświetli listę programów systemowych zapisanych w katalogu /bin. Zauważ, że lista ta jest obszerna, a szukanie w niej jednego z programów może być długotrwałe. Lekcja 31. Przetwarzanie danych tekstowych 229 2. # ls /bin | grep y Rezultat działania polecenia ls poprzez mechanizm potoku zostanie przekazany jako strumień wejściowy do polecenia grep. Jako wzorzec w poleceniu grep podano literę y, co oznacza, że jedynie polecenia, których nazwa zawiera tę literę, zostaną wyświetlone. W podobny sposób można szukać określonych ciągów znaków i całych wyrazów. 3. # ls /bin | grep ^[s-w] Jako parametr polecenia grep można podać zbiory poszukiwanych liter z wykorzystaniem nawiasów kwadratowych. Dodatkowy znak specjalny ^ w wyrażeniach regularnych oznacza początek wiersza. Jako wynik polecenia zostaną wyświetlone wszystkie nazwy plików z katalogu /bin które zaczynają się na litery s, t i kolejne do w. 4. # ls /bin | grep -i [ouy]$ Znak specjalny $ w wyrażeniu regularnym oznacza koniec wiersza. W nawiasie kwadratowym podano zbiór liter, które wchodzą w skład wzorca. Rezultatem wydanego polecenia będzie wyświetlenie plików, których nazwa kończy się jedną z podanych samogłosek: o, u lub y. Wywołanie polecenia grep z opcją –i powoduje, że podczas poszukiwania wielkie i małe litery nie są rozróżniane. Tak samo zadziała polecenie bez opcji, ale ze wzorcem [ouyOUY]. 5. # ls -l /dev | wc -l Polecenie wc w zależności od zastosowanej opcji służy do zliczania poszczególnych elementów zawartości pliku. Opcja –l (ang. line) oznacza zliczanie wierszy, –w (ang. word) — słów, a opcja –c (ang. character) — znaków. Danymi wejściowymi może być zawartość pliku tekstowego, ale także rezultat wykonanego polecenia przekazany na standardowe wejście procesu wc. Ponieważ polecenie ls z opcją –l wyświetla dane o każdym pliku i katalogu w oddzielnym wierszu, przekazanie rezultatu do polecenia wc zliczającego wiersze pozwoli na podanie liczby plików i katalogów w danej lokalizacji. Zwróć uwagę, że katalog ten zawiera dużą liczbę elementów. 6. # ls -l /dev | grep ^d | wc -l Polecenie ls wywołane z opcją –l wyświetla dla każdego elementu w podanej lokalizacji pełną o nim informację, w której znajduje się także typ pliku. Typ jest oznaczany jedną literą umieszczoną na początku wiersza dotyczącego danego pliku, np. litera d oznacza katalogi. Wykorzystując tę zasadę, można za pomocą polecenia grep wyświetlić jedynie wiersze zawierające wybrany typ plików. W rezultacie wydanego polecenia zostanie podana liczba katalogów w wybranej lokalizacji. Przetwarzanie danych tekstowych Dane tekstowe zawarte w plikach mogą być wyświetlane za pomocą takich poleceń, jak cat, less czy more. Jednocześnie istnieje możliwość ręcznej edycji danych w edyto- rach tekstu, takich jak nano czy vim. Jednak niekiedy zachodzi konieczność automa- tycznego przetwarzania plików, gdy ręczne ich przeszukiwanie i poprawianie byłoby 230 Rozdział 7. ♦ Zarządzanie systemem z wiersza poleceń nieefektywne. Czasem modyfikacje polegają na zmianie jednej litery tekstu w wielu wierszach pliku. Przetworzenie dużych plików przez użytkownika może być praco- chłonne, a w niektórych przypadkach — wręcz niewykonalne. Zmiany tego rodzaju mogą zostać wykonane automatycznie przez przeznaczone do tego celu programy, takie jak cut, tr czy sed. W niektórych przypadkach plik tekstowy posiada własną wewnętrzną strukturę, dzieli się na wiersze, słowa i kolumny. Wiersze są rozpoznawane dzięki kończącemu je spe- cjalnemu znakowi końca wiersza. Słowo to ciąg znaków niepodzielony spacją lub in- nym znakiem specjalnym. Wyróżnienie kolumn występuje zazwyczaj jedynie w plikach generowanych automatycznie przez określone programy i wówczas poszczególne kolumny zawierają zawsze te same informacje i znajdują się w wierszu w tej samej kolejności, a oddzielone są od siebie znakiem specjalnym. Taką postać często mają pliki z zapisem ustawień systemu operacyjnego. Również polecenia systemowe często zwracają dane w postaci uporządkowanej w wiersze i kolumny. Gdy znana jest struktura danych, programy do przetwarzania mogą dokonywać zmian automatycznie. Doko- nane w strumieniu wejściowym zmiany mogą być zapisane do plików wynikowych. Całość działania programu może przebiegać bez ingerencji użytkownika i bez wy- świetlania jakichkolwiek komunikatów na ekranie. W celu przetworzenia wybranych danych tekstowych wpisz w wierszu poleceń: 1. # cat /etc/passwd Program cat odczyta zawartość pliku /etc/passwd i wyświetli ją na monitorze. Plik /etc/passwd pełni bardzo ważną rolę w pracy systemu operacyjnego, ponieważ zawiera informacje o użytkownikach. W każdym wierszu znajdują się kolejno: nazwa użytkownika, jego hasło, numer UID, numer GID, imię i nazwisko, katalog domowy oraz zdefiniowana powłoka. Zauważ, że plik ten ma ściśle określoną strukturę, a poszczególne kolumny oddzielone są znakiem dwukropka. Zwróć uwagę, że zamiast hasła wyświetlany jest znak x, który oznacza, że hasła zostały zaszyfrowane i zapisane w oddzielnym pliku /etc/shadow. Taki sposób zapisu haseł jest obecnie ze względów bezpieczeństwa powszechnie stosowany w systemach operacyjnych Linux. 2. # cat /etc/passwd | cut -d : -f 1,6 Jeżeli chcesz wyświetlić wybrane informacje, np. tylko nazwę użytkownika i jego katalog domowy, możesz posłużyć się poleceniem cut. Program cut pozwala na wycięcie pewnego fragmentu z wierszy tekstu. Potrafi operować na wierszach i kolumnach analizowanego tekstu. W poleceniu cut za pomocą opcji –d definiuje się, jaki znak oddziela poszczególne kolumny. W przypadku pliku /etc/passwd jest to znak dwukropka. Opcja –f pozwala na wybranie kolumn, które mają być wyświetlane. Zauważ, że w wydanym poleceniu znajduje się wywołanie dwóch programów o nazwach cut i cat. Mimo podobnej pisowni oba programy realizują zupełnie inne zadania. Odczytywana za pomocą polecenia cat zawartość pliku /etc/passwd jest przekazywana za pomocą mechanizmu potoku na wejście programu cut. W rezultacie zostaną wyświetlone jedynie kolumny pierwsza i szósta, w których znajdują się nazwa użytkownika i nazwa Lekcja 31. Przetwarzanie danych tekstowych 231 jego katalogu domowego. Polecenie cut posiada liczne opcje, które umożliwiają definiowanie skomplikowanych warunków, określających, jakie dane mają zostać wyświetlone, a jakie wycięte. 3. # cat /etc/passwd | cut -d : -f 1,6 | tr : Dane zapisane w plikach systemowych mają często mało czytelną postać. Dlatego oprócz wycinania niepotrzebnych kolumn można zamienić jeden znak specjalny na inny. W rezultacie wykonania polecenia znak dwukropka zostanie zamieniony na znak spacji za pomocą polecenia tr. 4. # cat /etc/passwd | cut -d : -f 1,6 | tr [a-z] [A-Z] Polecenie tr pozwala również na zamianę grup znaków. W tym przypadku wszystkie małe litery zostaną zamienione na wielkie. Zauważ, że dokonywane zmiany są widoczne w postaci informacji wyświetlanych na ekranie. Zawartość pliku /etc/passwd nie ulega zmianie. Aby zapisać zmiany, konieczne jest jawne przekierowanie danych do pliku o określonej nazwie. Polecenie tr ma ograniczone możliwości — zamienia jedynie pojedyncze znaki. Aby zamienić cały ciągów znaków, konieczne jest posłużenie się poleceniem sed. 5. # cat /etc/passwd | cut -d : -f 1,6 | sed s/:/ ma katalog domowy / Program sed umożliwia zaawansowane przetwarzanie wierszy tekstu z wykorzystaniem wyrażeń regularnych. Działanie programu polega na pobieraniu wierszy jeden po drugim i przetwarzaniu jego treści zgodnie ze zdefiniowanymi operacjami i wzorcami. Jedną z operacji realizowanych przez program jest zamiana pewnego ciągu znaków na inny. Jest to możliwe dzięki operacji zamiany oznaczonej literą s, której użycie wymaga podania polecenia w postaci: s/ciąg początkowy/ciąg docelowy/. W rezultacie wykonania polecenia znak dwukropka oddzielający kolumny w pliku /etc/passwd zostanie zastąpiony zwrotem ma katalog domowy. 6. # cat /etc/passwd | cut -d : -f 1,6 | sed -e s/^/Użytkownik / -e s/:/ ma katalog domowy / Gdy w jednym wierszu danych konieczne jest dokonanie kilku
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Szkoła systemu Linux
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: