Strumienie w Linuksie

W systemach uniksowych z każdym procesem występują tak zwane strumienie. Czasem nazywane też potokami. Dzięki strumieniom możemy przekierować dowolnie dane wchodzące lub wychodzące z procesu czy programu.
Z każdym procesem związane są zwykle trzy strumienie:

stdin – standardowy strumień wejściowy, zwykle związany z klawiaturą – na przykład polecenia dla procesu.
stdout – standardowy strumień wyjściowy, zwykle związany z ekranem – ten strumień reprezentuje wszystkie dane wyprowadzane (wyświetlane) przez program.
stderr – standardowy strumień błędów, również zwykle związany z ekranem – na ten strumień kierowane są wszystkie komunikaty o błędach lecz często nie jest wyświetlany.

Sposoby przekierowania strumienia danych:

> przekazanie wyniku działania ze strumienia wejściowego

< przekazanie w poleceniu danych do przetwarzania do strumienia wejściowego

| przefiltrowanie danych tworzonych w wyniku działania polecenia przed przekazaniem ich do narzędzia odbierającego wynikowe dane

2> przekazanie komunikatów o błędach (ze strumienia błędów)

>> dołączenia danych tworzonych w wyniku działania polecenia – kolejne informację moga być dopisane (a nie nadpisane) do tego samego pliku wynikowego

Przykłady użycia:

ls -l > ~/listaPlikow.txt

zapisanie listy plików obecnego katalogu do pliku o nazwie listaPlikow.txt w katalogu domowym danego użytkownika

ls -l /katalog >  ~/listaPlikow.txt 2> ~/bledy.txt

zapisanie listy plików obecnego katalogu do pliku o nazwie listaPlikow.tx w katalogu domowym danego użytkownika. A dodatkowo jeśli wystąpią błędy to zostaną zapisane do pliku bledy.txt

cat dlugiPlik.txt | grep TEST

przefiltrowanie wyniku działania cat na pliku dlugiPlik.txt za pomocą narzedzia grep który wyszukuje w swoim strumieniu słowo TEST. Na ekranie zostaną wyświetlone tylko we wiersze, które zawierają słowo TEST w pliku dlugiPlik.txt

Polecane książki:

Apache2
Tags: