Strumienie i przetwarzanie potokowe, idea i zastosowania

Każdy program pracujący w konsoli ma trzy strumienie: wejściowy, wyjściowy oraz błędów. Standardowe wejście to konsola, wyjście oraz wyjście dla błędów to ekran monitora. Pozwala to w wygodny sposób kierować strumieniami komunikatów a także układać polecenia w ciągi, co pozwala tworzyć nawet skomplikowane polecenia.

Strumień wyjściowy możemy przekierować korzystając ze znaku >. Pozwala to w łatwy sposób np. zapisać dane do pliku.
Przykład: zapiszmy wszystkie pliki z obecnego katalogu do pliku spis.txt.

ls > spis.txt

Strumień wejściowy zmieniamy z domyślnej klawiatury dzięki ‚<‚. Przydatne jest to w przypadku, gdy chcemy przekazać dane zapisane w pliku do skryptu czy polecenia.
Przykład: Policzmy ile jest plików zapisanych w poprzednim przykładzie.

wc -l < spis.txt

Standardowy strumień błędów aplikacji możemy przekierować używając znaku ‚2>’. Dzięki temu możemy łatwo zapisać błędy np. do pliku.
Przykład: błędy z programu ls zapiszemy do pliku bledy.txt.

ls bledny_katalog 2> bledy.txt

Jeżeli chcemy przekazywać dane z jednego polecenia do drugiego najlepiej skorzystać z łącznika |.
Przykład: Chcemy znaleźć pakiety z nazwą zawierającą słowo MySQL. Zrobimy to następująco:

rpm -qa | grep MySQL

ćwiczenie 2

Proszę wykonać następujące czynności:

  1. Stworzyć plik z listą katalogów i plików w katalogu głównym (tylko).
  2. Przeliczyć ile katalogów zostało zapisanych w pliku z poprzedniego punktu, czyli ile katalogów znajduje się w katalogu głównym.
  3. Sporządzić listę katalogów i plików z katalogu /usr/share/doc (tylko i wyłącznie z tego katalogu) z literą y w nazwie (z pomocą polecenia grep).

Dodaj komentarz