next up previous contents index
Volgende: 6.4 Permissies en eigenaren Omhoog: 6 Basiskennis Vorige: 6.2 Basiscommando's   Inhoudsopgave   Index

6.3 Pipelines, redirecting en backquotes

Met $\vert$ kun je de output van het ene programma laten gebruiken als invoer voor het volgende. Voorbeeld: ps aux $\vert$ grep netscape. Het eerste commando (ps aux) geeft als output alle processen die op dit moment draaien. Deze output dient als input voor grep netscape, die ervoor zorgt dat alleen de regels waar netscape in voorkomt overblijven. De invoer van een programma noem je stdin, de uitvoer stdout. Er is ook nog stderr, de error output. Die laatste wordt gebruikt voor foutmeldingen. Beide worden hetzelfde getoond in de console/terminal, maar je kunt ze wel apart filteren bij het redirecten.

Met $>$ kun je de output van een commando naar een bestand of ander programma laten redirecten. Zo zorgt echo hoi $>$ testfile ervoor dat de output van echo hoi (hoi dus) in het bestand testfile wordt gezet. Bestaat dat bestand al, dan wordt die overschreven! De output krijg je hierdoor niet op het beeld te zien. Je kunt van ongewenste output afkomen door het te redirecten naar /dev/null. Dan verdwijnt het in de digitale prullenbak. De stderr wordt normaal gesproken niet meegenomen bij het redirecten. Wil je die ook meenemen, gebruik dan &> file of > file 2>&1.

Met $>>$ kun je ook output naar een bestand redirecten, maar in dit geval wordt het bestand niet overgeschreven, maar wordt de output achteraan in het bestand toegevoegd.

Met $<$ wordt wat erna komt als input gebruikt voor het programma dat ervoor komt.

Met $<<$ kun je zelf input intikken totdat je een bepaald woord intikt. Voorbeeld: cat $>$ test $<<$ stop. Je kunt na dit commando gegeven te hebben van alles intikken, totdat je op een lege regel alleen stop intikt. Dan wordt de ingetikte tekst (zonder het woord stop) in het bestand test gezet. Waarschijnlijk ga je dit niet zo vaak gebruiken, maar ik noem het even voor de volledigheid.

Tenslotte nog iets handigs dat in ieder geval in de Bash-shell werkt: backquotes. Een backquote is de quote die links naast de 1 op je toetsenbord zit. De output van wat tussen backquotes staat wordt letterlijk zo ingevuld op die plaats. Een voorbeeld: vim `which startx`. Het commando which startx geeft de exacte locatie (complete pad + bestandsnaam) van dit script als output. Dat wordt letterlijk ingevuld achter vim, dus zo open je het script startx.


next up previous contents index
Volgende: 6.4 Permissies en eigenaren Omhoog: 6 Basiskennis Vorige: 6.2 Basiscommando's   Inhoudsopgave   Index
Jarkko Huijts 2002-08-17