Systemy operacyjne Instrukcja laboratoryjna Ćwiczenie 1: Polecenia systemu UNIX/LINUX Opracował: dr inż. Piotr Szpryngier Olsztyn 2009 1
Wprowadzenie. Cel zajęć praktycznych. Wymagania stawiane studentom znajomość uruchamiania programów w środowisku WINDOWS, umiejętność programowania C, znajomość podstawowych pojęć z architektury systemów komputerowych. Stosowane narzędzia i technologie narzędzia programistyczne dostępne w laboratoriach szkoły, Materiały wprowadzające i pomocnicze dostępne materiały wykładowe (www.owsiiz.edu.pl/elearn), - podręczniki dostępne w czytelni szkoły. Cel zajęć poznanie uczestników zajęć z podstawowymi poleceniami systemu UNIX, poznanie roli zmiennych otoczenia, poznanie i utrwalenie wiedzy nt. budowy systemu, struktury katalogów, zasad realizacji poleceń. 2
Przebieg zajęć. 1. Logowanie się do systemu. 2. Posługiwanie się podstawowymi poleceniami: cd, ls, less, more, cat, cp, mkdir, rmdir, rm, mv. 3. Posługiwanie się poleceniami: zmiany uprawnień chmod, zmiany właściciela pliku chown, zmiany grupy pliku chgrp, maski tworzenia plików umask. 4. Posługiwanie się poleceniami zarządzania procesami: ps, kill. Ad. 1 Po uruchomieniu systemu otwieramy okno terminala. Jeśli jest to wymagane, podajemy login: student password: test Należy wykonać kolejno opisane polecenia, używając wskazanych przez prowadzącego opcji. Ad. 2 Polecenie składa się z następujących elementów: <nazwa_polecenia> -<opcje> <parametry> Nazwą polecenia jest nazwa jakiegokolwiek programu, funkcji powłoki lub funkcji wewnętrznej powłoki. Opcje to najczęściej zestaw pojedynczych liter określających sposób wykonania programu. Parametry to informacje dla programu (funkcji) co właściwie ma wykonać. Uwaga: w systemie jest dostępny podręcznik opisujący działanie poleceń systemowych. Sposób wywołania: man nazwa_polecenie np. man ls wyświetli opis polecenia wraz z opcjami dostępnymi w danej wersji systemu. 2.0 Polecenie cd 3
Polecenie to służy do zmiany aktualnego katalogu. Jeśli nie podamy argumentu, domyślnie przyjmowany jest katalog domowy podany w zmiennej $HOME. Katalog / oznacza główny katalog systemu LINUX/UNIX. 2.1 polecenie ls wyświetl zawartość katalogu Jeśli nie podamy żadnego argumentu, zostanie wyświetlona zawartość katalogu aktualnego (miejsca, w którym aktualnie znajduje się użytkownik). Często stosowane opcje (pozostałe opisane w podręczniku man): R rekursywnie wyświetlaj poddrzewo a wyświetl wszystkie pozycje skorowidza, nawet rozpoczynające się od '.' d nie listuj zawartości skorowidzów i podaj numery węzłów dla plików l długi listing: tryb (typ i uprawnienia), liczba łączników, właściciel, grupa, wielkość, czas r odwróć porządek sortowania s podaj wielkość w blokach t sortuj w/g czasu, najnowsze na początku Po wpisaniu poleceń cd / ls l otrzymujemy następujący wydruk na ekranie terminala głównego katalogu systemowego: razem 80 drwxr-xr-x 2 root root 4096 2008-10-07 22:25 bin drwxr-xr-x 3 root root 4096 2008-10-28 18:31 boot lrwxrwxrwx 1 root root 11 2008-10-07 21:30 cdrom -> media/cdrom drwxr-xr-x 13 root root 4280 2009-03-06 12:03 dev drwxr-xr-x 108 root root 4096 2009-03-06 12:02 etc drwxr-xr-x 3 root root 4096 2008-10-07 22:30 home drwxr-xr-x 2 root root 4096 2008-10-07 21:32 initrd lrwxrwxrwx 1 root root 28 2008-10-07 21:34 initrd.img -> boot/initrd.img-2.6.18-6-686 drwxr-xr-x 15 root root 4096 2008-10-07 22:25 lib drwx------ 2 root root 16384 2008-10-07 21:30 lost+found drwxr-xr-x 4 root root 4096 2008-11-12 13:33 media drwxr-xr-x 2 root root 4096 2006-10-28 16:06 mnt drwxr-xr-x 2 root root 4096 2008-10-07 21:32 opt dr-xr-xr-x 144 root root 0 2009-03-06 13:02 proc drwxr-xr-x 8 root root 4096 2008-11-17 20:15 root drwxr-xr-x 2 root root 4096 2008-10-07 22:30 sbin drwxr-xr-x 2 root root 4096 2007-03-07 23:56 selinux drwxr-xr-x 2 root root 4096 2008-10-07 21:32 srv drwxr-xr-x 11 root root 0 2009-03-06 13:02 sys drwxrwxrwt 10 root root 4096 2009-03-06 12:17 tmp drwxr-xr-x 11 root root 4096 2008-10-07 22:20 usr drwxr-xr-x 15 root root 4096 2008-10-07 22:28 var lrwxrwxrwx 1 root root 25 2008-10-07 21:34 vmlinuz -> boot/vmlinuz-2.6.18-6-686 W podobny sposób obejrzyj zawartość katalogów dev, etc, bin, usr. 4
Jak interpretujemy ich zawartość? Po wpisaniu poleceń cd $HOME ls a otrzymujemy wydruk na ekranie terminala katalogu domowego. Porównaj wydruki po wykonaniu polecenia: ls l. Jaką widzisz różnicę? Co oznaczają pliki o nazwie zaczynającej się od znaku kropki? 2.2 Polecenie cat połącz (concatenate) i wyświetl pliki Polecenie wyświetla kolejno na standardowym wyjściu (ekran terminala) kolejne pliki, których nazwy są umieszczone w wierszu polecenia. Możemy wyświetlane pliki połączyć w jeden nowy plik, przekierowując odpowiednio standardowe wyjście: np. cat plik1 plik2 plik3 > plik4 //połącz trzy pliki w jeden znaki // oddzielają komentarz od polecenia i nie są interpretowane. Uwaga: polecenie cat można w tej formie używać zamiennie z poleceniem cp (kopiuj pliki) Wyświetl zawartość pliku.bash_profile. Jak interpretujemy jego zawartość? Połącz (powiel) ten plik, tworząc inny plik roboczy o nazwie rob_profile. 2.3 Polecenia more i less Polecenia te stanowią rodzaj filtru, wyświetlając zawartość pliku (będącego argumentem polecenia) na ekranie terminalu w porcjach wielkości strony (typowo 25 wierszy). Polecenie more ma charakter jednokierunkowy (nie można cofnąć się do poprzednio wyświetlanej strony), natomiast polecenie less pozwala poruszać się w obu kierunkach. Zakończenie polecenia następuje po naciśnięciu znaku q (quit). 2.4 Polecenia mkdir i rmdir Polecenia służą odpowiednio do utworzenia i usunięcia katalogu, którego nazwa jest argumentem. Używając tzw. znaków specjalnych (wildcards) można usunąć więcej jak jeden katalog. Utwórz katalog roboczy w katalogu domowym o nazwie: nazwisko_studenta. Następnie usuń ten katalog i ponownie utwórz. 2.5 Polecenia cp, rm, mv 5
Polecenie cp służy do kopiowania plików. Sposób użycia np. $ cp plik1 plik2 plik3 /usr/tst/tmp // skopiuj trzy pliki do katalogu /usr/tst/tmp Polecenie copy kopiuje zawartości katalogów (grupy plików) do innego katalogu. Polecenie rm usuwa plik, a także grupy plików. Na przykład rm * spowoduje usunięcie wszystkich plików w danym katalogu. Będąc administratorem możemy w ten sposób usunąć zawartość całego systemu plików!!! Często stosowane opcje polecenia rm (pozostałe opisane w podręczniku man): f rm działa bez zadawania pytań użytkownikowi i wymusza tryb interaktywny, nawet gdy standardowym wejściem nie jest terminal r rekursywnie usuwa zawartość skorowidzów i same skorowidze, wyspecyfikowane w parametrach wywołania Polecenie mv przenosi plik do innego (wskazanego) katalogu i/lub zmienia jego nazwę, np.: // przenieś trzy pliki do katalogu /u/tmp $ mv plik1.txt plik2.txt plik3.txt /u/tmp Przenieś powielone pliki do nowego katalogu. Ad. 3 Polecenie chmod służy do zmiany (ustawienia) praw dostępu do pliku. Może tego dokonać jedynie właściciel pliku lub administrator (superuser, root). Maskę uprawnień podajemy w postaci liczby oktalnej, np. // pozwól wszystkim użytkownikom wykonywać plik mtest, grupie czytać go, a właścicielowi czytać i pisać $ chmod 751 mtest Uwaga: Podczas przygotowywania skryptów należy użyć tego polecenia w stosunku do pliku zawierającego tekst skryptu, aby można go było później uruchomić. 6
Polecenie umask pozwala ustawić nową maskę uprawnień nadawaną domyślnie plikom podczas ich tworzenia. Wykonanie polecenia bez argumentu wyświetla aktualną maskę uprawnień. Polecenia chown, chgrp służą do zmiany właściciela lub grupy pliku i są używane najczęściej podczas instalacji bądź rekonfiguracji złożonych aplikacji, np. baz danych. Wyświetl, a następnie zmień maskę uprawnień. Ad. 4 Polecenie ps służy do wyświetlenia listy aktualnych procesów. Typowe opcje to: e wyświetl wszystkie procesy f generuj pełną informację o procesach t termlist wyświetl procesy związane z terminalem termlist u uidlist wyświetl procesy związane z użytkownikiem uidlist g gidlist wyświetl procesy związane z grupą gidlist Wyświetl listę procesów własnych, a następnie wszystkich z pełnym opisem. Polecenie kill służy do przesłania sygnału danego typu do wskazanego procesu. Np. // wyślij sygnał 9 do procesu 1132 $ kill -9 1132 Powoduje bezwzględne zakończenie działania procesu o identyfikatorze 1132. Zasady oceniania. Aby zaliczyć ćwiczenia laboratoryjne, student musi wykonać poprawnie polecenia i zadania podane przez prowadzącego. Poprawna odpowiedź za zadawane w trakcie pytania wpłynie na wysokość oceny. 7