|
A szabványos adatbevitel és adatkivitel elvét a UNIX-ban találták ki. A shell lehetővé teszi a szabványos csatornák átirányítását a ,,>'' és a ,,<'' (kacsacsőr-jelek) segítségével.
Parancsok végrehajtásának eredményét a következő módon tudjuk fájlba irányítani:
zsiga@debian:~$ ls >listaÍgy az ls parancs kimenete nem jelenik meg a képernyőn, hanem beleíródik a lista nevű fájlba. Ebben az esetben, ha nem létezett a lista nevű fájl, akkor létrejön, ha létezett, akkor felülíródik. Abban az esetben, ha nem felülírni, hanem hozzáfűzni szeretnénk egy létező fájlhoz, akkor a következő formában kell kiadnunk a parancsot:
zsiga@debian:~$ ls >>lista
Azok a parancsok, amelyek a szabványos adatbeviteli csatornáról várnak adatokat, az átirányítás révén az adatbevitelt fájlból is megkaphatják:
zsiga@debian:~$ cat <lista(Ezt csak a példa kedvéért csináltam, mert a cat parancs akkor is működik, ha csak a fájl nevét adjuk meg neki.)
Lehetséges a szabványos hibacsatorna átirányítása is. Erre például abban az esetben lehet szükségünk, ha a háttérben indítjuk el egy program futását, de látni szeretnénk, ha valami probléma támadt a futása közben.
zsiga@debian:~$ ls > lista 2> errorTehát először az ls parancs eredményét átirányítjuk a lista nevű fájlba, ugyanakkor a hibaüzeneteket átirányítjuk az error nevű fájlba.
Több csatornát is átirányíthatunk egyszerre.
A cső (pipe) segítségével átirányíthatjuk az egyik parancs kimenetét egy másik parancs bemenetére.
zsiga@debian:~$ who | sort(Ez a bejelentkezett felhasználókat állítja sorba.)
A csövekből többet is rakhatunk egymás után:
zsiga@debian:~$ who | sort | grep zsiga(Ez csak a zsiga loginnevű bejelentkezett felhasználókat írja ki a képernyőre, sorrendbe rendezve.)