#4 Open Source – podstawy
|
#4 Open Source – podstawy, Dokumentacja Suse L
[ Pobierz całość w formacie PDF ] Podstawy open source – system SUSE Linux cz. II 2-53 2.3 Zaawansowane wykonywanie poleceń 2.3.1 Stosowanie potokowania ( piping piping ) i przekierowań ) i przekierowań Linux ma trzy standardowe kanały danych: Opis standardowych kanałów: Kanał Numer Opis Standardowe wejście (stdin) 0 Uruchomiony program na bieżąco czyta dane z tego kanału (zwykle jest to klawiatura) Standardowe wyjście (stdout) 1 Program wysyła dane do tego kanału (zwykle jest to monitor) Standardowe wyjście błędów (stderr) 2 Błędy są przesyłane do tego kanału (zwykle na monitor) Każdy kanał może być przez powłokę przekierowany. Na przykład, standardowe wejście może być przekierowane na plik, albo dane wyjściowe lub informacje o błędach mogą być kierowane do pliku. Symbole przekierowania: < przekierowuje standardowe wejście, > przekierowuje standardowe wyjście (jest to skrót od „1 > ”), 2 > przekierowuje standardowe wyjście dla błędów. „ > ” nadpisze istniejący plik. Jeżeli dane mają być dopisane do zawartości pliku, należy użyć „ >> ” lub „2 >> ”. 2008 Novell Inc. Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa Novell Inc. 2.3.1 Stosowanie potokowania ( Podstawy open source – system SUSE Linux cz. II 2-54 Poniższe przykłady pokazują standardowe wejście, wyjście,wyjście błędów oraz domyślne zachowanie powłoki ( shell ). geeko@da51:~ > ls /opt /recipe /bin/ls: /recipe: No such file or directory /opt: gnome kde3 Wyjaśnienie. Zawartość katalogu /opt wyświetlona jest w wierszu 3 i 4. Katalog /recipe nie istnieje. Komunikat błędu wyświetlony jest w wierszu 2. Jeżeli standardowe wyjście błędów przekierujemy do /dev/null , tylko standardowe wyjście wyświetlone zostanie na ekranie: geeko@da51:~ > ls /opt /recipe 2> /dev/null /opt: gnome kde3 By przekierować standardowe wyjście i standardowe wyjście błędów do pliku (takiego jak „output”) napiszemy: geeko@da51:~ > ls /opt /recipe > output 2>&1 geeko@da51:~ > Wyjaśnienie . Standardowe wyjście jest przekierowane do pliku output, a następnie standardowe wyjście błędów jest przekierowane na standardowej wyjście (2>&1). Znak „&” wskazuje na poprzedzający opis pliku. W innym przykładzie użyto pliku list zamiast output . By wyświetlić jego zawartość użyjemy polecenia cat : geeko@da51:~> cat list /bin/ls: /recipe: No such file or directory /opt: gnome kde3 Te opcje komunikacji procesów są dostępne nie tylko w powłoce, ale mogą też być używane bezpośrednio w programach. Wszystkie pliki w systemie mogą być użyte jako wejście lub wyjście. 2008 Novell Inc. Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa Novell Inc. Podstawy open source – system SUSE Linux cz. II 2-55 Przydatną czasem możliwością jest użycie pliku jako wejścia do programu oczekującego strumienia danych z klawiatury. Należy wtedy odpowiednio przekierować standardowe wejście: geeko@da51:~ # echo "Hello Tux, > > how are you? > Is everything okay?" > greetings geeko@da51:~ # mail tux < greetings Wyjaśnienie . Po pierwsze, tekst jest przekierowywny do pliku greetings poleceniem > (wiersze 1-3). Program mail otrzymuje wejście z pliku greetings (nie z klawiatury), a następnie wysyła email do użytkownika tux (wiersz 4 ). Ćwiczenie. Stosowanie potokowania i przekierowywania – część I Utwórz plik o nazwie Redirection w swoim domowym katalogu, który zawiera: … wyjście (wynik działania) polecenia ls /; uzupełniony następnie... ...zawartością zmiennej $PATH, oraz … ...komunikatem o błędnym wykonaniu polecenia cd /root Wyjście jednego polecenia może być użyte jako wejście do innego przez użycie potoku ( pipe , symbol „ | ”). składnia: command1 | command2 W pojedynczym potoku ( pipe ) może istnieć maksymalnie 4 KB nieprzetworzonych danych. Jeżeli proces generujący wyjście próbuje zapisać dane do zapełnionego potoku, jest to zatrzymywane i wznawiane w chwili, gdy zapis jest już możliwy. Z drugiej strony – proces czytający jest zatrzymywany, gdy próbuje czytać z pustego potoku. geeko@da51:~ > ls -l /etc | less Czasami możemy chcieć wynik polecenia mieć zarówno wyświetlony na ekranie jak i zapisany do pliku. Użyjemy wtedy polecenia tee : geeko@da51:~ > ls -l | tee output W tym przypadku wyjście polecenia zostanie wyświetlone na ekranie i jednocześnie zapisane do pliku output. 2008 Novell Inc. Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa Novell Inc. Podstawy open source – system SUSE Linux cz. II 2-56 Aby przekierować wyjście sekwencji kilku poleceń w wierszu poleceń, polecenia te muszą być oddzielone od siebie średnikami i cała sekwencja zamknięta nawiasami (command1; command2): geeko@da51:~> (id ; ls ~) > output geeko@da51:~> cat output uid=1000(geeko) gid=100(users) groups=14(uucp),16(dialout),33(video),100(users) bin Desktop Documents output public_html geeko@da51:~> Ćwiczenie. Stosowanie potokowania i przekierowywania – część II Polecenie wc ( word count ) zlicza słowa w pliku tekstowym. Polecenie wc -l zlicza wiersze w pliku. Przekaż potokiem wyjście polecenia ls -l do polecenia ws -l . Co będzie rezultatem takiej konstrukcji? ________________________________________________________________ Powłoka uruchamia osobną podpowłokę (subshell) dla przetwarzania indywidualnych poleceń. By przekierować powiązane polecenia, powłoka musi być zmuszona do wykonywania łańcucha powiązanych poleceń w tej samej podpowłoce. Jest to robione przez zamknięcie wyrażenia w nawiasach. Po wykonaniu, każdy program zwraca wartość stanu wykonania (status). Jeżeli ta wartość jest równa zeru – program zakończył się sukcesem. W przypadku błędu – zwracana jest wartość różna od zera. Zależnie od programu – różne wartości wskazują na różne błędy (są kodami błędu). 2008 Novell Inc. Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa Novell Inc. Podstawy open source – system SUSE Linux cz. II 2-57 Można użyć polecenia echo $? do wyświetlenia zwracanej wartości: geeko@da51:~> ls bin Desktop Documents public_html geeko@da51:~> echo $? 0 geeko@da51:~> Zw racany kod może być użyty jako wyzwalacz (trigger) wykonania innego polecenia: Wiązanie Wynik Polecenie1 && polecenie2 Polecenie 2 zostanie wykonane tylko wtedy, gdy polecenie1 zakończy się bezbłędnie. Polecenie1 || polecenie2 Polecenie 2 zostanie wykonane tylko wtedy, gdy polecenie1 zakończy się z błędem. Przykład: 1 2 3 4 5 6 geeko@da51:~> ls recipe || ls ~ /bin/ls: recipe: No such file or directory bin Desktop Documents output public_html test geeko@da51:~> ls recipe && ls ~ /bin/ls: recipe: No such file or directory geeko@da51:~> Wyjaśnienie . Plik recipe nie istnieje i polecenie ls recipe musi zakończyć się błędem (wiersze 1-2). Z tej przyczyny polecenie ls ~ z wiersza pierwszego jest wykonywane, a polecenie ls ~ w wierszu czwartym nie jest wykonywane. 2008 Novell Inc. Licencja Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Wolno kopiować, rozprowadzać, przedstawiać i wykonywać utwór oraz opracowane na jego podstawie utwory zależne jedynie dla celów niekomercyjnych, przy zachowaniu autorstwa Novell Inc.
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plsmichy-chichy.xlx.pl
|
|
Podobne |
: Strona Główna | : Świat według Monsanto - The World According to Monsanto (2008), ● Dokumentalne | : 00 Bus%20Charts%20Cover, BMW educational info, Dokumentacja | : 01%20Climate%20Control%20Part%201, BMW educational info, Dokumentacja | : 01%20E85%20Complete%20Vehicle, BMW educational info, Dokumentacja | : 01 Basic%20Suspension%20Geometry, BMW educational info, Dokumentacja | : 01 Basic%20Measuring%20Techniques, BMW educational info, Dokumentacja | : 01 Intro%20to%20Passive%20Safety, BMW educational info, Dokumentacja | : 01 Principles%20of%20Heating%20and%20Refrigeration, BMW educational info, Dokumentacja | : [Free-scores.com] anonymous-greensleeves-4075, Dokumenty(1) | : 01 MS42%20MS43, BMW educational info, Dokumentacja
zanotowane.pldoc.pisz.plpdf.pisz.pltypografia.opx.pl
| . : : . |
|