Shell-Grundlagen mit Pipes

Bevor Apple mit dem Macintosh die grafische Benutzeroberfläche eingeführt hat, fand die Interaktion zwischen Mensch und Maschine fast ausschließlich über so genannte Shells (engl. Muschel) statt.
In einer Shell werden Programme und Dateien nicht über Icons oder Menüs, sondern Ihren Namen aufgerufen. Die Programme können zusätzliche Parameter, wie Dateinamen, entgegennehmen. Der Funktionsumfang dieser Anwendungen war jedoch in der Anfangszeit stark eingeschränkt.

Rohrpost

Unter UNIX-Betriebssystemen wurden diese Einschränkungen durch die mächtigen Pipes (als Symbol „|“ ) aufgehoben. Durch Pipes (engl. Röhren) werden zwei Programme miteinander verknüpft. Genauer gesagt wird die Ausgabe von Programm A als Eingabe an Programm B weitergegeben.

Beispiel 1:

$ cat /var/log/messages | grep eth0

Im Beispiel werden die Programme cat und grep miteinander verknüpft. Cat dient dazu Dateien auszugeben, grep durchsucht Dateien nach Suchbegriffen oder regulären Ausdrücken und gibt alle Zeilen aus, die den Suchbegriff enthalten. Durch die Pipe wird der Inhalt der Datei nicht auf dem Bildschirm ausgegeben, sondern an grep weitergeleitet. Als Ergebnis erhält der Nutzer alle Zeilen der Datei /var/log/messages, die den Suchbegriff eth0 enthalten.
Pipes können beliebig oft kombiniert werden.

Umleitung

Die Ausgabe eines Programms lässt sich nicht nur an ein anderes Programm weiterleiten. Mit dem Zeichen > kann die Ausgabe auch in eine Datei umgeleitet werden.

Beispiel 2:

$ cat /var/log/messages | grep eth0 > netzwerkkarte.log

Der Befehl leitet die Ausgabe aus Beispiel 1 in die Datei netzwerkkarte.log um.

Das Zeichen < dient dazu, eine Datei als Eingabe eines Programms zu verwenden.

Beispiel 3:

$ grep eth0 < /var/log/messages

Philosophie

Die drei vorgestellten Konzepte sind Beispiele für die Macht, die hinter der so genannten UNIX-Philosophie¹ steckt. UNIX-Programme werden auf eine einzige Aufgabe zugeschnitten und darauf ausgelegt, möglichst gut mit anderen Programmen zusammenzuarbeiten. Die Pipes erlauben es auf Basis dieser einfachen Programme nach dem Lego-Prinzip maßgeschneiderte Lösungen für beliebig komplexe Aufgaben zu erstellen.

[¹] http://de.wikipedia.org/wiki/Unix-Philosophie

No comments yet

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: