Přechod na menu, Přechod na obsah, Přechod na patičku

7.3.8 Přesměrování a roury

Základem meziprocesové komunikace v UNIXu jsou vstupy a výstupy. Každý program má k dispozici standardní vstup, standardní výstup a chybový výstup. Standardní vstup se bere ve výchozím případě od uživatele z klávesnice, výstupy jsou vypisovány na obrazovku. Všechny dosavadní výpisy byly standardní výstupy.

Užitečný bude příkaz cat: vypsání obsahu souboru na standardní výstup:

  • $ cat todo.txt 
    1) learn UNIX
    2) ...
    3) profit
    			  

Další užitečný příkaz je grep: filtrování podle zadaného vzorce:

  • $ grep UNIX todo.txt 
    1) learn UNIX
    			  

Výstupy lze přesměrovat pomocí znaku '>', například do souboru:

  • $ ls > vypis.txt
    $ cat vypis.txt 
    test
    todo.txt
    tux.png
    vypis.txt
    			  

Co se stalo: příkaz ls vypisuje po jednom soubory v aktuálním adresáři na standardní výstup a ten jsme přesměrovali do souboru vypis.txt. Příkazem cat jsme obsah tohoto souboru vypsali na standardní výstup (obrazovku). Pokud chceme připojit výstup na konec souboru (> jej přepíše), použijeme >>:

  • $ ls test/ >> vypis.txt 
    $ cat vypis.txt 
    test
    todo.txt
    tux.png
    vypis.txt
    frankenstein.howto
    			  

Dalším krokem je řetězení příkazů: přesměrování výstupu jednoho do vstupu druhého. K tomu slouží roury zapisované znakem '|':

  • $ ls | grep txt
    todo.txt
    vypis.txt
    			  

Vypsali jsme na standardní výstup názvy souborů, ten jsme přesměrovali do standardního vstupu grepu, který výsledek vypsal na standardní výstup (obrazovku).

Užitečné příkazy pro řetězení: less, head, tail.

OPVK logolink