Powłoka BASH jest interfejsem tekstowym pomiędzy użytkownikiem
Transkrypt
Powłoka BASH jest interfejsem tekstowym pomiędzy użytkownikiem
Powłoka BASH jest interfejsem tekstowym pomiędzy użytkownikiem i jądrem systemu. Jest też interpreterem poleceń i udostępnia interfejs wiersza poleceń. Składa się on z pojedynczego wiersza do wprowadzania poleceń z opcjami i argumentami. Początek wiersza poleceń to monit powłoki. Jest to pojedynczy znak $ dla zwykłego użytkownika i znak # dla użytkownika root. Sposób używania powłoki jest bardzo prosty - użytkownik wprowadza polecenie, informuje powłokę o zakończeniu wprowadzania polecenia klawiszem Enter, po czym powłoka interpretuje wprowadzone polecenie i wysyła je do systemu, który je wykonuje. Polecenie musi być napisane zgodnie z ustalonymi regułami nazywanymi składnią. Ogólna postać składni polecenia jest następująca: $ Polecenie Opcje Argumenty Powłoka sprawdza poprawność wprowadzanego polecenia, istnienie polecenia, poprawność opcji, argumenty. Ćwiczenie: Pod kontrolą prowadzącego na koncie administracyjnym root proszę o wykonanie polecenia # useradd nazwa_użytkownika a następnie po założeniu swojego konta o ustawienie hasła # passwd nazwa_użytkownika po czym zalogowanie się z innego komputera na swoje konto. Opis interfejsu wiersza poleceń Wiersz poleceń jest buforem tekstowym posiadającym pewne możliwości edycji tekstu pozwalające na ograniczoną edycję tekstu wprowadzanego polecenia. Oto one: BackSpace pozwala na usuwanie poprzedzającego kursor znaku Del lub [Ctrl+D] pozwala na usuwanie znaku znajdującego się przed kursorem. [Ctrl+U] usuwa cały wiersz [Ctrl+F] lub kursor w prawo przesuwanie kursora o jeden znak w prawo [Ctrl+B] lub kursor w lewo przesuwanie kursora o jeden znak w lewo znak ‘\’ maskowanie klawisza Enter (wpisanie dalsze części polecenia w drugiej linii) [Ctrl+C] przerwanie wykonywania polecenia Powłoka BASH zapamiętuje kilka poprzednich poleceń w postaci listy poleceń. Można je odtworzyć, edytować i powtórnie wykonać. Służą do tego klawisze: kursor w górę przewijanie listy poleceń kursor w dół przewijanie listy poleceń w drugą stronę Ćwiczenie: Proszę zalogować się na swoje konto podając najpierw w tekstowym monicie logowania swoją nazwę użytkownika, a następnie hasło. Wydać polecenie useradd nazwa_użytkownika. Zaobserwować reakcję powłoki. Przeczytać komunikat powłoki. Wykonać powtórnie to samo polecenie z argumentem /etc/passwd. Przeczytać komunikat powłoki. Wykonać polecenie ls bez żadnych argumentów. Zwrócić uwagę na miejsce, w którym wykonywane jest polecenie i skojarzyć to miejsce z tekstem wyświetlanym przed monitem powłoki. Wykonać polecenie $ cat > pogoda Wpisać swój własny tekst opisujący aktualną pogodę, oddzielając poszczególne linie klawiszem Enter. Zakończyć polecenie kombinacją [Ctrl+D]. Powtórnie wykonać polecenie ls. Zaobserwować zmiany w zawartości katalogu domowego. Standardowe we/wy i przekierowanie. Wszystkie pliki Linuxa są logicznie zorganizowane jako ciągły strumień bajtów. Fizyczną strukturą pliku Linuxa są luźno rozrzucone po dysku bloki. Użytkownik poza wywołaniami systemowymi nigdy nie odwołuje się do fizycznej struktury pliku, dlatego możliwe jest łatwe skopiowanie pliku lub dodanie go do innego pliku. Nie ma rozróżnienia między plikami tekstowymi, binarnymi, rekordowymi itp. Operacje wejścia i wyjścia są również traktowane jako pliki o takiej samej strukturze. Standardowym urządzeniem wejścia jest klawiatura. Dane wprowadzane za pomocą klawiatury są umieszczane w strumieniu danych jako plik. Podobnie standardowym urządzeniem wyjściowym jest ekran (urządzenie do wyświetlania obrazu). Dane wprowadzane z klawiatury są standardowo wyświetlane na ekranie. Podobnie informacje wyświetlane przez polecenie ls standardowo kierowane są na ekran. Znaki ‘<’ i ‘>’ pozwalają kierować informacje w inne miejsce. Są to znaki przekierowania. Każdy plik w Linuksie ma specjalny znak oznaczający jego koniec. Jest to znak ^D (Ctrl+D). Pomoc „on-line” Każde polecenie powłoki ma swoją pomoc w postaci strony w podręczniku nazywanym manualem. Uzyskanie tej pomocy jest bardzo proste. Przykładowo do polecenia ls pomoc można uzyskać wykonując polecenie: $ man ls Przejście z powrotem do monitu powłoki wykonujemy wciskając klawisz q. Wskazywanie miejsca wykonania polecenia - ścieżka dostępu Głównym punktem montowania w Linuksie jest katalog ‘/’. Wskazanie miejsca wykonania polecenia polega na pokazaniu systemowi, jak powinien poruszać się począwszy od katalogu głównego poprzez wszystkie poziomy katalogów aż do miejsca, gdzie ma być wykonane polecenie. Taka ścieżka dostępu jest najczęściej używanym argumentem polecenia. Pliki o znaczeniu specjalnym (ukryte) w Linuxie są poprzedzane kropką (są to tzw. pliki z kropką). Ćwiczenie: Proszę wykonać polecenie $ ls Obejrzeć pomoc do polecenia ls (poleceniem man ls) Używając odpowiednich opcji proszę wyświetlić w swoim katalogu domowym wszystkie pliki, łącznie z plikami z kropką. proszę sprawdzić, czy wśród nich znajduje się plik będący wcześniej omawianym skryptem startowym .bashrc. Wyświetlić wszystkie pliki oprócz plików ukrytych. Wypisać tylko nazwy katalogów, bez wyświetlania ich zawartości. Wyświetlić pliki podając ich rozmiar na dysku. Przekierowania Przykład przekierowania wejścia: $ cat < pogoda Przykład przekierowania wyjścia: $ ls > dom Przykład jednoczesnego przekierowania wejścia i wyjścia: $ cat < pogoda > nowapogoda Przekierowanie do pliku powoduje, jeżeli ten plik istnieje i jest niepusty, skasowanie zawartości pliku i zapisanie w nim nowej zawartości. Podwójne przekierowanie (realizowane operatorem ‘>>’) spowoduje dopisanie tekstu na końcu pliku. Przykład realizacji dopisywania na końcu pliku: $ cat < pogoda >> nowapogoda Przykład zastosowania argumentu w poleceniu: $ ls -a /usr Ćwiczenia: 1. Utworzyć plik mojapogoda, wpisać do niego zawartość pliku pogoda, dopisać na końcu pliku swój własny komentarz do pliku. 2. Utworzyć plik dwarazypogoda, umieścić w nim dwukrotnie zawartość pliku mojapogoda. 3. Wyjście standardowego polecenia ls wykonanego na katalogu domowym skierować do pliku npogoda. 4. Kierując wynik polecenia na ekran wykonaj polecenie ls na katalogu /usr wyświetlając wszystkie pliki bez i z zawartością katalogów. Porównaj wyniki działania polecenia. 5 Wykonaj te same polecenia, ale na katalogu /etc, wyniki przekieruj do plików odpowiednio pliketcw i pliketcwr. Obejrzyj zawartość obu plików. 6. Utworzyć plik petc, zapisać w nim zawartości obu plików pliketcw i pliketcwr. Na wejście polecenia cat skierować plik petc, na wyjście też petc. Jaki i dlaczego jest wynik tego polecenia? Potoki poleceń Potok jest połączeniem dwóch lub więcej poleceń. Umieszczenie między dwoma poleceniami operatora potoku powoduje przekazanie sterowania z wyjścia jednego polecenia na wejście drugiego polecenia. Innymi słowy standardowe wyjście jednego polecenia staje się wejściem drugiego polecenia umieszczonego za operatorem potoku. Przekierowanie umieszcza wynik w pliku, a potok wysyła wynik do wejścia innego polecenia. Celem operacji przekierowania mogą być wyłącznie pliki, operacji potoku inne polecenia. Przykładem polecenia wykorzystującego potok jest: $ ls -a /etc | more Wyjście polecenia ls jest kierowane na wejście polecenia more, a następnie na ekran. Polecenie more dzieli na ekrany wynik polecenia ls. Ćwiczenie: 1. Wszystkie pliki z katalogu /etc posortuj w odwrotnej kolejności i wyświetl je na ekranie. Użyj polecenia sort. 2. Wszystkie pliki z katalogu /etc posortuj w kolejności „książki telefonicznej” i zapisz w pliku pliketcsortr1. Użyj polecenia sort. 3. Wszystkie pliki z katalogu /etc posortuj w kolejności „książki telefonicznej” i zapisz w pliku pliketcsortr2. Użyj polecenia less. 4. Wszystkie pliki z katalogu /etc posortuj w kolejności „książki telefonicznej” i zapisz w pliku pliketcsortr3. Użyj polecenia less. Wydrukuj numery linii ekranowych. 5. Wszystkie pliki z katalogu /etc posortuj w kolejności alfabetycznej i zapisz w pliku pliketcsortr4. Użyj polecenia sort. Wydrukuj numery linii ekranowych. Pomiń pierwsze i drugie pola. Użyj pojedynczego klucza od początku trzeciego pola do końca każdej linii. 6. Wszystkie pliki z katalogu /etc posortuj w kolejności odwrotnej. Użyj polecenia sort. Wydrukuj numery linii ekranowych. Wyświetl je ekranami. (użyj filtru more). 7. . Wszystkie pliki z katalogu /etc posortuj w kolejności odwrotnej. Użyj polecenia sort. Wydrukuj numery linii ekranowych. Jednocześnie wyświetl je i zapisz w pliku pliketcsort5. Użyj polecenia tee. 8. Zapisz w pliku pliksbin zawartość katalogu /sbin 9. Posortuj w odwrotnej kolejności zawartość pliku pliksbin, dodaj do niego numery wierszy (opcją polecenia cat), wyświetl na ekranie i zapisz w pliku npliksbin. Znaki specjalne i argumenty nazw plików Najczęstszymi argumentami poleceń są nazwy plików. Polecenia są często wykonywane na liście plików. Dopasowywanie i generowanie listy plików wykonuje się za pomocą zestawu znaków specjalnych oferowanych przez powłokę. Znakami tymi są: ‘?’ - zastępuje w nazwie pliku pojedynczy znak ‘*’ - zastępuje w nazwie pliku ciąg znaków ‘[]’ - określają zestaw dopuszczalnych poszukiwanych znaków ‘\’ - maskuje znaki specjalne Lista nazw plików może być argumentem dla poleceń które mogą działać na wielu plikach (takim poleceniem jest ls). Przykładowo, znalezienie poleceniem ls plików zaczynających się na literę a w katalogu /sbin może być zrealizowane następująco: $ ls a* /sbin W nawiasach kwadratowych znaki umieszczamy obok siebie, np. [cd], lub dajemy zakres znaków, np. [A-E] , [3-7]. Ćwiczenie: 1. Proszę znaleźć w katalogu /sbin wszystkie pliki zaczynające się od mkfs, posortować je alfabetycznie i wyświetlić je i zapisać w pliku pliksbin.mkfs. 2. Znaleźć w katalogu /sbin wszystkie pliki mające gdziekolwiek w nazwie ciąg znaków dos. 3. Znaleźć w katalogu /sbin wszystkie pliki mające gdziekolwiek w nazwie ciąg znaków dump i sortując je w odwrotnej kolejności, dodając numery linii wyświetlić i zapisać w pliku pliksbin.dump. 4. Znaleźć wszystkie pliki w katalogu /sbin których częścią rozszerzenia jest ciąg znaków ext, zapisać je w pliku pliksbin.ext. 5. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia zaczynają się od litery d. 6. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia składają się z litery d. 7. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia zawierają literę d. 8. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia składają się z litery d, a w nazwie mają człon rc. 9. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia to wyrażenie conf. 10. Znaleźć w katalogu /etc i jego podkatalogach i wyświetlić posortowaną listę plików, których rozszerzenia to wyrażenie conf. 11. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia zawierają znak c. 12. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, których rozszerzenia są jednoznakowe. 13. Znaleźć w katalogu /etc i wyświetlić posortowaną listę plików, które mają rozszerzenia. 14. Znaleźć w katalogu /lib takie pliki, których rozszerzenia zaczynają się od so.2. 15. Znaleźć w katalogu /lib takie pliki, które są bibliotekami związanymi z serwerem NIS. 16. Znaleźć w katalogu /lib takie pliki, które dotyczą usługi katalogowej LDAP. 17. Znaleźć w katalogu /lib i jego podkatalogach takie pliki, których nazwy zaczynają się od snd. 18. Znaleźć w katalogu /lib i jego podkatalogach takie pliki, których nazwy zawierają cyfry, posortować je, dodać numery wierszy i zapisać w pliku pliklib.cyfra. Polecenie ps Ćwiczenie: Proszę wykonać w wersji standardowej polecenie ps i zinterpretować jego wynik. Proszę zapoznać się ze stroną man polecenia ps i wykonaj to polecenie w długim formacie, pokaż procesy innych użytkowników bez kontrolującego terminala. Po wykonaniu tych zadań należy się z terminala wylogować poleceniem: $ logout Dziękuję za uczestnictwo w zajęciach. Formą sprawdzenia obecności i aktywności na zajęciach będzie ślad pozostawiony przez Państwa w moim komputerze. Grzegorz Kluka