Standardowe wejście-wyjście

Przegląd poleceń Basha dotyczących standardowego wyjścia/wejścia: tee, script, xargs, > , >>, |

Standardowym wejściem zazwyczaj jest klawiatura a standardowym wyjściem - monitor, lecz nie jest to reguła. Każdy program unixowy wczytuje i generuje dane w jednolity określony sposób, co umożliwia współdziałanie różnych aplikacji ze sobą.

>
Kieruje standardowe wyjście do pliku. Przykłady:
ls > lista.txt
Stworzy plik lista.txt zawierający wynik działania polecenia ls.

<
Odczytuje standardowe wejście z pliku a nie z klawiatury. Przykłady:
test < lista.txt


2>
Przekierowuje standardowe wyjście błędów.
cc -o plik plik.c 2> blendy.txt
Błędy kompilacji zostaną zapisane do pliku.

>>
Dołącza standardowe wyjście do pliku nie nadpisując jego zawartości.
ls >> lista.txt


|
Znak potoku łączy standardowe wyjście jednego programu ze standardowym wejściem drugiego.
find ./ -type f -print | grep "wazne.c"
Lista nazw plików generowana przez find jest kierowana na standardowe wejście grep, które szuka określonego łańcucha tekstu.

tee opcja plik
Kopiuje standardowe wejście na standardowe wyjście oraz do wszystkich plików podanych jako argument polecenia.
find ./ -type f -print | tee rezultaty.txt | grep "wazne.txt"


script
Zapisuje do pliku akcje z terminala. Rejestrację kończy się wciskając CTRL+D
script wyniki.txt


xargs dużo opcji
Odczytuje argumenty ze standardowego wejścia, konstruuje linię poleceń z wykorzystaniem tych argumentów oraz argumentów z własnej linii polecenia i wykonuje skonstruowane polecenie. Załóżmy że w katalogu bieżącym mamy trochę plików tekstowych i chcemy wyszukać wszystkie, które zawierają wyraz "linux" w swojej treści. Oto polecenie:
find ./ -type f -print | xargs grep "linux"


find generuje listę plików a grep szuka. Bez xargs grep szukałby w nazwach plików a nie w ich zawartości.
blog comments powered by Disqus

Kategorie

Strony