09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

114 8 Standardkanäle und Filterkommandos<br />

make >make.log 2>&1<br />

make 2>&1 >make.log<br />

führen zu sehr unterschiedlichen Resultaten. Im zweiten Fall wird erst die<br />

Standard-Fehlerausgabe dorthin geleitet, wohin die Standard-Ausgabe geht<br />

(/dev/tty, wo sie sowieso schon hingeht) und anschließend die Standard-<br />

Ausgabe in die Datei make.log geschickt, was an dem Ziel der Standard-Fehlerausgabe<br />

aber nichts mehr ändert.<br />

Übungen<br />

C<br />

C<br />

C<br />

C<br />

C<br />

8.1 [2] Mit der Option -U können Sie ls dazu bringen, die Verzeichniseinträge<br />

unsortiert auszugeben. Trotzdem hat nach dem Kommando »ls -laU<br />

>inhalt« der Eintrag für inhalt in der Ausgabedatei immer noch die Länge<br />

Null. Woran könnte das liegen?<br />

8.2 [!2] Vergleichen Sie die Ausgabe der Kommandos »ls /tmp« und »ls /tmp<br />

>ls-tmp.txt« (wobei wir mit »Ausgabe« im zweiten Fall den Inhalt der Datei<br />

ls- tmp.txt meinen). Fällt Ihnen etwas auf? Falls ja, wie könnte man das Phänomen<br />

erklären?<br />

8.3 [!2] Warum ist es nicht möglich, eine Datei in einem Schritt durch eine<br />

neue Version zu ersetzen, etwa mit »grep xyz datei >datei«?<br />

8.4 [!1] Und was ist das Problem mit »cat bla >>bla« (eine nichtleere Datei<br />

bla vorausgesetzt)?<br />

8.5 [2] Wie würden Sie in der Shell eine Meldung so ausgeben, dass sie auf<br />

der Standard-Fehlerausgabe landet?<br />

Oft dient die Ausgabeumleitung nur dazu, das Ergebnis eines Programms abzuspeichern,<br />

um es dann mit einem anderen Kommando weiterzubearbeiten. <strong>Die</strong>se<br />

Art von Zwischenspeicherung ist jedoch nicht nur recht mühsam, sondern Sie<br />

müssen auch noch daran denken, die nicht mehr benötigten Dateien wieder zu löschen.<br />

<strong>Linux</strong> bietet daher eine direkte Verknüpfung von Kommandos durch Pipes<br />

an: <strong>Die</strong> Ausgabe eines Programms wird automatisch zur Eingabe <strong>des</strong> nächsten<br />

Programms.<br />

<strong>Die</strong> direkte Verknüpfung mehrerer Befehle zu einer solchen Kommando-<br />

Pipes<br />

direkte Verknüpfung<br />

mehrerer Befehle<br />

Pipeline<br />

8.1.3 Kommando-Pipelines<br />

Pipeline (»Rohrleitung«) erfolgt mit dem Zeichen |. Statt also wie im ersten Beispiel<br />

dieses Kapitels zunächst den Verzeichnisinhalt mit dem Kommando »ls<br />

-laF« in eine Datei inhalt umzulenken und diese dann mit less anzusehen, können<br />

Sie diesen Vorgang auch in einem Schritt ohne Zwischenspeicherung in einer<br />

Datei ausführen:<br />

$ ls -laF | less<br />

total 7<br />

drwxr-xr-x 12 hugo users 1024 Aug 26 18:55 ./<br />

drwxr-xr-x 5 root root 1024 Aug 13 12:52 ../<br />

drwxr-xr-x 3 hugo users 1024 Aug 20 12:30 fotos/<br />

-rw-r--r-- 1 hugo users 449 Sep 6 13:50 inhalt<br />

-rw-r--r-- 1 hugo users 15811 Aug 13 12:33 pingu.gif<br />

-rw-r--r-- 1 hugo users 14373 Aug 13 12:33 hobby.txt<br />

-rw-r--r-- 2 hugo users 3316 Aug 20 15:14 chemie.txt<br />

Derartige Befehlsfolgen können praktisch beliebig lang werden, auch ist eine abschließende<br />

Ausgabeumleitung in eine Datei möglich:<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!