1. Działanie interpretera poleceń (powłoki)

Dokument: pdf (145.8 KB)
  • 4 stron
Opublikowany 2017-07-23 02:21:13

08.03.2017, 00*58Systemy Operacyjne - Lekcja 4 - Segment 1 Strona 1 z 4http://oldwww.imio.pw.edu.pl/wwwvlsi/cad/teaching/soe/materialy/LEKCJA4/SEGMENT1/MAIN.HTM 1. Działanie interpretera poleceń W systemach UNIX i Linux interpreter poleceń określany jest również jako powłoka (ang. shell). Nazwa wywodzi się stąd, że program ten pełni rolę warstwy pośredniczącej między użytkownikiem a systemem operacyjnym. W dalszej części będziemy posługiwać się zamiennie obydwoma określeniami. (1.1) Przegląd interpreterów Pierwszym interpreterem napisanym dla systemu UNIX był sh, czyli powłoka Bourne'a (ang. Bourne shell). Program ten odznacza się dużą szybkością działania i z tego względu jest wciąż powszechnie wykorzystywany do uruchamiania skryptów. Jego funkcjonalność jest niestety mocno ograniczona podczas pracy interaktywnej ze względu na brak licznych udogodnień, które oferują nowocześniejsze powłoki. Znacznie wygodniejszy jest drugi klasyczny interpreter csh (ang. C shell). Program csh oferuje m.in. historię poleceń, aliasy, i sterowanie pracami. Składnia złożonych poleceń jest bardzo zbliżona do języka C (w którym został napisany) i różni się znacząco od składni stosowanej w sh. Trzecim klasycznym interpreterem jest ksh (ang. Korn shell), stanowiący rozszerzenie programu sh o wiele nowych funkcji. Z założenia, ksh przeznaczony był dla administratorów i raczej nie zdobył uznania zwykłych użytkowników ze względu na skomplikowaną składnię. Obecnie największą popularność cieszą się nowoczesne interpretery łączące duże możliwości z łatwością obsługi. Należy tu wymienić powłoki zsh i bash (ang. Bourne Again shell), powstałe z rozwinięcia sh, oraz powłokę tcsh. Powłoka zsh staje się powoli standardem systemu UNIX, zaś bash jest od samego początku podstawowym i domyślnym interpreterem Linuxa. W dalszej części tej lekcji opisujemy powłokę zsh. (1.2) Pliki konfiguracyjne Powłoka zsh może wykorzystać kilka plików konfiguracyjnych w zależności od sposobu uruchomienia. Powłoka uruchomiona po zalogowaniu użytkownika (ang. login shell) odczytuje kolejno zawartość następujących plików: /etc/zshenv ~/.zshenv /etc/zprofile ~/.zprofile /etc/zshrc ~/.zshrc /etc/zlogin ~/.zlogin Każda kolejna powłoka odczytuje zawartość plików: /etc/zshenv ~/.zshenv Każda powłoka interaktywna odczytuje ponadto: 08.03.2017, 00*58Systemy Operacyjne - Lekcja 4 - Segment 1 Strona 2 z 4http://oldwww.imio.pw.edu.pl/wwwvlsi/cad/teaching/soe/materialy/LEKCJA4/SEGMENT1/MAIN.HTM /etc/zshrc ~/.zshrc (1.3) Edycja poleceń Powłoka zsh daje bogate możliwości edycji poleceń. Pozwala łatwo modyfikować wpisane polecenie poprzez przemieszczanie się kursorami i w wierszu, usuwanie niepoprawnych znaków i wstawianie nowych. Jest to szczególnie przydatne do poprawiania długich poleceń złożonych z wielu wyrazów, w których błąd popełniono na samym początku. Opisany poniżej mechanizm historii pozwala przywołać takie polecenie, poprawić i ponownie wykonać. Interpreter umożliwia ponadto uzupełnianie nazw poleceń i plików podczas edycji wiersza polecenia. Po wprowadzeniu początkowego fragmentu nazwy polecenia można wcisnąć [Tab], aby powłoka odnalazła i uzupełniła nazwę. Poszukiwania prowadzone są wśród wbudowanych poleceń oraz w katalogach wymienionych w ścieżce poszukiwań programów PATH. Podobnie odbywa się uzupełnianie nazw plików z tym, że poszukiwania dotyczą tylko jednego katalogu wskazanego w początkowym fragmencie nazwy ścieżkowej pliku (domyślnie jest to katalog bieżący). W obydwu przypadkach, jeśli zsh odnajdzie kilka pasujących nazw, to wyświetla ich listę dając użytkownikowi możliwość wyboru. Po zakończeniu edycji użytkownik zatwierdza polecenie wciskając [Enter]. (1.4) Wartościowanie i wykonywanie poleceń Każde polecenie wydane przez użytkownika jest analizowane przez interpreter, rozwijane do pełnej postaci i dopiero wykonywane. Interpreter wykonuje kolejno następujące operacje: podstawia wartości zmiennych (interpretacja znaku $), podstawia wyniki poleceń (interpretacja znaków ``), dokonuje podziału na nazwę polecenia i argumenty (interpretacja separatorów), wykonuje przekierowanie strumieni danych, rozwija nazwy plików, rozpoznaje i wykonuje polecenie. Jeśli interpreter rozpozna nazwę funkcji lub wbudowanego polecenia, to sam je wykonuje. Jeżeli rozpozna nazwę programu lub skryptu, to uruchamia go jako nowy proces potomny. Każde polecenie zwraca swój status zakończenia. Przyjęto konwencję, że zerowy status oznacza pomyślne zakończenie, zaś wartość niezerowa jest zwracana, gdy polecenia nie udało się wykonać. Jeśli polecenie zostało przerwane przez sygnał o numerze n, to zwracana jest wartość 128 + n. (1.5) Historia wydawanych poleceń Interpreter może przechowywać listę ostatnio wydanych poleceń i udostępniać je użytkownikowi do powtórnego wykorzystania. Mechanizm ten nosi nazwę historii poleceń. Oryginalna powłoka Bourne'a sh nie ma wbudowanego mechanizmu historii. Powłoka zsh udostępnia historię poleceń. Liczbę pamiętanych poleceń określa zmienna HISTSIZE ustaw...

Tagi:
  • interpretera

Komentarze do: 1. Działanie interpretera poleceń (powłoki) • 0