Każdemu procesowi przypisuje się standardowy strumień wejściowy (STDIN) oraz standardowy strumień wyjściowy (STDOUT). Strumień wejściowy związany jest z informacjami wpisywanymi przez użytkownika, a wyjściowy z ekranem terminala. Istnieje też strumień błędu (STDERR). Redyrekcja czyli inaczej przekierowanie strumienia. Mamy następujące oznaczenia:
> - zmiana standardowego wyjścia na plik
>> - dopis do pliku
< - zmiana standardowedo wejścia na plik
>!- przekierowanie do pliku bez względu czy istnieje
>&- zmiana strumienia błędu
Wyświetlić plik na standardowy strumień wyjścia możemy za pomocą polecenia cat.
owi@laptop:~$ cat /etc/passwd
Wyświetlić plik na standardowy strumień wyjścia możemy za pomocą polecenia cat.
owi@laptop:~$ cat /etc/passwd >
Za pomocą ">" można przekierować standardowy strumień wyjścia na plik. Wystarczy napisać cat > nazwa pliku, aby informacje wpisane później zostały do tego pliku przekazane.
owi@laptop:~$ cat > nazwapliku
Za pomocą ">" można również połączyć dwa pliki. Wystarczy napisać cat nazwapliku1 nazwapliku2 > nazwapliku3, aby informacje z pliku1 oraz pliku2 zostały połaczone w jeden plik o nazwie plik3.
Znak ">>" umożliwia dopisanie informacjii do pliku. Chcąc dodać pewnie dane do pliku należy napisać cat >> nazwapliku <enter> ... dane. Takie polecenie może być przydatne do dopisania kolejnych danych bez utracenia poprzednich.
owi@laptop:~$ cat >> nazwapliku
Za pomocą redyrekcji możliwe jest także przekazywanie wyniku działania programu do pliku. Przykładem może być polecenie date. Polecenie to wyświetla aktualna datę oraz godzinę. Aby zapisać obecna date w pliku można użyć przekierowania.
owi@laptop:~$ date > nazwapliku
Redyrekcje możemy ze sobą łaczyć np. dane do programu zostaną pobrane z pliku dane1. Program da pewien wynik, który zostanie zpaisany do pliku1.
owi@laptop:~$ program < dane1 > plik1
Można także przekierować plik na jakieś urządzenie:
Potoki są sposobem komunikacji między procesami. Komunikacja ta
polega na przekazaniu wyniku działania jednego procesu na wejście drugiego.
W systemie Unix potoki symbolizuje znak "|". Załużmy, że chcemy wyświetlić pewien plik, a później
policzyć ile znajduje się w nim linii. Możemy użyć do tego potoku:
owi@laptop:~$ cat nazwapliku1|wc -l
Najpierw został wyświetlony plik1, a później policzone linie. Tak więc potoki to nic innego jak łańcuchowe wywoływanie funkcji. Oczywiście można korzystać z większej ilości funkcji na raz np:
owi@laptop:~$ who|sort|cut -f1 -d" "|uniq|wc -l
Powyższy przykład pokazuje jak za pomocą potoków wyświetlić ilość zalogowanych użytkowników. Najpierw zostały wyświetlone informacje o zalogowanych, następnie zostały one posortowane alfabetycznie. Kolejny krok to wybranie jedynie loginów oraz usunięcie powtarzających się. Na koniec zostało już tylko zliczenie linii.
Autor: Aleksandra Przybyło aleksandraprzybylo@gmail.com
Akademia Górniczo-Hutnicza Wydział Geologii, Geofizyki i Ochrony Środowiska Informatyka Stosowana