Pipes

Der Begriff Pipe ("Rohr") mag zunächst etwas eigenartig klingen. Der Sinn dieser Bezeichnung erschließt sich jedoch, wenn man weiß, dass in Linux durch Pipes die Standardausgabe eines Befehls mit der Standardausgabe eines anderen Befehls verbunden wird (wie durch ein "Rohr", um im Bild zu bleiben).

Zunächst gehen wir aber wieder einen Schritt zurück, zum Befehl ls. In Verbindung mit ls kann eine Vielzahl von Optionen verwendet werden - doch was können Sie tun, wenn der Inhalt eines Verzeichnisses bei der Anzeige so schnell gescrollt wird, dass Sie gar nicht alles lesen können?

Schauen wir uns mal den Inhalt des Verzeichnisses etc näher an.

ls -al /etc
	  

Wie ist es nun möglich, die Ausgabe in Ruhe anzuschauen, bevor sie wieder vom Bildschirm verschwindet?

Eine Methode besteht darin, die Ausgabe an ein Dienstprogramm mit der Bezeichnung less weiterzuleiten. Pager wie less (oder more) ermöglichen die Anzeige von Informationen auf eine Weise, bei der immer nur so viele Dateien angezeigt werden, wie gerade auf den Bildschirm passen.

Das Weiterleiten der Datei über die Pipe erfolgt durch Eingeben eines vertikalen Balkens (|) (wie in Abbildung 15-15).

ls -al /etc | less
	  

Nun ist es möglich, die Ausgabe langsam und schrittweise auf dem Bildschirm anzuzeigen. Um jeweils zum nächsten Bildschirm umzuschalten, müssen Sie lediglich die Leertaste drücken, zum Zurückblättern dient B, und zum Beenden drücken Sie einfach Q.

TipWie Sie Ihre Startmeldungen lesen können
 

Möchten Sie sich mit diesen Startmeldungen etwas genauer befassen? Geben Sie am Shell Prompt den Befehl dmesg | less ein. Sie können dann die Datei mit den Meldungen jeweils seitenweise auf dem Bildschirm anzeigen. Um vorzublättern, drücken Sie die Leertaste, um die Anzeige der Datei zu beenden, drücken Sie die Taste Q.

Abbildung 15-15 Weiterleiten der Ausgabe von ls zum Pager less

Aber eigentlich haben wir ja schon Pipes verwendet, bevor wir uns darüber im Klaren waren, um was es sich dabei handelt.

Als die man-Seiten in einem früheren Abschnitt dieses Handbuchs behandelt wurden, hatten wir den Inhalt der man-Seite mit dem folgenden Befehl ausgedruckt:

man ls | col -b | lpr
	  

Hier senden wir die Ausgabe von man ls an einen Filter mit der Bezeichnung col mit der Option -b, um zuerst die Formatierung des Texts für den Drucker vorzunehmen. Dann wird die Ausgabe dieses Filters mit dem Befehl lpr an den Drucker weitergeleitet.

TipZusammenfassung
 

Durch die Verwendung von Pipes wird die Ausgabe eines Befehls als Eingabe an einen weiteren Befehl weitergeleitet. Beispiel: ls -al /etc | more leitet die Ausgabe des Befehls ls an das Dienstprogramm more weiter, um so die Ausgabe übersichtlich auf dem Bildschirm anzuzeigen.