Bereits sehr früh wurde das Prinzip der
„Pipes“, Röhren ist keine schlechte
Übersetzung, integriert. Sie können etwas
„hineinschieben“ und am anderen
Ende kommt es wieder heraus. Wie bereits beschrieben,
gibt es sehr viele kleine, spezialisierte Programme unter Unix, die mit
speziellen Parametern aufgerufen werden können. Sinnvoll wäre eine
Schnittstelle zwischen diesen Programmen, um Daten auszutauschen oder auch
das Ergebnis eines Programmlaufs in einem weiteren Programm aufzubereiten.
Diese Schnittstelle ist in Form von „Pipes“ realisiert. Sicher haben Sie schon
das Kommando ls benutzt, um sich die Dateien in einem Verzeichnis
anzeigen zu lassen. Wenn Sie aber in einem Verzeichnis mit sehr vielen
Dateien die Anzahl der Dateien ermitteln möchten, kann das Zählen leicht
etwas umständlich werden. Um Zeichen, Wörter oder Zeilen in einer Datei zu
zählen, gibt es aber das Kommando wc
(Word Count). Ein Weg wäre also, die Ausgabe
von ls -l in eine Datei zu
schreiben und mittels wc -l die
Zeilen zählen zu lassen. Der Umweg über
eine Datei läßt sich aber mittels
einer Pipe umgehen.
Unix benutzt hierfür das Zeichen | (Pipe). Verknüpfen Sie einfach
die beiden Kommandos mittels dieses Zeichens zu einer Zeile:
ls -l | wc -l, gibt Ihnen die Anzahl der Dateien im aktuellen
Verzeichnis aus. Nur ein kleiner Haken an dieser Stelle: ls
gibt als erste Zeile keinen Dateinamen aus, sondern eine Zeile, in der
Informationen über das Verzeichnis aufgezeigt werden, Sie müssen also
vom Ergebnis eine Zeile subtrahieren, um auf das genaue Ergebnis zu kommen.
Wenn Sie sich die Rechnenarbeit ersparen wollen, können Sie auch die Option -1
statt -l beim Kommando ls benutzen, doch das führt jetzt
zu weit...
Ein weiteres Beispiel für die Benutzung von Pipes werden wir im folgenden
Abschnitt zu ps aufzeigen. Sie werden im Laufe der Zeit
an vielen Stellen auf weitere Anwendungsfälle stoßen.