Home / LinuxUser / 2007 / 07 / Datenfluss

Top-Beiträge

Canon treibt mich in den Wahnsinn!
(277 Punkte bei 12 Stimmen)
Wo ist das Problem?
(274 Punkte bei 14 Stimmen)
Und wenn es noch weitere drei werden ...
(214 Punkte bei 7 Stimmen)
Spickzettel
(161 Punkte bei 4 Stimmen)
Letzte Wartung für Hardy Heron
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Partner-Links:

PC + Linux Hilfe finden Sie unter pchilfe.org
Shopping
Yatego Deutschlands größte Shoppingmall. 7000 Shops,
2.5 Mio Artikel. Alle Bestseller, Gutscheine und Gewinnspiele.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Bei Freeware bietet Ihnen kostenlose Software Downloads von Programmen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Datenfluss

Ein-/Ausgabeumleitung

Das Arbeiten auf der Shell hat viele Vorteile – abgesehen davon, dass es oft schneller geht, ein Kommando einzutippen als ein grafisches Programm zu bemühen, eröffnen Pipelines, Umleitungen und Kommandoketten zusätzliche Möglichkeiten.

Auf gute Zusammenarbeit – wer Shellbefehle miteinander kombiniert, spielt die ganze Stärke der Kommandozeile aus. Dazu gehört nicht nur das Verketten einzelner Programme, sondern auch das Weiterleiten der Ausgaben: Scrollen die Informationen beispielsweise zu schnell über den Bildschirm, leiten Sie diese einfach in eine Datei um oder zeigen Sie seitenweise an.

Gut kombiniert

Mit wenigen Handgriffen verknüpfen Sie in der Bash einzelne Befehle miteinander. Anstelle von

$ mkdir Ordner
$ cd Ordner
$ cp ../Ordner2/* .

kombinieren Sie die einzelnen Arbeitsschritte und teilen dem Interpreter über das Semikolon mit, dass er alle Befehle direkt hintereinander ausführen soll:

$ mkdir Ordner ; cd Ordner ; cp ../Ordner2/* .

Noch mehr Kontrolle erhalten Sie, wenn Sie der Bash eine Bedingung stellen. So ist es beispielsweise möglich, einen zweiten (oder dritten oder n-ten) Befehl nur dann auszuführen, wenn ein anderes Kommando erfolgreich oder nicht erfolgreich war.

Um beispielsweise eine bestimmte Datei nur dann zu löschen, wenn sie vorhanden ist, stellen Sie dem Kommando Rm einen einfachen Test voran:

test -w Datei && rm Datei

Das gleichnamige Programm Test schaut in diesem Fall nach, ob die Datei existiert und schreibbar ist (Parameter -w); nur wenn das der Fall ist, löscht Rm diese. Wer häufig Software aus den Quellen baut und dabei den Dreierschritt ./configure; make; make install einsetzt, kann alle drei Befehle miteinander kombinieren und durch && sicherstellen, dass jeder folgende Befehl nur weitermacht, wenn der Vorgänger keine Fehler produziert hat:

./configure && make && make install

Neben der Option -w hat das Test-Kommando noch einige weitere praktische Flags zu bieten. So schauen Sie zum Beispiel mit -d nach, ob ein Verzeichnis schon existiert, und nur wenn dieses nicht der Fall ist, erstellen Sie es:

test -d Ordner || mkdir Ordner

Dabei übernehmen die zwei Pipezeichen zwischen den Befehlen die Funktion eines logischen Oder.

Kanalsystem

Insgesamt drei Kanäle gibt es für die Ein- und Ausgabe von Befehlen auf der Shell: Programme lesen ihre Daten von der Standardeingabe (STDIN, Kanal 0) oder aus einer Datei, die Programmausgaben landen auf der Standardausgabe (STDOUT, Kanal 1), und Fehlermeldungen werden auf die Standardfehlerausgabe (STDERR, Kanal 2) geschrieben:

Befehl < Eingabe > Ausgabe 2>Fehler

Die Operatoren < und > verraten dabei die Richtung: Erfolgt die Standardeingabe nicht über die Tastatur, sorgt < dafür, dass der Befehl sie beispielsweise aus einer Datei einliest. Um hingegen die Ausgabe eines Kommandos in eine Datei umzuleiten, dient der Operator >. Die Fehlerausgabe erreichen Sie ebenfalls über >, allerdings spezifizieren Sie hier den Kanal durch Voranstellen des File Descriptors (2>). Tabelle "Shell-Umleitungen" zeigt eine Übersicht der gebräuchlichsten Umleitungsszenarien, und die folgenden Abschnitte zeigen detaillierte Anwendungsbeispiele.

Shell-Umleitungen

Kanal

Kommando

Ergebnis

1 (stdout) Befehl > Datei Schreibt die Standardausgabe von Befehl in Datei.
1 (stdout) Befehl >> Datei Hängt die Standardausgabe von Befehl an Datei an.
2 (stderr) Befehl 2> Datei Lenkt die Standardfehlerausgabe von Befehl in Datei um.
2 (stderr) Befehl 2>> Datei Hängt die Standardfehlerausgabe von Befehl an Datei an.
1 (stdout) und 2 (stderr) Befehl > Datei 2>&1 Schreibt Standardausgabe und Standardfehlerausgabe von Befehl in dieselbe Datei.
1 (stdout) und 2 (stderr) Befehl > Datei 2> Datei2 Standardausgabe von Befehl landet in Datei, die Standardfehlerausgabe schreibt die Shell nach Datei2 geschrieben.
0 (stdin) Befehl < Datei Leitet Datei in Standardeingabe von Befehl um.
Kommentare
Einem Freund empfehlen    Druckansicht

Wertung: 156 Punkte (8 Stimmen)

Infos zur Publikation

Dieser Artikel stammt aus der Zeitschrift LinuxUser.

Aktuelles Cover

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Für weitere Informationen zum Heft klicken Sie hier.

Möchten Sie ein Probeabo (drei Ausgaben für 3 Euro) oder ein Jahresabo (ab EUR 56,10) bestellen, klicken Sie hier.

Tipp der Woche

MPlayer mit grafischem DVD-Menü
Marcel Hilzinger, 08.02.2010 11:45, 0 Kommentare

Wer zu den Linux-Früheinsteigern gehört, wird sich mit Sicherheit noch an die Tage erinnern, an denen die DVD-Wiedergabe mit Menü-Support unter Linux nur mit dem Player

Aktuelle Fragen

Wo ist mein Netmanager geblieben?
Matthias Ohletz, 08.02.2010 21:55, 1 Antworten
Hallo allerseits, bin noch ein absolutes Suse-Greenhorn. Ich habe die Version 11.2 auf meinem No...
DVD aus TS von Kathrein erstellen - KUbuntu 9.10 - wie?
Hendrik Timmermann, 08.02.2010 18:10, 3 Antworten
Hallo, ich habe einen Kathi mit Netzanschluss und kann mir so vom Kathi die auf Platte aufgeno...
USB Bluetooth-Adapter
Wimpy *, 07.02.2010 10:27, 2 Antworten
Ich wollte Bilder vom Handy via Bluetooth auf den PC laden und habe mir dazu einen USB-Bluetooth-...
Blackberry Bold 9700 als UMTS-Modem
Michael Pfaffe, 06.02.2010 10:18, 3 Antworten
Liebe Linux-Gemeinde, ich möchte meine Frage noch einmal wiederholen, vielleicht kann mir jetz...
DVD 9 aus dem Heft LINUXuser
Wolfgang Schiewart, 03.02.2010 14:19, 3 Antworten
Bin ein Suse-Frischling. Wenn ich die DVD mit meinem Suse11.2-Laptop öffne, erscheint Dolphin und...