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

Pipes und Redirection in Linux - erklärt!

Zeit für ein paar Linux-Grundlagen. Denn das Wichtigste in jedem Bereich ist:Hab deine Basics gerade! Lassen Sie uns also über Pipes und Umleitung in Linux sprechen .

Was sind Pipes und Umleitung unter Linux?

Weiterleitung

Jeder einzelne Prozess in Linux hat mindestens 3 Kommunikationskanäle zur Verfügung:

  • Standardeingabe - STDIN
  • Standardausgabe - STDOUT
  • Standardfehler - STDERR

Der Kernel selbst richtet diese Kanäle im Auftrag des Prozesses ein. Der Prozess selbst weiß nicht unbedingt, wohin sie führen. Die meisten Linux-Befehle akzeptieren Eingaben von STDIN und Ausgabe in STDOUT schreiben . Fehlermeldungen werden in STDERR geschrieben . Dadurch können Sie Befehle miteinander verbinden, um Pipelines zu erstellen.

Die Shell verwendet die Symbole < ,> und >> als Anweisungen zum Umleiten der Anweisungen einer Befehlseingabe oder -ausgabe in oder aus einer Datei. Die < Symbol verbindet die STDIN des Befehls zum Inhalt einer bestehenden Datei. Die > und die >> Symbole leiten STDOUT weiter . > ersetzt den vorhandenen Inhalt der Datei und >> Symbole angehängt.

Sehen wir uns ein paar Beispiele an.

Der folgende Befehl würde den Text, den Sie zwischen " " eingeben, in einer Datei speichern. Wenn die Datei nicht existiert, wird sie erstellt.

echo "Test Message" > testmessage

Der nächste Befehl würde eine E-Mail mit dem Inhalt dieser Datei, also nur den Text, nicht die Datei selbst, an den Benutzer Peter senden.

mail -s "testmsg" peter < testmessage

Ein Beispiel mit dem Find-Befehl

Wenn wir den find-Befehl verwenden, bekommen wir eine schöne Demonstration, warum Sie STDOUT und STDERR separat behandeln sollten. Wenn wir den folgenden Befehl ausführen:

find / -name core

Normalerweise erhalten wir viele Permission Denied-Fehlermeldungen. Um all diese Fehlermeldungen zu verwerfen, können Sie stattdessen den folgenden Befehl ausführen:

find / -name core 2> /dev/null

Dadurch erhalten wir ein viel saubereres Ergebnis.

Rohre

Wenn wir bestimmte Befehle verbinden möchten, oder genauer gesagt die STDOUT eines Befehls und die STDIN eines anderen, können wir das Pipe-Symbol | verwenden das zu tun. Machen wir ein Beispiel:

ls | head -4

Dies verbindet den ls-Befehl mit dem head-Befehl durch die Pipe | . Das heißt, es führt das ls aus Befehl mit dem Kopf -4 Erweiterungen, die nur die ersten 4 Dateien dieses Ordners auflisten. Sie könnten auch fortfahren und einen weiteren Befehl an das Ende dieses Befehls leiten.

Wenn Sie möchten, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich war, können Sie das && verwenden Symbole dafür. Zum Beispiel:

lpr /tmp/test && rm /tmp/test

Würde die Testdatei nur entfernen, wenn sie zuerst erfolgreich zum Drucken in die Warteschlange gestellt wurde.

Andererseits die || Befehl würde den zweiten Befehl nur ausführen, wenn der erste Befehl fehlgeschlagen ist.

Schlussfolgerung

Wenn Sie regelmäßig mit Linux arbeiten, ist es sehr wichtig zu wissen, was Pipes und Redirection in Linux tun. Sie werden sie häufig verwenden, wenn Sie an der Befehlszeile arbeiten müssen. Ich werde in Zukunft mehr von diesen kürzeren Linux Basics Bits machen. Ich möchte nicht, dass diese Artikel zu lang werden, damit Sie die Informationen leichter aufnehmen können. Sehen Sie sich auch einige andere Linux- und Open-Source-Tutorials an!


Linux
  1. Arbeiten mit Eingabeausgabe und Fehlerumleitung in Linux

  2. Linux wc Befehl für Anfänger erklärt (6 Beispiele)

  3. Io-Umleitung und der Head-Befehl?

  4. Linux-wc-Befehl

  5. Linux grep-Befehl

Gzip-Befehl unter Linux

Gunzip-Befehl unter Linux

Stat-Befehl unter Linux

Linux-Stat-Befehl erklärt

Arping-Befehl unter Linux erklärt

Erklärt:Eingabe-, Ausgabe- und Fehlerumleitung in Linux