Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 1: Wprowadzenie do systemu UNIX Interpretator poleceń Interpreter poleceń użytkownika, czyli inaczej powłoka. Powłoka pośredniczy pomiędzy użytkownikiem a jadrem. Kiedy użytkownik rozpoczyna prace (loguje sie do sytemu podając poprawny identyfikator konta i hasło) system operacyjny uruchamia program powłoki, który pobiera polecenia do wykonania z klawiatury terminala użytkownika. W systemie UNIX istnieje wiele rożnych powłok (np. sh, ksh, zsh, csh itd.). Administrator przydziela każdemu użytkownikowi jego powłokę standardowa (uruchamiana w chwili logowania sie do systemu); użytkownik może tez uruchomić dowolna powłokę zainstalowana w systemie. Shell interpretuje pierwsze słowo w wierszu polecenia, jako nazwę polecenia. $ ls -l plik? "test?" 1. Shell wczytuje polecenie do wewnętrznego bufora. ls -l plik? "test?" Polecenie jest dzielone na części nazywane słowami. Shell określa znaczenie każdego słowa. Shell szuka i przetwarza znaki specjalne. Rysunek 1. Podział polecenia
Rysunek 2. Interpretacja poszczególnych elementów polecenia W wyniku dokonanych przekształceń Shell zleca wykonanie polecenia o postaci: ls -l plik1 plik2 plik3 test? Shell "usypia" i czeka na zakończenie wykonywania polecenia. Po zakończeniu wykonywania polecenia zgłasza gotowość przyjęcia nowego polecenia. Wybrane podstawowe polecenia Identyfikacja użytkownika Konta użytkowników Każdy użytkownik systemu ma swój identyfikator (login id), za pomocą którego wchodzi do systemu. Pełna informacja o użytkowniku obejmuje: Rysunek 3. Pełne informacje o użytkowniku
Tabela 1. Opis poszczególnych elementów Nazwa Opis Identyfikator użytkownika (ang. login ID) - używany przy rozpoczynaniu pracy Hasło (ang. password) - jest zakodowane Numer użytkownika (ang. user identifier) - liczbowy identyfikator użytkownika w systemie Numer grupy użytkownika (ang. group identifier) - użytkownicy systemu podzieleni są na grupy; grupa może mieć podobne prawa dostępu do plików Informacja o osobie dowolny tekst komentarza Katalog domowy (ang. home directory) - w tym katalogu użytkownik znajdzie się po rozpoczęciu sesji (pełna ścieżka) Shell ten shell zostanie wywołany po rozpoczęciu sesji Sprawdzanie informacji o użytkowniku $ id uid=5214(agata) gid=11(users) $ finger agata Login name: agata In real life: Agata Kowalska Directory: /home/agata Shell: /bin/ksh Last login: Thu Mar 11 13:42 on ttyp2. $ who am i agata ttyp3 Mar 13 18:34 Kto pracuje w systemie -polecenie who Składnia: Przykład: who [am i] Informacja o użytkownikach prowadzących sesję Rysunek 4. Wykonanie polecenia
Logowanie się użytkownika w systemie Po uruchomieniu systemu, pojawia nam się okno wyboru systemu. Rysunek 5. Okno wyboru systemu Po wybraniu pierwszej pozycji, po chwili przechodzimy do okna logowania. W pierwszym kroku wpisujemy nazwę użytkownika, a następnie przypisane mu hasło. Rysunek 6. Logowanie Dodatkowymi opcjami w okienku logowania jest wyświetlenie okna pomocy, w którym opisane są wszystkie opcje okna logowania.
Dostępne opcje przedstawia poniższy rysunek Rysunek 7. Okno pomocy Rysunek 8. Ustawienia logowania Pierwsza opcja dotyczy zmiany języka. Następna opcja Session służy do wybrania preferowanego pulpitu użytkownika. Dostępne są tutaj: Common Deskop Environment dla CDE; Java Deskop System dla JDS; User s Last Deskop ustawienia z poprzedniej sesji;
FailSafe Session dla okna terminala. Kolejne opcje to Command Line Login służąca do przełączenia do środowiska tekstowego wiersza poleceń, oraz Reset Login Screen ponowne uruchomienie serwera i okna logowania. Podstawowe powłoki Powłoka (ang. shell) jest interfejsem między użytkownikiem a systemem operacyjnym. Jej podstawową funkcją jest interpretacja i wykonanie poleceń użytkownika. W celu ułatwienia wprowadzania często powtarzających się ciągów poleceń dla systemu operacyjnego powłoka udostępnia język programowania poleceń użytkownika (będzie on dalej nazywany językiem powłoki). Jest to program, który pośredniczy między jądrem systemu (kernel), systemem plików (file system) i programami usługowymi (utilities). Rysunek 9. Powłoki - objaśnienie Powłoka Korna Powłoka Bourne a Jądro Powłoka C Jądro Rysunek 10. Rozkład powłok w systemie UNIX Podstawowe funkcje shella Przekazywanie sterowania do programu wybranego poleceniem użytkownika Wykonywanie wbudowanych poleceń Dostarczenie języka do pisania skryptów
Ustawianie środowiska pracy Przywoływanie i edycja uprzednio wydanych poleceń Przeadresowywanie wejścia - wyjścia poleceń Generowanie nazw plików Umożliwienie łączenia poleceń w potok Umożliwienie przetwarzania w drugim planie (nie interakcyjnie) Wszystkie dostępne powłoki: /usr/bin/sh powłoka Bourne a, standardowa powłoka systemu UNIX /usr/bin/csh powłoka C, podobna do powłoki Bourne a, lecz dodatkowo zawiera rejestr wydawanych komend oraz wygodny sposób ponownego wydawania tych samych komend. /usr/bin/ksh powłoka Korna, łączy właściwości powłok Bourne a i C. /usr/xpg4/bin/sh powłoka POSIX (Single Unix Specification), podobny do Korn Shell.a. /usr/bin/bash Bourne Again /usr/bin/tcsh TENEX C /usr/bin/zsh Dokumentacja powłok man sh (1) man ksh (1) man csh (1) http://docs.sun.com http://www.opengroup.org Najczęściej stosowanymi powłokami w różnych implementacjach systemu UNIX są: powłoka Bourne'a (sh) powłoka Korna (ksh) powłoka C (csh) Powłoka Korna czyta jedna linie dzieli dane na tokeny: słowa i operatory dzieli dane na polecenia proste i złożone określa kategorie gramatyczne tokenów wykonuje podstawienia, oddzielnie na każdym słowie
traktuje otrzymane dane, jako listę pól: nazwę polecenia i argumenty wykonuje przekierowania we/wy i usuwa je z listy pól przekazując argumenty wykonuje funkcje polecenia wbudowane programy z plików wykonywalnych skrypty opcjonalnie czeka na zakończenie wykonywania i odbiera status wyjściowy Powłoka C (csh) Jest jedną z systemowych powłok uniksowych. Została stworzona przez Billa Joya dla systemu BSD. Nazwa C shell jest grą słów: dosłownie oznacza powłokę języka C,fonetycznie da się to jednak odczytać sea shell, czyli muszelka. Powłoka ta pochodzi od /bin/sh. Składnia języka zastosowanego w powłoce jest bazowana na języku C. Powłoka C shell wniosła wiele ulepszeń w stosunku do sh, takich jak m.in. aliasy i historia komend. Obecnie csh nie jest zbyt często wykorzystywana Powłoka ksh Ksh. Korn Shell-Stworzona przez Davida Korna z AT& t Bell Labs. Kompatybilna z powłoką sh. Zawiera elementy powłoki csh, oraz kilka innych funkcji:ksh (shell scripting); ksh-powłoka systemowa ksh-strona projektu. Awk; awk-jezyk przetwarzania wzorców. Sed; sed-edytor strumieniowy, prosty język. 3) Zadania do samodzielnego rozwiązania Podstawy użytkowania systemu 1. Spróbuj rozpocząć pracę w systemie Unix celowo robiąc błędy: wpisz nieprawidłowy identyfikator (nazwę) użytkownika wpisz nieprawidłowe hasło użyj dużej litery w identyfikatorze wpisz wszystko prawidłowo
Rysunek 11. Logowanie na konto root 2. Zakończ pracę za pomocą polecenia exit. W jaki sposób poznasz, że zakończyłeś sesję? logout 3. Rozpocznij nową sesję. Na jakim komputerze i z jakim systemem operacyjnym pracujesz? who 4. Zmień hasło. Pamiętaj o wymaganiach, które musi spełniać. Wybrane podstawowe polecenia Rysunek 12. Zmiana hasła 1. Sprawdź jaki masz identyfikator liczbowy i do jakiej grupy należysz? Rysunek 13. Polecenie id 2. Sprawdź ilu użytkowników aktualnie pracuje w systemie. Rysunek 14. Polecenie who 3. Użyj polecenia finger, aby uzyskać informacje o użytkowniku user.
Rysunek 15. Wynik polecenia finger user Powłoki systemowe 1. Sprawdź typ powłoki w której pracujesz. Rysunek 16. Sprawdzanie powłoki trzema sposobami
2. Uruchom powłokę przeciwną do tej, w której pracujesz. a. /usr/bin/csh shell C b. /usr/old/bin/sh shell Bourne a c. /usr/bin/ksh shell Korna d. /usr/bin/sh shell Posix Rysunek 17. Zmiana powłoki