Unter Linux wird die Kommandozeile unglaublich leistungsstark, wenn Sie anfangen, Befehle zu verknüpfen. Anstatt einen Befehl auszuführen, seine Ausgabe zu speichern und dann einen anderen auszuführen, können Sie eine Pipeline erstellen, um Daten direkt zwischen ihnen zu übergeben.
Den Pipe-Operator verstehen
Beginnen wir mit einem Befehl, der eine große Ausgabe erzeugt:
ls -la /etc
Die Liste der Elemente ist wahrscheinlich zu lang, um auf Ihren Bildschirm zu passen, was das Lesen erschwert. Sie könnten diese Ausgabe zwar in eine Datei umleiten, aber eine effizientere Methode besteht darin, sie direkt an einen anderen Befehl, wie less, zur einfachen Anzeige zu senden.
ls -la /etc | less
Der Pipe-Operator |, dargestellt durch einen senkrechten Strich, ist der Schlüssel zu diesem Prozess. Er nimmt die Standardausgabe (stdout) des Befehls links davon und verwendet sie als Standardeingabe (stdin) für den Befehl rechts davon. In diesem Fall haben wir die Ausgabe von ls -la /etc direkt in den less-Befehl gepipet. Die Pipe ist ein grundlegendes Werkzeug, das Sie ständig verwenden werden.
Ausgabe mit dem Tee-Befehl aufteilen
Was ist, wenn Sie die Ausgabe gleichzeitig auf Ihrem Bildschirm sehen und in einer Datei speichern möchten? Hier kommt der tee-Befehl ins Spiel. Der pipe and tee command in linux ist eine klassische Kombination zum Protokollieren und Überwachen.
ls | tee peanuts.txt
Nach der Ausführung sehen Sie die Ausgabe von ls auf Ihrem Terminal. Wenn Sie auch den Inhalt von peanuts.txt überprüfen, werden Sie exakt dieselben Informationen finden. Der tee-Befehl teilt den Ausgabestrom effektiv in zwei Richtungen auf: eine zur Standardausgabe und eine zu einer angegebenen Datei.
Pipe und Tee kombinieren
Sie können noch fortschrittlichere Workflows erstellen, indem Sie diese Befehle verketten. Ein gängiges Muster ist, pipe to tee mitten in einer längeren Befehlskette zu verwenden. Dies ermöglicht es Ihnen, ein Zwischenergebnis zu speichern, während die Daten weiterverarbeitet werden.
Zum Beispiel können Sie die Kombination linux pipe tee verwenden, um die Ausgabe vor weiterer Filterung anzuzeigen und zu speichern:
ls -la /etc | tee etc_listing.txt | grep "conf"
Dieser Befehl bewirkt drei Dinge:
- Er listet den Inhalt des Verzeichnisses
/etcauf. - Er leitet diese Ausgabe an
teeweiter, das eine Kopie inetc_listing.txtspeichert und sie gleichzeitig weitergibt. - Die Ausgabe von
teewird dann angrepweitergeleitet, das nach Zeilen filtert, die "conf" enthalten.
Die Beherrschung dieser Befehle wird Ihre Effizienz auf der Kommandozeile erheblich steigern.