Professional Documents
Culture Documents
LinuxUser - Przekierowania
LinuxUser - Przekierowania
Wiersz polece
Przekierowania
czenie wynikw komend wydawanych z listy polece nie jest trudne.
Mona tego dokona przekierowujc ich wejcia/wyjcia. W tym miesicu
przyjrzymy si bliej koniecznym do tego operatorom Bash-a i zademonstrujemy uycie polecenia tee, jako kroku poredniego.
HEIKE JURZIK
Trzy kanay
Istniej trzy standardowe kanay wejcia
i wyjcia programu. Dziaajce programy
oczekuj danych ze standardowego wejcia
(stdin), to jest z klawiatury. Program wysya dane na standardowe wyjcie (stdout)
jest nim zazwyczaj okno terminala, w ktrym uruchomilimy program. Istnieje take standardowy kana bdw (stderr), ktrego wyjcie jest takie same, jak w przypadku standardowego wyjcia. Dziki temu
uzyskujemy informacj o ewentualnych
bdach, a zarazem podpowied, jak rozwiza napotkany problem. Tak zwane de skryptory pliku s wykorzystywane do
wskazywania tych trzech kanaw. Standardowe kanay s ponumerowane: stdin ma
#0, stdout #1, a stderr ma #2.
Wyjcie zwykego programu pokazuje
si w oknie terminala jest to znak zachty pytajcy, czy na pewno chcemy uruchomi program. Program odczytuje odpowied ze standardowego wejcia, czyli
z klawiatury. Po potwierdzeniu pokazuje
si komunikat bdu mwicy, e nie mamy uprawnie root-a. Program reiserfsck
96
Lipiec 2004
W ktrym kierunku?
Programy nie dbaj o to, skd komendy
przychodz, ani gdzie znajdzie si ich wyjcie. Specjalne operatory pozwalaj na
przeorganizowanie standardowych kanaw. Moesz wykorzysta operator >, aby
unikn wysyania standardowego wyjcia
na konsol.
www.linux-magazine.pl
Wiersz polece
Wejcie
Poza przekierowaniem wyjcia, mona rwnie przekierowa wejcie. Potrzebny jest
operator <i>. Na przykad komenda nie
musi koniecznie czyta wejcia z klawiatury, rwnie dobrze moe te przetwarza pliki. Jest to cakiem uyteczne dla komendy
mail. Aby wysa tekst zapisany uprzednio
w pliku tekstowym do uytkownika o nazwie petronella, naley wprowadzi:
mail -s list U
petronella < tekstlistu
Czas na tee
W przypadku komend korzystajcych ze
zoonych potokw, tee jest bardzo uytecznym narzdziem. Jak sama nazwa wskazuje, tee jest rodzajem trjnika czcego dwa
potoki spodziewa si danych ze standardowego wejcia i przekazuje je niezmienione na standardowe wyjcie, kopiujc w midzyczasie dane do wybranego pliku. Typowa skadnia tee wyglda nastpujco:
W gr i w d potoku
LINUX USER
SOWNICZEK
Deskryptor pliku: W systemie Linux kady
proces obejmuje te otwarte pliki. Kady
z nich ma unikalny, dodatni numer. Numer ten jest czsto okrelany jako deskryptor pliku. Deskryptory 0, 1 i 2 s generowane automatycznie. Kady proces
jest uruchamiany z otwartymi kanaami
standardowego wejcia, wyjcia i bdu
(patrz Przykad 1).
obecno wystpienia sowa huhn. Polecenie tee powoduje, e wyjcie zostanie wysane najpierw do pliku loggedon.txt.
Program tee posiada dwie interesujce
opcje: -a (append) umoliwiajc doczanie danych do istniejcego pliku. Bez tej
opcji tee przy kadym wywoaniu nadpisze
plik. Opcja -i zabezpiecza przed przedwczesnym zakoczeniem polecenia tee, jeeli w strumieniu danych pojawi si znak
zatrzymania ([Ctrl c]).
tee jest czsto uywany w przypadku wielu komend w potoku. Zapisujc wyjcia
w tymczasowych plikach, moesz go uy
do rozwizywania skomplikowanych problemw i bdw. Gdy wszystko bdzie
dziaao poprawnie, moesz oczywicie usun zczenia tee. Innym zastosowaniem
tee jest rejestrowanie w pliku wyjcia zajmujcej duo czasu komendy.
ls -l /etc/* | less
Komenda ta tworzy plik dziennika podczas tworzenia archiwum tar, umoliwiajc pniejsze sprawdzenie poprawnoci
jego utworzenia. Przekierowanie wyjcia
komendy tar do pliku, tak jak w przypadku > backup.log, zapobiega niekontrolowanemu wywietleniu na oknie terminala
treci pliku. Wykorzystujc tail -f backup.log moesz obserwowa dziaanie tar
w osobnym oknie terminala.
Linux Lunacy 04
CRUISE
THE
EASTERN
MEDITERRANEAN
BY:
LINUX
MAGAZINE
www.geekcruises.com
www.linux-magazine.pl
Lipiec 2004
97