Unter Linux die pipe
Mit dem Befehl können Sie die Ausgabe eines Befehls an einen anderen senden. Piping kann, wie der Begriff schon sagt, die Standardausgabe, -eingabe oder -fehler eines Prozesses zur weiteren Verarbeitung an einen anderen umleiten.
Die Syntax für die pipe
oder unnamed pipe
Befehl ist der |
Zeichen zwischen zwei beliebigen Befehlen:
Command-1 | Command-2 | …| Command-N
Hier kann nicht über eine andere Sitzung auf die Pipe zugegriffen werden; es wird temporär erstellt, um die Ausführung von Command-1
zu ermöglichen und die Standardausgabe umleiten. Es wird nach erfolgreicher Ausführung gelöscht.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Im obigen Beispiel contents.txt
enthält eine Liste aller Dateien in einem bestimmten Verzeichnis – insbesondere die Ausgabe von ls -al
Befehl. Wir grep
zuerst die Dateinamen mit dem Schlüsselwort "file" aus contents.txt
durch Verrohrung (wie gezeigt), also die Ausgabe von cat
Der Befehl wird als Eingabe für grep
bereitgestellt Befehl. Als nächstes fügen wir Piping hinzu, um awk
auszuführen Befehl, der die Spalte 9 aus der gefilterten Ausgabe von grep
anzeigt Befehl. Wir können auch die Anzahl der Zeilen in contents.txt
zählen mit wc -l
Befehl.
Eine benannte Pipe kann so lange bestehen bleiben, wie das System läuft, oder bis sie gelöscht wird. Es handelt sich um eine spezielle Datei, die dem FIFO-Mechanismus (first in, first out) folgt. Sie kann wie eine normale Datei verwendet werden; d.h. Sie können darauf schreiben, daraus lesen und es öffnen oder schließen. Um eine benannte Pipe zu erstellen, lautet der Befehl:
mkfifo <pipe-name>
Dadurch wird eine benannte Pipe-Datei erstellt, die sogar über mehrere Shell-Sitzungen hinweg verwendet werden kann.
Eine andere Möglichkeit, eine benannte FIFO-Pipe zu erstellen, ist die Verwendung dieses Befehls:
mknod p <pipe-name>
Um eine Standardausgabe eines beliebigen Befehls an einen anderen Prozess umzuleiten, verwenden Sie >
Symbol. Um eine Standardeingabe eines beliebigen Befehls umzuleiten, verwenden Sie <
Symbol.
Wie oben gezeigt, ist die Ausgabe von ls -al
Befehl wird zu contents.txt
umgeleitet und in die Datei eingefügt. Ebenso die Eingabe für den tail
Befehl wird als contents.txt
bereitgestellt über den <
Symbol.
Hier haben wir eine benannte Pipe erstellt, my-named-pipe
, und leitete die Ausgabe von ls -al
um Befehl in die benannte Pipe. Wir können eine neue Shell-Session öffnen und cat
den Inhalt der benannten Pipe, die die Ausgabe von ls -al
zeigt Befehl, wie zuvor angegeben. Beachten Sie, dass die Größe der benannten Pipe null ist und sie die Bezeichnung „p“ hat.
Wenn Sie also das nächste Mal mit Befehlen am Linux-Terminal arbeiten und Daten zwischen Befehlen verschieben, wird eine Pipe den Vorgang hoffentlich schnell und einfach machen.