Podstawowe wiadomości o systemie operacyjnym Linux
Podstawowe wiadomości
o systemie operacyjnym Linux
1. Geneza i historia systemu operacyjnego Linux
2. Instalacja systemu operacyjnego Linux Red Hat 7.2
3. Logowanie do systemu, programy telnet, ssh, putty.exe, polecenia who, passwd, su
4. Pomoc w systemie Linux. Podstawy obsługi programu terminala, autouzupełnianie poleceń
5. Zarządzanie procesami w systemie Linux
1
Podstawowe wiadomości o systemie operacyjnym Linux
1. Geneza i historia systemu operacyjnego Linux
Historia systemu operacyjnego Linux liczy już prawie 15 lat. Jego pierwowzorem jest
UNIX, opracowany w 1965 roku dla wysoko wydajnych maszyn roboczych i serwerów,
który do chwili obecnej w jego różnych odmianach jest powszechnie stosowany
w serwerach wielu producentów zbudowanych na bazie procesorów RISC. System ten
charakteryzuje się wielodostępnością i wielozadaniowością, czyli wielu użytkowników
może równocześnie uruchomić kilka programów.
W 1991 roku student Uniwersytetu w Helsinkach, Linus Torvald, opracował efektywny
system operacyjny o funkcjonalności podobnej do systemu UNIX, który był przeznaczony
do pracy na komputerach PC z procesorami Intel. System ten został nazwany Linux od
imienia jego twórcy. Linux został udostępniony przez autora wraz z kodem źródłowym.
Umożliwiło to innym programistom rozwijanie tego systemu, uzupełnianie o nowe
możliwości i opracowywanie nowych aplikacji. Oprogramowanie to jest oparte o licencję
GNU opracowaną przez Free Software Foundation http://www.gnu.org, która zezwala na
rozpowszechnianie i wykorzystywanie oprogramowania opartego o tę licencję bez
żadnych ograniczeń, również w celach komercyjnych. Inaczej mówiąc, nie ma
nielegalnych kopii programów opartych o tę licencję. Jej tekst w języku angielskim jest
zawarty w pliku COPYING na pierwszej płycie instalacyjnej Linux Red Hat 7.2.
W ciągu ponad dziesięciu lat, które minęły od premiery Linuksa, powstało wiele grup
programistów i organizacji, które nieustannie rozwijały i doskonaliły zarówno system
operacyjny Linux, jak i rozwijały oprogramowanie, które może pracować w tym
środowisku. Programiści i entuzjaści tego systemu pisali i gromadzili oprogramowanie,
opracowywali dokumentację i podręczniki. Powstawały różne kolekcje oprogramowania,
które zostały nazwane dystrybucjami Linuksa. Do najpopularniejszych dystrybucji należą:
1. Red Hat — według Richarda Petersena, autora książki Arkana Linux, jest to
najpopularniejsza dystrybucja Linuksa. Programiści z Red Hat położyli duży nacisk
między innymi na rozwój oprogramowania w środowisku graficznym Gnome,
wprowadzili pakiety RPM, służące do instalacji oprogramowania. Obecnie dystrybucja
Red Hat obsługuje następujące platformy sprzętowe: Sparc, Intel, Alpha, PPC, ARM,
Mac m68K i SGI. Obecnie najnowszą wersją Red Hat Linuksa jest wersja 9. Ze
względu na objętość pakietu instalacyjnego do realizacji niniejszego kursu została
wybrana wersja Red Hat 7.2. Więcej szczegółów dotyczących tej dystrybucji znajduje
się na stronie internetowej http://www.redhat.com.
2
Podstawowe wiadomości o systemie operacyjnym Linux
2. OpenLinux
— dystrybucja Caldera OpenLinux jest przeznaczona dla firm. Poza
standardową zawartością systemu, Linux Caldera oferuje również licencjonowane
pakiety oprogramowania komercyjnego, jak na przykład Partition Magic, Adabas czy
klienta — Novell Netware. OpenLinux obsługuje wyłącznie platformę sprzętową Intela.
3. SuSE — jest to obecnie jedna z najszybciej rozwijających się dystrybucji. Zawiera
oprogramowanie środowiska graficznego Gnome oraz KDE, a także wiele pakietów
oprogramowania biurowego. Najnowsza dystrybucja składa się z pięciu płyt CD.
Obszerne informacje dotyczące tej dystrybucji są zawarte na stronie internetowej
http://www.suse.com.
4. Debian — Debian jest projektem całkowicie niekomercyjnym. Jest bardzo
rozbudowaną dystrybucją, składającą się z siedmiu płyt CD. Obsługuje platformy
Intela, Alpha, Mac m68K i Sparc. Główna strona internetowa tej dystrybucji (również
w języku polskim) to http://www.debian.org.
5. Slackware — jest to bardzo rozbudowana dystrybucja, obsługująca wyłącznie
platformę Intela, w której położono szczególny nacisk na zgodność Linuksa
z systemem UNIX. Główna strona internetowa tej dystrybucji to
http://www.slackware.com.
6. Mandrake — jest to bardzo rozbudowana wielojęzyczna dystrybucja z rozbudowaną
obsługą multimediów. Obsługuje platformę sprzętową Intela, PowerPC, Sparc. Główna
strona internetowa tej dystrybucji to http://www.mandrake.org.
7. Knoppix — jest to dystrybucja uruchamiana z jednej bootowalnej płyty CD. System
ten nie instaluje się na komputerze, więc nie jest wymagane przeznaczenie na ten cel
oddzielnej partycji czy dysku. System ten działa stosunkowo wolno, ale sprawnie.
Niedogodnością jest to, że operuje na dysku wirtualnym, co sprawia pewne kłopoty
przy trwałym zapisywaniu efektów pracy użytkownika i plików z danymi. Główna
strona internetowa tej dystrybucji to http://www.knoppix.de.
Powyżej zostały wymienione tylko najważniejsze i najpopularniejsze dystrybucje Linuksa.
Oprócz wymienionych powyżej istnieje wiele innych, wśród nich także wersje
uproszczone, mieszczące się na jednej — t a k , j e d n e j — dyskietce 3,5”. Taki Pocket
Linux może być również wykorzystywany w określonych zastosowaniach, ale trudno jest
go wykorzystać do zapoznania się z podstawami systemu Linux. W związku z tym
podstawą dalszego kursu będzie dystrybucja Linuksa Red Hat 7.2.
3
Podstawowe wiadomości o systemie operacyjnym Linux
Na stronie internetowej http://www.debian.org znajduje się link do strony wyjaśniającej
zasady korzystania z „oprogramowania wolnodostępnego”, zwanego również
„oprogramowaniem o otwartym źródle”. System operacyjny Linux został opracowany
właśnie jako takie oprogramowanie, które można scharakteryzować następująco:
można go instalować na dowolnej liczbie komputerów,
dowolna liczba użytkowników może używać oprogramowania w tym samym czasie,
można wykonać dowolną liczbę kopii oprogramowania i przekazać je komukolwiek
(redystrybucja „otwarta” lub „bez ograniczeń”),
brak ograniczeń w modyfikowaniu oprogramowania (z wyjątkiem zachowania
w nietkniętym stanie pewnych uwag),
nie ma ograniczeń w rozprowadzaniu, a nawet w sprzedaży oprogramowania.
Na stronie http://www.gnu.org/copyleft/copyleft.pl.html znajdują się szczegółowe
wyjaśnienia pojęć związanych z powszechną dostępnością oprogramowania, z którymi
studenci powinni się zapoznać.
4
Podstawowe wiadomości o systemie operacyjnym Linux
2. Instalacja systemu operacyjnego Linux Red Hat 7.2
Najprostszym sposobem zapewnienia sobie dostępu do systemu operacyjnego Linux jest
jego zainstalowanie na własnym komputerze. Poniżej zostanie szczegółowo opisana
instalacja systemu operacyjnego Linux na przykładzie bardzo popularnej dystrybucji
RedHat 7.2.
Wymagania sprzętowe do instalacji systemu operacyjnego Linux
Wszystkie dostępne obecnie na rynku komputery klasy PC z procesorami Intel lub AMD
pozwalają na zainstalowanie na nich systemu operacyjnego Linux. Minimalne wymagania
wobec komputera zapewniającego wystarczający komfort pracy z systemem
operacyjnym Linux to komputer z procesorem klasy Pentium II 200 MHz lub dowolnym
procesorem Celeron, napęd CD-ROM, pamięć operacyjna 64 MB RAM i wolna partycja
dysku twardego o wielkości około 2 GB. Inne parametry komputera, takie jak typ karty
grafiki, monitora czy karty sieciowej w praktyce nie mają obecnie większego znaczenia,
w procesie instalacji urządzenia te są zazwyczaj rozpoznawane automatycznie. Opisany
proces instalacji został przeprowadzony na komputerze z procesorem Intel Celeron 266
MHz, wyposażonym w 64 MB pamięci operacyjnej.
System operacyjny Linux może być zainstalowany na komputerze, na którym jest już
wykorzystywany inny system operacyjny, na przykład Windows. Użytkownik musi jednak
przygotować albo oddzielny dysk, albo wydzieloną partycję na już zamontowanym dysku,
która zostanie przeznaczona na zainstalowanie Linuksa. Aby użytkownik miał możliwość
wyboru systemu operacyjnego do pracy, instalacja Linuksa musi być przeprowadzona
jako ostatnia.
Instalacja systemu
W celu zainstalowania systemu Linux z płyty instalacyjnej, należy skonfigurować BIOS
komputera tak, by umożliwić start (boot) komputera z płyty CD. W różnych komputerach
odbywa się to w różny sposób. W celu rozpoczęcia instalacji systemu operacyjnego Linux
Red Hat 7.2 należy włożyć do napędu CD-ROM pierwszą płytę instalacyjną i zresetować
komputer. Po uruchomieniu komputera ekran wyboru sposobu instalacji systemu jest
przedstawiony na poniższym rysunku.
5
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 1. Ekran startowy instalacji systemu Linux
Po wciśnięciu jednego z wymienionych klawiszy funkcyjnych F2 do F5 zostanie
wyświetlona krótka informacja o różnych parametrach instalacji. Powrót do menu
głównego następuje po wciśnięciu klawisza F1. Po wciśnięciu klawisza Enter, zgodnie
z informacją na ekranie, rozpocznie się proces instalacji systemu operacyjnego Linux
w trybie graficznym. Szczegółowy opis procesu instalacji systemu z komentarzami
i poleceniami do wykonania przez użytkownika jest przedstawiony w Załączniku.
6
Podstawowe wiadomości o systemie operacyjnym Linux
3. Logowanie do systemu, programy telnet, ssh, putty.exe,
polecenia who, passwd, su
System operacyjny Linux jest z założenia systemem umożliwiającym pracę w sieci
komputerowej, pracę na komputerze zdalnym, czyli takim, do którego użytkownik może
nie mieć fizycznego dostępu, w zasadzie może nie wiedzieć, gdzie znajduje się komputer,
na którym pracuje. Dostęp do takiego komputera jest zapewniany przez sieć
komputerową przy wykorzystaniu terminala, czyli obecnie innego komputera, który może
pełnić taką funkcję. Podstawową usługą, umożliwiającą podłączenie się użytkownika do
zdalnego komputera, jest telnet. Jednak współcześnie w większości przypadków nie jest
możliwe skorzystanie z tej usługi w praktyce. W procesie logowania się przy
wykorzystaniu telnetu użytkownik podaje swoją nazwę (tzw. login), a następnie hasło.
Dane te są przesyłane pomiędzy terminalem (komputerem) użytkownika a serwerem
przez sieć komputerową bez żadnego zabezpieczenia — nie są szyfrowane. Jest to
potencjalne źródło ich przechwycenia i z tych względów administratorzy systemów Linux
nie zezwalają na korzystanie z usługi telnet. Uczestnicy kursu, których pierwszym
zadaniem było zainstalowanie systemu operacyjnego Linux, w opisie sposobu instalacji
systemu operacyjnego mieli podaną w instrukcji informację, by zablokować usługę telnet
na swoich komputerach. Zamiast logowania się przy wykorzystywaniu usługi telnet
stosuje się protokół SSH (Secure Shell), który pozwala na bezpieczniejsze (szyfrowane)
przesyłanie danych między terminalem i serwerem. Bardzo popularnym programem,
pracującym w środowisku Windows i pozwalającym na bezpieczne logowanie się do
systemu Linux, jest Putty.exe, który jest programem bezpłatnym i może być powszechnie
wykorzystywany. Program Putty.exe jest dostępny na wielu serwerach ftp, jak również
na internetowej głównej stronie programu:
http://www.chiark.greenend.org.uk/~sgtatham/putty/, skąd można pobrać jego
najnowszą wersję.
Poniżej zostanie opisany sposób konfiguracji programu.
Po uruchomieniu programu zostaje wyświetlone okno jego konfiguracji przedstawione na
poniższym rysunku.
7
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 2. Konfiguracja sesji w programie putty
Podstawowym elementem konfiguracji jest określenie serwera, do którego będzie
następowało połączenie przez podanie jego nazwy lub adresu IP w polu Host Name (or IP
address). W polu tym należy wpisać znaną nazwę komputera lub jego adres.
W powyższym przykładzie został podany adres IP 192.168.0.2, a jako protokół
połączeniowy należy wybrać SSH, co spowoduje automatycznie ustawienie portu 22.
Następnie należy wpisać nazwę sesji, która będzie identyfikowała podane połączenie,
przykładowo została wpisana jako RH72 (od zainstalowanego systemu Red Hat 7.2)
i zapisać, klikając klawisz Save. Nie jest to jeszcze koniec konfiguracji, należy określić
wygląd ekranu terminala, krój, rozmiar i kodowanie czcionek.
8
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 3. Konfiguracja parametrów programu putty
Wybierając zakładkę Appearance, a następnie klawisz Change, można dobrać odpowiedni
krój i rozmiar czcionki, zapewniające dobrą czytelność. W poniższym przykładzie została
wybrana pogrubiona czcionka Letter Gothic o rozmiarze 12 punktów. W zakładce
Translation należy wybrać sposób kodowania polskich czcionek. Wybranie z pokazanej
listy rozwijanej kodowania ISO-8859-2 zapewnia prawidłowe wyświetlanie na ekranie
polskich czcionek, w szczególności w plikach pomocy i dokumentach tekstowych.
Rysunek 4. Konfiguracja czcionek programu putty
9
Podstawowe wiadomości o systemie operacyjnym Linux
Po wprowadzeniu opisanych zmian należy przejść ponownie na zakładkę Session,
pokazaną na pierwszym rysunku i zapisać wprowadzone zmiany. Nawiązanie połączenia
z serwerem następuje po kliknięciu klawisza Open. Na ekranie pojawia się napis:
login as:
W odpowiedzi należy podać nazwę (login) użytkownika, a następnie hasło. Przykład
komunikatu po błędnie podanym haśle jest przedstawiony poniżej.
Rysunek 5. Rozpoczęcie sesji przy użyciu programu putty
Uwaga: Podanie nieprawidłowej nazwy użytkownika (login) uniemożliwi zalogowanie się
do systemu, ale będzie stale wyświetlany komunikat Access denied. Należy wówczas
zamknąć program i ponownie go uruchomić, wpisując prawidłową nazwę użytkownika
(login) i odpowiednie dla niego hasło.
Po zalogowaniu się do systemu można wpisać z klawiatury polecenie man ls, co łatwo
pozwala na sprawdzenie, czy program został prawidłowo skonfigurowany do wyświetlania
na ekranie tekstów w języku polskim. Polskie czcionki powinny być wyświetlane
prawidłowo, jak to jest pokazane na rysunku.
10
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 6. Przykład wyświetlenia strony podręcznika man
Powyżej został opisany sposób zdalnego logowania się użytkownika (rozpoczęcia pracy)
w systemie operacyjnym Linux przy wykorzystaniu programu putty.exe w sytuacji, gdy
połączenie z serwerem następuje poprzez sieć komputerową, a użytkownik nie ma
bezpośredniego dostępu do serwera linuksowego.
W sytuacji, gdy użytkownik pracuje bezpośrednio przy komputerze z zainstalowanym
systemem operacyjnym Linux, z punktu widzenia dostępu do systemu nie ma żadnej
różnicy. Użytkownik również musi się zalogować, gdyż na ekranie widzi napis:
Rysunek 7. Logowanie do systemu z konsoli
11
Podstawowe wiadomości o systemie operacyjnym Linux
Wpisując odpowiedni login i hasło, można zalogować się do systemu wielokrotnie.
Kombinacja klawiszy Alt + F1, Alt + F2 do Alt + F6 umożliwia użytkownikowi przełączanie
się pomiędzy sześcioma niezależnymi ekranami logowania, co pozwala na wielokrotne
zalogowanie się do systemu i jednoczesne równoległe wykonywanie wielu zadań.
W praktyce ta sama osoba pracująca przy jednej klawiaturze może zalogować się
wielokrotnie, korzystając z różnych kont (login), oczywiście jeśli zna właściwe hasła. Do
wylogowania się, czyli kończenia pracy w systemie operacyjnym Linux, służy polecenie
logout albo exit.
[jacnow@redhat72 jacnow]$ exit
Logout
There are stopped jobs_
[jacnow@redhat72 jacnow]$
Jak widać nie zawsze wpisane polecenie exit powoduje wylogowanie użytkownika.
Wyświetlony komunikat oznacza, że były wykonywane zadania uruchomione przez
użytkownika, które zostały przerwane. Kolejne wpisanie polecenia exit spowoduje
zakończenie sesji i wylogowanie użytkownika. Nie spowoduje to zakończenia pracy
komputera. Cechą komputerów pracujących pod kontrolą systemu operacyjnego Linux
jest to, że w zasadzie nie są wyłączane. Robi się to zazwyczaj w sytuacjach awaryjnych,
serwery są przeznaczone do pracy ciągłej.
Jak wspomniano wcześniej, w systemie Linux może jednocześnie pracować wielu
użytkowników. Każdy z nich może wiedzieć, kto jest zalogowany do systemu. W sytuacji,
kiedy jest możliwe wielokrotne logowanie się użytkownika na różnych konsolach
(ekranach) przy wykorzystaniu różnych nazw użytkowników (login), w łatwy sposób
każdy może sprawdzić, jako kto pracuje w systemie. Do tego celu służy polecenie
whoami.
Na ekranie po wydaniu tego polecenia zostanie wyświetlona nazwa użytkownika (login),
który wydał to polecenie, czyli tego, który pracuje przy tym terminalu. Polecenie who
wyświetla listę aktualnie zalogowanych użytkowników.
12
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 8. Przykład wykonania polecenia whoami i who
Jak widać z powyższego rysunku do systemu jest aktualnie zalogowanych trzech
użytkowników: jacnow, test1 i test2. Jeden z użytkowników jest zalogowany trzykrotnie,
jacnow zalogował się do systemu dwukrotnie z komputera o adresie IP równym
192.168.0.96, korzystając z sieci, a także na jednej z konsoli systemu, czyli pracuje
bezpośrednio na serwerze. Użytkownik test2 jest zalogowany dwukrotnie, raz poprzez
sieć komputerową, a raz z konsoli tty5, czyli dostęp do jego ekranu jest możliwy po
naciśnięciu kombinacji klawiszy Alt + F5. Użytkownik test1 jest zalogowany jednokrotnie,
jego ekran roboczy będzie widoczny po naciśnięciu Alt + F2.
Podczas instalacji systemu słuchacz miał utworzyć konta użytkownika test1, test2 i test3.
Jednym z parametrów podawanych przy tworzeniu konta było hasło. Często się zdarza,
że użytkownik po jakimś czasie chce zmienić swoje hasło. Do tego celu służy polecenie
passwd.
13
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 9. Zmiana hasła użytkownika poleceniem passwd
Ze względów bezpieczeństwa w systemie Linux są wbudowane mechanizmy,
niepozwalające na stosowanie zbyt prostych haseł, które mogą być łatwe do odgadnięcia.
W powyższym przykładzie hasło użytkownika test2 nie zostało zmienione, gdyż było zbyt
proste i podobne do nazwy konta. Jak widać, znaki wprowadzane z klawiatury przy
podawaniu hasła nie są wyświetlane nawet w postaci gwiazdek, jak to często jest robione
w programach służących do wypełniania pewnych pól w różnych formularzach.
Hasło dostępu do systemu może być zmienione tylko przez danego użytkownika lub
administratora komputera. Administrator (root) ma wszelkie uprawnienia do wszystkich
danych systemowych, w tym również do haseł wszystkich pozostałych użytkowników.
Administrator ich nie zna, ale zawsze może je zmienić i tym samym uniemożliwić
określonemu użytkownikowi zalogowanie się i dostęp do komputera. Zazwyczaj
administrator (root) nie może logować się do systemu Linux bezpośrednio. Może uzyskać
uprawnienia administratora po wcześniejszym zalogowaniu się jako inny użytkownik,
wydaniu polecenia su (superuser) i wpisaniu znanego mu hasła administratora. Na
poniższym rysunku przedstawiono sposób uzyskania uprawnień administratora i przykład
sposobu zmiany hasła użytkownika test3. Należy zwrócić uwagę na fakt, że chociaż
system wyświetlił komunikat, iż hasło jest zbyt proste, to je zaakceptował po ponownym
wpisaniu przez użytkownika tego samego (prostego) hasła.
14
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 10. Zmiana hasła wykonywana przez administratora
Należy zauważyć różnicę w ostatnim znaku zgłoszenia systemowego. W przypadku
administratora (root) tym znakiem jest znak „#” (krzyżyk), w przypadku pozostałych
użytkowników znak „$” (symbol dolara).
15
Podstawowe wiadomości o systemie operacyjnym Linux
4. Pomoc w systemie Linux. Podstawy obsługi programu
terminala, autouzupełnianie poleceń
Przy opisywaniu konfiguracji programu putty.exe zostało podane polecenie man ls,
którego wykonanie pozwalało na sprawdzenie, czy polskie litery są prawidłowo
wyświetlane na ekranie. Nie została omówiona treść wyświetlona na ekranie, gdyż wtedy
to nie miało większego znaczenia. Polecenie man (skrót od manual pages) jest
podstawowym poleceniem, wyświetlającym pomoc do poleceń, funkcji, zmiennych
i innych wielkości określających funkcjonalność Linuksa. Jest to podstawowy podręcznik,
w którym są umieszczone informacje dotyczące większości zagadnień związanych
z Linuksem. Korzystanie z pomocy jest bardzo proste. Należy wpisać polecenie man
i nazwę programu, dla którego pomoc chcemy wyświetlić. Podanie tylko polecenia man
powoduje zadanie pytania o stronę podręcznika do wyświetlenia, czyli polecenie man
należy zawsze wywoływać z parametrem, na przykład man more.
Rysunek 11. Wyświetlanie pomocy do polecenia (podręcznika)
Ten sposób wyświetlania pomocy jest podstawowy w systemie Linux. Podręcznik ten
został opracowany do bardzo dużej liczby poleceń i zawiera wszystkie niezbędne
informacje dotyczące danego polecenia. Język tego podręcznika jest trochę specyficzny
i należy nabrać wprawy w jego czytaniu i rozumieniu. Podręcznik zawiera komplet
16
Podstawowe wiadomości o systemie operacyjnym Linux
informacji o wszystkich możliwych parametrach określonego polecenia i ich znaczeniu.
Jest bardzo zwięzły i przez to wymaga skupienia przy czytaniu. Podręcznik ten jest
systematycznie rozwijany i uzupełniany o nowe pliki pomocy w coraz większej liczbie
języków. Zdarza się, że część pomocy jest wyświetlana w języku polskim, część w języku
angielskim. Rzadko się zdarza, by informacje pomocnicze o pewnym poleceniu zmieściły
się na jednym ekranie. Zazwyczaj obejmują one kilka stron, które należy przewinąć. Jest
to realizowane za pomocą klawiszy kierunkowych, choć tradycyjnie przewijanie o jeden
ekran do przodu było wykonywane naciśnięciem klawisza spacji, o jedną linię do przodu
klawiszem Enter. Wciśnięcie litery q kończy wyświetlanie danego tematu pomocy.
Obsługa terminala jest bardzo prosta i łatwa, w szczególności dla osób, które nie lubią
zbyt dużo pisać na klawiaturze. W system zostało wbudowanych wiele ułatwień, między
innymi możliwości edycji poprzednio wydanych poleceń oraz automatyczne uzupełnianie
nazw plików w linii poleceń. Po wykonaniu dowolnego polecenia naciśnięcie klawisza
strzałki do góry powoduje wyświetlenie w linii komend poprzednio wykonanego polecenia.
W ten sposób można znacznie ułatwić sobie wprowadzanie danych i uruchamianie
programów i jednocześnie przyspieszyć pracę. Drugim, jeszcze praktyczniejszym,
ułatwieniem jest uzupełnianie nazw plików w linii poleceń. Zostanie to wyjaśnione na
przykładzie.
Polecenie ls -la wyświetla zawartość katalogu (szczegółowo polecenie to zostanie
omówione później). Z poniższego rysunku widać, że lista plików zawiera siedem pozycji.
Kolejnym zadaniem do wykonania jest wyświetlenie na ekranie zawartości pliku
.bash_logout. Jest to realizowane poleceniem cat .bash_logout. By je wykonać,
należy wpisać 16 znaków. Można również to polecenie wydać prościej, przy mniejszej
liczbie wpisanych znaków. System może uzupełniać polecenie wpisane przez użytkownika
o nazwę pliku, znajdującego się w katalogu, dla którego jest wydawane polecenie.
Zazwyczaj (ale nie zawsze) parametrem wywołania jakiegoś programu użytkowego jest
nazwa pliku. Jeżeli w trakcie wpisywania polecenia użytkownik wciśnie klawisz tabulacji,
to system będzie próbował dokończyć linię polecenia, uzupełniając częściowo wpisany
tekst o nazwę pliku.
17
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 12. Przykład działania autouzupełniania poleceń
W powyższym przykładzie użytkownik wpisuje tekst cat .b, a następnie wciska klawisz
tabulatora. System uzupełnia linię o znaki ash do tekstu cat .bash, gdyż dalsze
uzupełnienie linii nie jest możliwe. Istnieją trzy pliki o nazwach rozpoczynających się od
.bash i system nie może dokonać wyboru. Dwukrotne wciśnięcie klawisza tabulatora
wyświetla nazwy plików, które mogą być dokończone — gdy liczba plików pasujących do
wzorca jest bardzo duża, system wymaga potwierdzenia, na przykład Display all 905
possibilities? (y or n). Wystarczy, że użytkownik wpisze znaki _l i wciśnie tabulator, by
linia poleceń została uzupełniona do końca. Okazuje się, że — aby wykonać to samo
polecenie — zamiast 16 wystarczyło wpisać 10 znaków.
Z rysunku przedstawiającego fragment podręcznika dla polecenia more widać, że to
proste polecenie może mieć kilka parametrów. Zasada wydawania poleceń w systemie
operacyjnym Linux jest taka, że parametry wywołania programu oddziela się od nazwy
polecenia i od siebie spacjami. Przykładowo polecenie ls może być wywołane
z parametrem -a. Prawidłowo należy wpisać ls -a. Częstym błędem popełnianym przez
początkujących użytkowników systemu Linux jest zapominanie o spacji oddzielającej
nazwę polecenia od jego kolejnych parametrów wywołania.
18
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 13. Przykład wyświetlania zawartości katalogu
Jak widać na rysunku, próba wykonania polecenia ls-a powoduje wyświetlenie
komunikatu o błędzie, prawidłowo napisana komenda ls -a zostaje wykonana. Ekran
terminala o rozdzielczości 80 znaków na 24 linie nie jest duży. Powinien być racjonalnie
wykorzystywany, więc wskazane jest jego okresowe wyczyszczenie. Jest to realizowane
poleceniem clear — jednym z nielicznych, do którego nie podaje się parametrów.
19
Podstawowe wiadomości o systemie operacyjnym Linux
5. Zarządzanie procesami w systemie Linux
Z treści poprzednich tematów wynika, że komputer pracujący z systemem operacyjnym
Linux może być obciążany wieloma zadaniami zlecanymi przez różnych użytkowników.
Jak można zapanować nad programami uruchomionymi przez różnych użytkowników?
Czy wiadomo, do jakich zadań komputer jest przez nich wykorzystywany? Czy jest
możliwość przerwania jakiegoś programu? Przecież programista mógł popełnić błąd, który
spowodował, że program nigdy nie zostanie zakończony. Podstawowym narzędziem,
które pozwala monitorować uruchomione procesy, jest ps (process status).
Rysunek 14. Przykład działania polecenia ps
Polecenie to wyświetla informacje o procesach uruchomionych w systemie. Z rysunku
widać, że w systemie jest aktywnych sześć terminali, a działają tylko dwa procesy.
W wyświetlonej tabeli pierwsza kolumna PID oznacza identyfikator procesu, TTY oznacza
terminal, z którego uruchomiono proces, TIME — czas procesora zużyty na wykonanie
procesu i CMD — polecenie, którym proces został uruchomiony. Jednak bliższe
przyjrzenie się rysunkowi pokazuje, że na bieżącym terminalu (pts/0) są uruchomione
dwa procesy.
20
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 15. Przykład wyświetlenia listy działających procesów
Polecenie ps -ef pozwala na wyświetlenie listy wszystkich uruchomionych procesów, co
zostało pokazane na rysunku. Okazuje się, że w systemie działa 55 procesów, co jest
liczbą bardzo niską jak na ten system. Jednak w sytuacji, gdy jakiś z procesów nie może
zostać przerwany przez użytkownika (na przykład z powodu braku dostępu do terminala,
z którego został uruchomiony), można posłużyć się poleceniem kill, służącym do
zamykania działających procesów. Polecenie kill wywołuje się z parametrem, którym
jest identyfikator procesu, czyli liczba wyświetlana w kolumnie oznaczonej PID.
W powyższym przykładzie można zakończyć proces mc, oznaczony identyfikatorem
10118, wydając polecenie kill 10118.
21
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 16. Przykład działania polecenia kill
Okazuje się, że nie jest możliwe zakończenie procesu, którego nie jest się właścicielem.
Proces o numerze 10118 został uruchomiony przez użytkownika test2, a próbę jego
zakończenia podjął użytkownik jacnow. Tylko administrator (root) może zakończyć każdy
z procesów, niezależnie od tego, przez jakiego użytkownika został uruchomiony.
Kolejny rysunek pokazuje również listę procesów wyświetloną poleceniem
ps -aux | grep test2. Lista ta zawiera tylko procesy uruchomione przez użytkownika
test2 i proces uruchomiony przez roota, ale w tej linii jest wymieniona nazwa
użytkownika test2. U dołu ekranu jest pokazany wynik działania polecenia
ps -aux | grep test2 | wc, czyli trzy liczby. W obydwu przypadkach, korzystając
z jednego polecenia, użytkownik uruchomił dwa lub trzy procesy: ps, grep i w ostatnim
przypadku również wc w taki sposób, że procesy te zostały wykonane w kolejności jeden
po drugim. Dane, które były wynikiem działania pierwszego z procesów (ps), zostały
przyjęte jako dane wejściowe drugiego z procesów (grep). Wynik działania tego procesu
został przejęty przez program wc, który został uruchomiony jako ostatni. „Połączenie”
tych procesów, a właściwie ich danych, zostało symbolicznie zaznaczone znakiem „|”,
czyli został utworzony tzw. potok danych. Program grep otrzymał dane w postaci listy
procesów, odszukał w niej linie zawierające ciąg znaków test2, przekazał je do programu
wc, który policzył w tych danych wiersze, wyrazy, znaki i wyświetlił ich liczbę.
22
Podstawowe wiadomości o systemie operacyjnym Linux
Rysunek 17. Przykład wykorzystania strumieni danych
Dane do procesu są dostarczane strumieniem wejściowym i odbierane strumieniem
wyjściowym. Często strumień wyjściowy jest kierowany na ekran terminala, jak
w poleceniu ps. Można z tych danych utworzyć plik i zapisać go na dysku, kierując
strumień wyjściowy do pliku poleceniem ps –ef > procesy.txt. W pliku tym można
poszukać tekstu „test2” poleceniem grep test2 < procesy.txt.
Przydatnym programem, pozwalającym na zorientowanie się w stopniu obciążenia
systemu jest top. Wyświetla on ciągle między innymi listę uruchomionych procesów,
obciążenie procesora, wykorzystanie pamięci.
23
Podstawowe wiadomości o systemie operacyjnym Linux
24
Rysunek 18. Przykład działania programu top
Działa w sposób interakcyjny, pozwalając na wprowadzenie jednoliterowego parametru,
określającego wyświetlane informacje. Najważniejsze z parametrów to:
h (help) — wyświetla listę dostępnych poleceń,
u (user) — wyświetla listę procesów określonego użytkownika,
i (idle) — przełącza wyświetlanie nieaktywnych procesów,
N (number) — procesy są wyświetlane w kolejności ich numerów identyfikacyjnych
(PID),
P (procesor) — procesy są wyświetlane w kolejności wykorzystania procesora (CPU),
s (seconds) — określa odstęp czasu między odświeżaniem ekranu,
q (quit) — koniec pracy programu top.
Wylogowanie wszystkich użytkowników nie wyłącza systemu. Polecenie exit można
zastąpić wciśnięciem kombinacji klawiszy Ctrl+D, co również może wylogować
użytkownika, a do zamknięcia systemu Linux po pierwszych zajęciach najprościej jest
użyć kombinacji klawiszy Ctrl+Alt+Del. Po zresetowaniu komputera należy wyłączyć
zasilanie lub uruchomić komputer.