UNIX shell tutorial
3. A standard perifériák és átirányításuk
A Unixban 3 standard be- és kimeneti csatorna van definiálva:
- standard bemenet (stdin, 0)
- standard kimenet (stdout, 1)
- standard hibacsatorna (stderr, 2)
Alapértelmezésben a standard bemenet a billentyűzet, a kimenet és a hibacsatorna pedig a képernyő. Az átiranyítás (redirection) lényege, hogy a programot utasíthassunk arra, hogy a bemenetet ne a billentyűzetről varja, illetve eredményeit ne a képernyőre írja ki.
- a bemenet átirányítása <
- a kimenet átirányítása >
- adaptív átirányítás >> (ekkor az átirányított adatok a meglévőkhöz fűződnek)
3.1. A csővezeték (pipe), csövek elágaztatása (tee)
A pipe egyik program kimenetét a másik program bemenetével köti össze.
Jele |
pl.
$ who | sort
A fenti példa kiírja a bejelentkezett felhasználók listáját, de az nem egyszerűen megjelenik, hanem előtte a sort programba is belekerül, ami végül már sorbarendezve írja ki.
A csövek elágaztatását a tee parancs segítségével lehet elérni. A tee bemenetet a standard inputról veszi, kimenetet két
helyre küldi: egyrészt a standard kimenetre, másrészt a paraméterként megnevezett állományba.
pl.
$ date | tee temp
Tue Feb 10 09:36:38 MET DST 1999
$ cat temp
Tue Feb 10 09:36:38 MET DST 1999
A fenti esetben a dátum megjelenik a képernyőn is, de a tee parancs a temp fileba is kiírja azt.
$ ls | tee tart | wc -l
5
$ cat tart
Mailbox Tomogr Unix mail nsmail
$
A fenti esetben az ls parancs által adott könyvtárlista belekerül a tart fileba, de onnan továbbhalad egy pipe-on át a wc parancs bemenetébe is. Ez megszámolja a szavakat és kiírja azok számát.
