Met kun je de output van het ene programma laten gebruiken als invoer voor het
volgende. Voorbeeld: ps aux
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.