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:
