GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine Einführung in Pipes und Named Pipes in Linux

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.


Linux
  1. Einführung in den Linux-Befehl chown

  2. Linux-Cat-Befehl:Verwendung und Beispiele

  3. mkdir- und rmdir-Befehlsbeispiele unter Linux

  4. Beispiele für die Befehle swapon und swapoff in Linux

  5. Stellen Sie die Pipe-Kapazität in Linux ein

Find-Befehl in Linux (Dateien und Verzeichnisse suchen)

Linux mkfifo Command Tutorial für Anfänger (mit Beispielen)

So installieren und verwenden Sie den fd-Befehl unter Linux

Befehlsoptionen und Beispiele für den Tee-Befehl in Linux

Einführung in den History-Befehl unter Linux [Für Anfänger]

Was sind Pipes unter Linux? Wie funktioniert die Pipe-Umleitung?