Powłoka, redyrekcja, potok

Slides:



Advertisements
Podobne prezentacje
Systemy operacyjne.
Advertisements

slajd 1 PREZENTACJA na sprawdzian INSTRUKCJA (czas 25 minut):
Wstęp do strumieni danych
Prezentacja o MS-DOS’ie
1 Linux jako system wielozadaniowy i wielodostępny.
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE INSTALACJA.
Wprowadzenie do Unix’a
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Bash Bourne Again SHell.
Podstawowe komendy UNIXA
Programowanie w C Wykład 3
Temat nr 10: System przerwań
SO – LAB3 Wojciech Pieprzyca
Język ANSI C Operacje we/wy
Obsługa routera Wykład: Zaawansowane sieci komputerowe
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Skrypty w powłoce Ryszard Haraszczuk. Pierwszy skrypt Stworzenie pliku touch skrypt Wpisanie specjalnej linii dla powłoki #!/bin/bash Napisanie skryptu.
9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Systemy operacyjne. Co to jest system operacyjny? OS (ang. Operating System) to program, który kontroluje pracę uruchomionych przez użytkownika aplikacji,
Pliki WSADOWE.
Poznajemy klawiaturę Opracował Piotr Krupa.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Konsole wirtualne, terminale.
Tajemnice klawiatury.
Tajemnice klawiatury Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Poznaj bliżej program Microsoft Office Word 2007
Interpretatory poleceń - powłoki systemu
Linux - polecenia.
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Edytor Vi.
BUDOWANIE SCHEMATU BLOKOWEGO REALIZUJĄCEGO PROSTY ALGORYTM
JAK ZROBIĆ STRONE WWW PIERWSZA STRONA W INTERNECIE
Programowanie strukturalne i obiektowe
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Prezentacja i szkolenie
Sieci komputerowe.
Systemy operacyjne.
Programowanie obiektowe – zastosowanie języka Java SE
Podstawowe informacje o SYSTEMIE WINDOWS
Defragmentacja dysku Jednym z kluczowych czynników wydajności operacji wejścia/wyjścia jest poziom fragmentacji plików. Fragmentacja oznacza zapisywanie.
Sieciowe systemy operacyjne - UNIX
Edytor tesktu i skrypty
Wzorce slajdów programu microsoft powerpoint
Podstawy programowania
Temat 7: Instrukcje warunkowe
Linux, to kompletny system operacyjny (jądro i programy użytkownika), który powstał na zasadzie GNU – czyli Powszechnej Licencji Publicznej (General Public.
Microsoft Disk Operating System
Temat 1: CSS Dołączanie stylów do dokumentu
Formatowanie dokumentów
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Operacje na plikach i folderach
Temat 1 Pojęcie systemu operacyjnego Opracował: mgr Marek Kwiatkowski.
Polecenie chmod change mode - zmiana atrybutu. chmod [opcje] uprawnienia plik Opis klas użytkowników u - użytkownik (user) g - grupa (group) o - inni.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Urządzenie wej/wyj Marcin Wojnowski.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Piotr Kawałek , Mateusz Śliwowski
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Hipertekst HTML WWW.
Podstawy tworzenia skryptów
Wprowadzenie do edytorów tekstu.
System operacyjny Linux
Programowanie obiektowe – zastosowanie języka Java SE
Wskaż wybrany krok lub kliknij Enter aby dowiedzieć się więcej.
Zapis prezentacji:

Powłoka, redyrekcja, potok UNIX – POWŁOKA I POTOK WYKŁAD 5 Powłoka, redyrekcja, potok

UNIX – POWŁOKA POWŁOKA ( ang. SHELL) - to program interpretujący polecenia użytkownika. nazywamy powłoką. Powłoka przyjmuje polecenia od użytkownika, analizuje je i przekazuje jądru życzenia użytkownika. Bezpośrednio po zgłoszeniu się użytkownika do Systemu UNIX następuje automatyczne uruchomienie interpretera (inaczej powłoki), który rozpoczyna pracę na rzecz użytkownika (każdy użytkownik otrzymuje własny i odrębny egzemplarz procesu powłoki). Powłoka od razu sygnalizuje na ekranie terminala ( powłoka Bourne’a znakiem $) gotowość przyjęcia polecenia. Pojawienie się tego znaku rozpoczyna cykl, w jakim pracuje powłoka. /bin/sh (powłoka Bourne'a) - pierwsza, zapewnia dużą mobilność między systemami, wykorzystywana głównie w kryptach administracyjnych bin/csh - powłoka C, składnia zbliżona do języka C, domyślna powłoka systemu SOLARIS, niezgodna z powłoką Bourne'a /bin/ksh - odpowiedź AT&T na powłokę C (BSD*), zgodna z powłoką Bourne'a, standard systemów AIX, HP-UX, SOLARIS, na początku w systemach licencjonowanych /bin/bash - rozbudowana, zgodna z powłoką Bourne'a, wolna od licencji, najpopularniejsza /bin/ash - zgodna z powłoką sh, domyślna powłoka środowiska Cygwin *BSD – Berkley Software Distribution

UNIX – POWŁOKA Dlaczego warto wiedzieć w jaki sposób posługiwać się i w pełni wykorzystywać możliwości powłoki ?? W systemach operacyjnych Linux, Mac OS X powłoka jest ważnym źródłem komunikacji pomiędzy komputerem i użytkownikiem Powłoka doskonale nadaje się do automatyzacji zadań administracyjnych i konfiguracyjnych (np. zakładanie kont użytkowników) Aktualizacja a także pobór wielu aplikacji systemu Linux dostępna jest tylko i wyłączne z poziomu powłoki To powłoka wykonuje większą część operacji w systemie, wliczając w to zadania inicjowane poprzez interfejs graficzny

Powłoka pracuje w cyklu. Na jeden cykl powłoki składają się: UNIX – POWŁOKA Powłoka pracuje w cyklu. Na jeden cykl powłoki składają się: Wypisanie znaku zachęty (Bourne - $) Czekanie na wprowadzenie tekstu polecenia przez użytkownika Analiza wiersza pleceń, wyszukiw. odpow. programu realizującego polecenie Przyjęcie od jądra odpowiedzi i rozpoczęcie nowego cyklu Zlecenie jądru wykonanie odszukanego programu Przerwanie powtarzania cykli powłoki może nastąpić jeśli polecenie użytkownika brzmi: exit lub zostanie naciśnięta na klawiaturze kombinacja klawiszy Ctrl-D, co oznacza, że użytkownik nie ma zamiaru kontynuować wprowadzania dalszych poleceń. Powłoka zleca wtedy jądru zamknięcie sesji użytkownika.

UNIX – POWŁOKA UOGÓLNIONA POSTAĆ POLECEŃ POWŁOKI SYSTEMU UNIX Wszystkie polecenia rozpoznawane przez powłokę mają taką samą postać ogólną: $ nazwapolecenia argument1 argument2 argument3 ... ls, mkdir, rm chmod etc. -l, -s, -a, o+w , -v, -C … plik1, plik2,plik3 …plikn Konieczne Opcjonalne Argumenty polecenia mogą być 2 różnych typów: opcjami (najczęściej są oznaczane symbolami literowymi poprzedzonymi znakiem „-” np. w poleceniu ls -l) nazwami plików

STANDARDOWE STRUMIENIE I PLIKI. UNIX – POWŁOKA STANDARDOWE STRUMIENIE I PLIKI. prawie każde polecenie powłoki realizuje swoje funkcje na zasadzie przetwarzania (przekształcania) strumienia informacji napływającej (w sposób określony przez treść polecenia) w strumień informacji przetworzonej. Każdemu procesowi w chwili uruchomienia przypisuje się standardowy strumień wejściowy i standardowy strumień wyjściowy. Domyślny strumień wejściowy - klawiatura Domyślny strumień wyjściowy – ekran terminalu Większość programów wypisujących informacje wpisuje je do standardowego strumienia wyjściowego i pobiera dane ze standardowego strumienia wejściowego STDIN PROCES TERMINAL STDOUT STDERR HOST Strumień diagnostyczny – wyjście zawsze na ekran 6

STANDARDOWE STRUMIENIE I PLIKI. UNIX – POWŁOKA STANDARDOWE STRUMIENIE I PLIKI. przykład Polecenie: cal 9 2000 ma za zadanie przywołać kalendarz września roku 2000 Znak zachęty STDIN - klawiatura STDOUT - terminal 7

STANDARDOWE STRUMIENIE I PLIKI. UNIX – POWŁOKA STANDARDOWE STRUMIENIE I PLIKI. przykład Polecenie: cal 9 2000 ma za zadanie przywołać kalendarz września roku 2000 Znak zachęty STDIN - klawiatura STDOUT - terminal 8

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. Jeżeli użytkownik uzna, że standardowe skojarzenie strumieni wejścia/wyjścia (STDIN, STDOUT) nie odpowiada jego potrzebom, może spowodować skojarzenie alternatywne. Tę czynność zwykło się nazywać redyrekcją. Polecenie z redyrekcją strumienia STDOUT ma postać: Usuwa poprzednią zawartość pliku Jeśli plik o takiej nazwie jak podaliśmy Już istniał Nie usuwa poprzedniej zawartości pliku. $ polecenie > plik lub $ polecenie >> plik Umieszcza wynik działania Polecenie w pliku plik (a nie jak to Ma miejsce domyślnie w terminalu) Dołącza do poprzedniej zawartości pliku plik wynik działania polecenia polecenie PLIK STDIN STDOUT PROCES TERMINAL STERR HOST 9

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. Polecenie z redyrekcją strumienia STDIN ma postać: $ polecenie < plik Dane na których zostanie wykonane polecenie polecenie zostaną pobrane z pliku plik (a nie jak domyślnie ze standardowego wejścia klawiatury) PLIK STDOUT STDIN PROCES TERMINAL STERR HOST 10

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. Polecenie z redyrekcją strumienia STDIN oraz STDOUT: $ polecenie <plikin >plikout Dane na których zostanie wykonane polecenie polecenie zostaną pobrane z pliku plikin, a wynik Operacji zostanie zapisany w pliku plikuot PLIK STDIN PROCES TERMINAL STDOUT PLIK STERR HOST 11

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. przykład Polecenie: cal 9 2000 ma za zadanie przywołać kalendarz września roku 2000 STDOUT to jest ekran REDYREKCJA dla STDOUT: cal 9 2000 > wrzesien2000 ma za zadanie przywołać kalendarz września roku 2000 ale zapisać go w pliku o nazwie wrzesien2000 STDOUT to jest plik Zawartość pliku podglądamy poleceniem more wrzesien2000 12

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. przykład Polecenie: cal 9 2000 ma za zadanie przywołać kalendarz września roku 2000 STDOUT to jest ekran REDYREKCJA dla STDOUT: cal 9 2000 > wrzesien2000 ma za zadanie przywołać kalendarz września roku 2000 ale zapisać go w pliku o nazwie wrzesien2000 STDOUT to jest plik Zawartość pliku podglądamy poleceniem more wrzesien2000 13

Aby zamknąć STDIN w nowej linii wprowadź EOF (Ctrl-D) UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. Aby zamknąć STDIN w nowej linii wprowadź EOF (Ctrl-D) Polecenie: cat (domyślnie STDOUT=ekran, STDIN =klawiatura) Redyrekcja: cat >komentarz STDOUT = plik komentarz STDIN = klawiatura Sprawdzenie zawartości pliku komentarz: more komentarz Zadanie1: Połącz pliki komentarz i wrzesien2000 w jeden plik koniec0 , a potem sprawdź wynik. Zadanie2: Dopisz swoje imię i nazwisko na koniec pliku koniec0, umieść następnie wynik w pliku koniec1 używając polecenia cat, a potem sprawdź wynik. 14

KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. UNIX – REDYREKCJA KOJARZENIE STRUMIENIA WEJŚCIA WYJŚCIA. (**) Rozwiązanie 1. cat plik1 plik2 > plik3 Rozwiązanie 2b. cat >plik2 <plik1 Rozwiązanie 2a. cat >> plik3 (*) (*) Konkatenacja dotyczy STDOUT ale w trybie append (dołącz) stąd znak redyrekcji >> (**) Konkatenacja dotyczy zarówno: STDIN skojarzone z koniec0 STDOUT skojarzone z koniec1 Kolejność argumentów dowolna !! 15

ZASTOSOWANIE POTOKÓW I FILTRÓW. UNIX – REDYREKCJA ZASTOSOWANIE POTOKÓW I FILTRÓW. Proces może być rozumiany jako pewne przekształcenie strumienia informacji, zgonie z poniższym schematem: STDOUT STDIN PROCES polecenie filtruje informację napływającą (STDIN) w informację przekształconą (STDOUT) w sposób określony przez twórcę programu Przykład Polecenie wc filtruje informację ze strumienia STDIN przekazując tę informację w formie przetworzonej (STDOUT). cal 2000 > alfa – przygotowanie pliku alfa z kalendarzem na rok 2000 – STDIN to zawartość pliku alfa wc <alfa STDOUT to zestaw odpowiednio przetworzonych informacji ze strumienia STDIN: 40 linii, 463 wyrazy, 1778 znaków 16

ZASTOSOWANIE POTOKÓW I FILTRÓW. Przykład UNIX – REDYREKCJA ZASTOSOWANIE POTOKÓW I FILTRÓW. Przykład Jak szybko się dowiedzieć, ile obiektów znajduje się we wskazanym katalogu (w przykładzie jest to katalog /home ). ls /home > listahome – przygotowanie pliku listahome zawierającego listę obiektów w katalogu /home wc -w <listahome STDIN – zawartość pliku listahome STDOUT – ciąg liczb określających cechy informacji ze strumienia STDIN, czyli cechy tekstu zapisanego w pliku listahome more listahome – wyświetla ono zawartość pliku listahome, która jest listą obiektów w katalogu /home (wykonano tutaj tylko dla sprawdzenia) 17

polecenie1 argumenty | polecenie2 argumenty UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Wady, przedstawionego rozwiązania na poprzednim slajdzie, rozwiązania to: śmieć w postaci pliku o nazwie listahome w katalogu aktualnym aby uzyskać jedną liczbę trzeba wykonać co najmniej 3 polecenia PYTANIE : Czy istnieje możliwość skrócenia tej operacji ? ODPOWIEDŹ: TAK ! Służy temu pojęcie POTOKU POTOK jest to sposób zapisu szeregu poleceń (minimum dwóch), w którym wyjście poprzedzającego procesu jest kierowane bezpośrednio na wejście procesu kolejnego. IDEA !!! PROCES 1 STDOUT-1 STDIN-1 PROCES 2 STDIN-2 STDOUT-2 polecenie1 argumenty | polecenie2 argumenty 18

Nie było konieczności tworzenia UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Poprzedni przykład (wykorzystajmy potok) Jak szybko się dowiedzieć, ile obiektów znajduje się we wskazanym katalogu (w przykładzie jest to katalog /home ). ROZWIAZANIE POPRZEDNIE przygotowanie pliku listahome zliczenie ilości wyrazów w listahome usunięcie pliku listahome 3 Polecenia ROZWIAZANIE NOWE - POTOK STDIN polecenia wc STDOUT z polecenia ls (listuj) staje się Nie było konieczności tworzenia dodatkowego pliku!!!!! 1 Polecenie 19

who | wc -l UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 1 Zlicz ilu użytkowników w danym momencie pracuje w systemie. Wykorzystaj do tego celu poznane zagadnienie potoku. Rozwiązanie 1 Polecenie who produkuje listę użytkowników, którzy używają choć 1 linię tty, ale jeśli użytkownik używa ich więcej niż jedną, to i tak wszystkie są prezentowane w liście. Polecenie wc -l zlicza liczbę linii w pliku lub STDIN Wystarczy stworzyć potok który poda poszukiwaną wartość who | wc -l 20

who | cut -f1 -d" " UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 2 Zlicz, ilu różnych użytkowników aktualnie pracuje w systemie cyfrowym rat. Wykorzystaj rozwiązanie zadania 1. Rozwiązanie 2 – Etap 1 Potok, który jest rozwiązaniem poprzedniego zadania może zliczać wielokrotnie jednego użytkownika, gdy używa więcej niż jednej linii tty. Musimy znaleźć taki filtr, który przed zliczeniem linii tty w liście przygotowanej przez polecenie who, usunie wielokrotnie powtarzającą się linię z identyfikatorem użytkownika. Rozpoczynamy od wycięcia z każdej linii listy przygotowanej przez polecenie who tylko identyfikatora użytkownika. Polecenie, które wycina z każdej linii pierwsze pole zakończone delimiterem spacją ma następującą postać: cut -f1 -d" " Stwórzmy zatem potok i zobaczmy jaki jest wynik who | cut -f1 -d" " 21

ZASTOSOWANIE POTOKÓW I FILTRÓW. UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Rozwiązanie 2 – Etap 2 W celu obliczenia ilości użytkowników, musimy usunąć z poprzednio przygotowanej listy identyfikatory, które się powtarzają. Wykorzystamy do tego polecenie: uniq, które spowoduje przepisanie z STDIN na STDOUT tylko tych linii które się nie powtarzają. Warunkiem właściwego zadziałania polecenia uniq, jest to by powtarzające się linie następowały po sobie. W tym celu musimy przesortować STDIN, za pomocą polecenia sort -r (-r odwrotna kolejność sortowania - aby widać było efekt). Potok dający listę unikalnych identyfikatorów użytkowników ma postać. who | cut -f1 -d" " | sort -r | uniq Rozwiązanie zadania: who | cut -f1 -d" " | sort | uniq | wc -l 22

ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 3 UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 3 Sprawdź czy użytkownik o określonym identyfikatorze np. szczur jest aktualnie w systemie, i jakiej/-ich linii tty używa. Rozwiązanie 3 Polecenie who podaje listę wszystkich aktywnych użytkowników Z tej listy musimy wybrać tylko takie linie gdzie występuje podany identyfikator użytkownika np. szczur. W tym celu wykorzystamy polecenie: grep " ^szczur " Wytnie z STDIN i przekopiuje na STDOUT linie w których identyfikator szczur pojawi się na początku linii Rozwiązanie zadania: who | grep " ^szczur " | cut -f1-6 -d" " 23

ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 4 UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 4 Zlicz, ile plików we katalogu /home jest dostępne do zapisu dla wszystkich użytkowników z grupy others Rozwiązanie 4 Polecenie ls -l /home listuje zawartość katalogu /home. Jeśli w polu 9 ( 9-ty znak linii) jest litera w to użytkownicy z grupy others mają prawo zapisu w odniesieniu do tego pliku. ls –l /home Z tej listy musimy wybrać tylko takie linie, gdzie w polu 9 jest litera w Polecenie: grep "^.......w" właśnie to wykona w odniesieniu do STDIN ls –l /home | grep ”^........w” Na koniec musimy zliczyć odpowiednie linie ( wc -l ) ls –l /home | grep ”^........w” | wc -l 24

ZASTOSOWANIE POTOKÓW I FILTRÓW. UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Rozwiązanie 4 – przykładowe wywołanie potoku 25

ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 5 UNIX – POTOKI ZASTOSOWANIE POTOKÓW I FILTRÓW. Zadanie 5 Zlicz, ile katalogów w katalogu /home to katalogi których właścicielem jest użytkownik o identyfikatorze root Rozwiązanie 5 Polecenie ls -l /home listuje zawartość katalogu /home. Jeśli w polu 1 ( 1-szy znak linii) jest litera d to jest to opis katalogu Z tej listy musimy wybrać tylko takie linie, gdzie w polu 1 jest litera d ls -l /home | grep "^d” Wybieramy tylko takie, gdzie pojawia się w polu właściciela nazwa root. Wcześniej obetnijmy listę do pozycji właściciela filtrem cut , i dopiero wybierajmy linie zawierające root ls -l /home | grep "^d" | cut –f1-6 –d” ” | grep „root” | wc -l 26

UNIX – SPRÓBUJ SAM Zadanie 1 27

UNIX – POWŁOKA, REDYREKCJA, POTOK KONIEC 28