# Pipes

Pipes (Röhren) dienen der Verknüpfung eines Ausgabe- mit einem Eingabestrom:

`user@sonne> cd /dev user@sonne> ls -l | less`

speist die Ausgabe von `ls -l` in die Eingabe von `less` (ohne diese Pipe hätte man keine Chance, die Ausgaben - ca. 1500 Zeilen - am Bildschirm zu verfolgen).

Anstelle von Pipes können auch FIFO-Dateien verwendet werden (kaum gebraucht):

`user@sonne> mkfifo fifo user@sonne> ls -l > fifo& user@sonne> less fifo user@sonne> rm fifo`

`ls -l` schreibt nun in die Datei fifo, aus der `less` seine Daten bezieht. Um die Shell für die nächste Eingabe frei zu bekommen, wurde `ls -l` im Hintergrund gestartet (& bewirkt diesen Effekt).

Alternativ kann man auch wie folgt vorgehen:

`user@sonne> ls -l > fifo ^z [1]+ Stopped ls --color=tty -l >fifo user@sonne> bg [1]+ ls --color=tty -l >fifo & user@sonne> less < fifo [1]+ Done ls --color=tty -l >fifo`

[Ctrl][Z] stoppt die Ausführung des aktiven Prozesses (es erscheint eine Meldung: `..Stopped...`), `bg` lässt den Prozess nun im Hintergrund laufen. Mit Beenden von `less` terminiert auch `ls -l`. Mit `fg` kann man den zuletzt in den Hintergrund beförderten Prozess wieder in den Vordergrund holen (`fg jobnr` holt den Job mit der angegebenen Nummer in den Vordergrund).