Linux-Befehle

Linux-Pipe-Befehl

Linux-Pipe-Befehl
Dieser „pipe“-Befehl ist auf UNIX/Linux-Plattformen leicht verfügbar. Dieser Befehl leitet die Ausgabe des vorherigen Befehls an den nächsten Befehl weiter. Es gibt buchstäblich Tonnen von Situationen, in denen diese Methode einen ernsthaften Wert bietet.Bevor Sie tiefer springen, gibt es etwas zu wissen. Jedes einzelne Programm im UNIX/Linux-System hat 3 integrierte Datenströme.

Wenn wir mit „pipe“-Tricks arbeiten, nimmt „pipe“ den STDOUT eines Befehls und übergibt ihn an die STDIN des nächsten Befehls.

Sehen wir uns einige der gängigsten Möglichkeiten an, wie Sie den Befehl „pipe“ in Ihren täglichen Gebrauch integrieren können.

Pipe-Befehl

Grundlegende Verwendung

Es ist besser, die Arbeitsweise von „Pipe“ an einem Live-Beispiel zu erläutern, richtig? Lass uns anfangen. Der folgende Befehl weist „pacman“, den standardmäßigen Paketmanager für Arch und alle Arch-basierten Distributionen, an, alle installierten Pakete auf dem System auszudrucken.

pacman -Qqe

Es ist eine wirklich LANGE Liste von Paketen. Wie wäre es, nur wenige Komponenten aufzunehmen?? Wir könnten "grep" verwenden. Aber wie? Eine Möglichkeit wäre, die Ausgabe in eine temporäre Datei zu kopieren, die gewünschte Ausgabe zu „grep“ und die Datei zu löschen. Diese Reihe von Aufgaben kann selbst in ein Skript umgewandelt werden. Aber wir schreiben nur für sehr große Dinge. Für diese Aufgabe greifen wir auf die Macht von „pipe“ zurück!

pacman -Qqe | grep

Genial, nicht wahr? Das „|“ sign ist der Aufruf zum „pipe“-Befehl. Es greift das STDOUT aus dem linken Abschnitt und speist es in das STDIN des rechten Abschnitts ein.

Im oben genannten Beispiel hat der Befehl „pipe“ die Ausgabe tatsächlich am Ende des „grep“-Teils übergeben. So läuft es ab.

pacman -Qqe > ~/Desktop/pacman_package.TXT
grep python ~/Desktop/pacman_package.TXT

Mehrfachverrohrung

Grundsätzlich ist die erweiterte Verwendung des Befehls „pipe“ nichts Besonderes. Es liegt ganz bei Ihnen, wie Sie es verwenden.

Beginnen wir zum Beispiel mit dem Stapeln mehrerer Rohrleitungen.

pacman -Qqe | grep p | grep t | grep py

Die Ausgabe des Pacman-Befehls wird durch „grep“ durch eine Reihe von Rohrleitungen immer weiter gefiltert.

Wenn wir mit dem Inhalt einer Datei arbeiten, kann sie manchmal sehr, sehr groß sein. Den richtigen Ort unseres Wunscheintrags herauszufinden, kann schwierig sein. Lassen Sie uns nach allen Einträgen suchen, die die Ziffern 1 und 2 enthalten.

Katzen-Demo.txt | grep -n 1 | grep -n 2

Liste von Dateien und Verzeichnissen manipulieren

Was tun, wenn Sie mit einem Verzeichnis mit TONNEN Dateien darin arbeiten?? Es ist ziemlich nervig, durch die gesamte Liste zu scrollen. Klar, warum nicht mit Pfeife erträglicher machen? In diesem Beispiel sehen wir uns die Liste aller Dateien im Ordner „/usr/bin“ an.

ls -l | Mehr

Hier druckt „ls“ alle Dateien und ihre Informationen. Dann übergibt „pipe“ es an „more“, um damit zu arbeiten. Wenn Sie es noch nicht wussten, "more" ist ein Tool, das Texte in eine bildschirmfüllende Ansicht umwandelt. Es ist jedoch ein altes Tool und laut der offiziellen Dokumentation ist „weniger“ mehr zu empfehlen.

ls -l /usr/bin | Weniger

Sortierausgabe

Es gibt ein integriertes Tool „Sortieren“, das Texteingaben aufnimmt und aussortiert. Dieses Tool ist ein echtes Juwel, wenn Sie mit etwas wirklich Unordentlichem arbeiten. Zum Beispiel habe ich diese Datei voller zufälliger Zeichenfolgen.

Katzen-Demo.TXT

Einfach an "sortieren" weiterleiten.

Katzen-Demo.txt | Sortieren

Das ist besser!

Streichhölzer eines bestimmten Musters drucken

ls -l | finden ./ -typ f -name "*.txt" -exec grep 00110011 \;

Das ist ein ziemlich verdrehter Befehl, richtig? „ls“ gibt zunächst die Liste aller Dateien im Verzeichnis aus. Das Tool „find“ nimmt die Ausgabe und sucht nach „.txt“-Dateien und ruft „grep“ auf, um nach „00110011“ zu suchen. Dieser Befehl überprüft jede einzelne Textdatei im Verzeichnis mit der TXT-Erweiterung und sucht nach Übereinstimmungen.

Dateiinhalt eines bestimmten Bereichs drucken

Wenn Sie mit einer großen Datei arbeiten, müssen Sie häufig den Inhalt eines bestimmten Bereichs überprüfen. Mit einer cleveren Kombination aus „Katze“, „Kopf“, „Schwanz“ und natürlich „Pfeife“ können wir genau das tun. Das „head“-Tool gibt den ersten Teil eines Inhalts aus und „tail“ gibt den letzten Teil aus.

Katze | Kopf -6

Katze | Schwanz -6

Einzigartige Werte

Wenn Sie mit doppelten Ausgaben arbeiten, kann es ziemlich nervig sein. Manchmal können doppelte Eingaben schwerwiegende Probleme verursachen. In diesem Beispiel wandeln wir „uniq“ in einen Textstrom um und speichern ihn in einer separaten Datei.

Hier ist zum Beispiel eine Textdatei, die eine große Liste von Zahlen enthält, die 2 Ziffern lang sind. Hier gibt es definitiv doppelte Inhalte, oder?

Katze duplizieren.txt | Sortieren

Lassen Sie uns nun den Filtervorgang durchführen.

Katze duplizieren.txt | sortieren | einzigartig > einzigartig.TXT

Schau dir die Ausgabe an.

Fledermaus einzigartig.TXT

Sieht besser aus!

Fehlerrohre

Dies ist eine interessante Rohrmethode. Diese Methode wird verwendet, um STDERR auf STDOUT umzuleiten und mit der Verrohrung fortzufahren. Dies wird durch das Symbol "|&" (ohne Anführungszeichen) gekennzeichnet. Lassen Sie uns zum Beispiel einen Fehler erstellen und die Ausgabe an ein anderes Tool senden. In diesem Beispiel habe ich einfach einen zufälligen Befehl eingegeben und den Fehler an "grep" übergeben.

adsfds |& grep n

Abschließende Gedanken

Während „Pipe“ selbst von Natur aus ziemlich simpel ist, bietet die Art und Weise, wie es funktioniert, eine sehr vielseitige Möglichkeit, die Methode auf unendliche Weise zu nutzen. Wenn Sie sich für Bash-Skripting interessieren, ist es viel nützlicher. Manchmal kann man einfach verrückte Dinge tun! Erfahren Sie mehr über Bash-Skripting.

Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...