Aus LinuxUser 06/2004

Zu Befehl: Kanäle, Pipes und Tee (Seite 2)

mail -s "brief" petronella < brieftext

Im Aufruf setzt die Option -s den Betreff (engl.: Subject) der Nachricht. mail verschickt dann die mit < eingelesene Datei brieftext.

In die Röhre schauen?

Mit dem Pipe-Zeichen („|“) verknüpfen Sie Aus- und Eingabestrom und ketten so Befehle aneinander. Um beispielsweise die Ausgabe des Kommandos ls -l /etc/* im Pager less anzuzeigen, tippen Sie:

ls -l /etc/* | less

Ohne diese Umleitung scrollt die Ausgabe des ls-Befehls einfach aus dem Fenster heraus. Es ist auch möglich, mehrere dieser Pipelines hintereinander zu verwenden:

huhn@asteroid:~$ du ~ | sort -rn | less
15237932 /home/huhn
1598024 /home/huhn/digicam
1518428 /home/huhn/uni
1500236 /home/huhn/tmp
1246740 /home/huhn/uni/anglistik
[…]

Hier schaut zunächst das Kommando du[2] in allen Unterverzeichnissen des Home-Verzeichnis (abgekürzt durch die Tilde ~) nach, welche Dateien wie viel Platz belegen. Um herauszufinden, wer nun genau den meisten Platz belegt, leiten Sie die Ausgabe des du-Kommandos an den Befehl sort[3] weiter. Die beiden Parameter -r und -n sorgen dabei dafür, dass die Ausgabe in umgekehrter Reihenfolge erscheint und numerisch sortiert wird. Die zweite Pipe sorgt dafür, dass die Ausgabe der Befehle seitenweise erscheint.

Tee-Time

Praktisch in Zusammenhang mit komplexen Pipelines ist das Tool tee. Der Name leitet sich aber nicht vom Heißgetränk ab, sondern vom „T-Stück“ – etwa als Verbinder und Abzweig zwischen zwei Rohrleitungen. Das Kommando tee erwartet Daten aus der Standardeingabe und reicht sie unverändert an die Standardausgabe durch – kopiert sie aber gleichzeitig in die angegebene Datei. Die allgemeine Syntax von tee lautet:

tee [-option] datei

Das T-Stück können Sie über eine Pipe zwischen zwei Befehlen einfügen. tee nimmt dann die Ausgabe des ersten Befehls entgegen, leitet sie in eine Datei und zusätzlich an das nächste Kommando weiter:

huhn@asteroid:~$ who | tee eingeloggt.txt | grep huhn
huhn     :0           Apr 29 13:45

Hier schaut der Befehl who zunächst nach, wer auf dem System eingeloggt ist. Die Ausgabe durchsucht der grep-Befehl nach „huhn“. Das in der Mitte eingefügte Kommando tee sorgt dafür, dass die who-Ausgabe vorher in der Datei eingeloggt.txt landet.

Der Befehl tee kennt zwei interessante Optionen: Mit -a („append“) hängen Sie Daten an eine bereits bestehende Datei an. Ohne diese Option überschreibt tee diese bei jedem neuen Aufruf. Die Option -i verhindert, dass sich tee beim Auftreten von Interrupts ([Strg-c]) im Datenstrom beendet.

tee kommt häufig zum Einsatz, wenn viele durch Pipes verbundene Kommandos im Einsatz sind. Eine Zwischenspeicherung von einzelnen Ausgaben in temporäre Dateien kann beim Aufspüren und Beheben von Fehlern in der Befehlskette helfen. Läuft alles glatt, können die T-Stücke einfach herausgenommen werden. Eine weitere Einsatzmöglichkeit ist das „Protokollieren“ eines Kommandos, das sehr viel Zeit in Anspruch nimmt, z. B.:

tar cvf backup.tar * | tee backup.log

Zusätzlich zum Tar-Archiv wird hier ein Logfile angelegt, das Sie auch noch später zu Kontrollzwecken anschauen können. Eine alternative Umleitung des tar-Kommandos mit > backup.log unterdrückt die Ausgabe ins Fenster, die zuvor durch den Parameter v eingeschaltet wurde, und Sie müssten den Fortschritt von tar mit dem Befehl tail -f backup.log in einem anderen Terminal verfolgen.

Glossar

File Descriptor

Jeder Prozess verwaltet unter Linux eine Liste aller geöffneten Dateien, jeder Eintrag in dieser Liste hat eine eindeutige Nummer, die auch File Descriptor genannt wird. Die Descriptors 0, 1 und 2 werden automatisch erzeugt, da jeder Prozess mit geöffneter Standardein-, -aus- und -fehlerausgabe startet.

Infos

[1] mail: Heike Jurzik, „Minimal mit mail“, LinuxUser 03/2003, S. 82

[2] df und du: Heike Jurzik, „Das richtige Maß“, LinuxUser 01/2004, S. 78

[3] sort: Heike Jurzik, „Richtige Reihenfolge“, LinuxUser 04/2002, S. 76

LinuxUser 06/2004 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: