9 essentielle Befehls-Pipelines, die den Arbeitsalltag mit Linux vereinfachen

Entdecken Sie, wie Sie mit effektiven Linux-Pipelines Ihre Arbeitsabläufe optimieren können: von der Datenfilterung bis zur Passwortgenerierung – hier sind die besten Befehle.
Die Pipeline-Funktion ist eine der treibenden Kräfte hinter der Linux-Philosophie, ein einzelnes Zeichen, das alles verändert, wie Sie arbeiten. Indem Sie die Ausgabe eines Befehls mit der Eingabe eines anderen verbinden, können Sie kleine Programme aneinanderreihen und ein Werkzeug schaffen, das weit mehr ist als die Summe seiner Teile.
Wenn Sie Schwierigkeiten haben, den Wert von Pipes zu erkennen oder einfach ihre praktische Anwendung besser verstehen möchten, gibt es keinen besseren Ausgangspunkt als diese gängigen, effektiven Beispiele.
grep | less
Daten filtern und Ergebnisse seitenweise anzeigen
Ein typischer grep-Befehl kann viele Ergebnisse zurückgeben, insbesondere wenn Sie mit Versuch und Irrtum eine reguläre Expression verfeinern. Ein Befehl wie grep '[Qq]' /usr/share/dict/words wird mehr als einen Bildschirm von Ausgaben erzeugen:
Um mehr als nur die letzte Seite der Ergebnisse zu sehen, müssen Sie einen Pager verwenden. Der grep-Befehl unterstützt direkt keinen, aber Sie können jede Ausgabemenge an einen Pager weiterleiten und sie seitenweise anzeigen:
grep '[Qq]' /usr/share/dict/words | less tail | grep
Der tail-Befehl ist nützlich, wann immer Sie die letzten Zeilen einer Datei, meist einer Protokolldatei, erkunden möchten. Die Option -f bietet eine Live-Ansicht einer Datei (oder der Standardeingabe) und druckt weiterhin Zeilen aus, die der Datei hinzugefügt werden. Er ist perfekt zum Überwachen von Protokolldateien, wie z.B. dem Apache-Zugriffsprotokoll:
Sie möchten jedoch wahrscheinlich solche Protokollzeilen filtern und nach spezifischen Daten suchen, die URLs, spezifische Nachrichten, Antwortcodes usw. entsprechen. Das Werkzeug grep ist dafür großartig und passt perfekt zu tail in einer Pipeline wie tail -f datei | grep muster.
Sie könnten die Reihenfolge dieser Befehle vergessen und erwarten, dass sie umgekehrt funktionieren. Das Pipeline-Weiterleiten von grep an tail -f führt jedoch dazu, dass die Pipeline sofort endet, da tail -f ignoriert, wenn die Eingabe eine Pipe ist.
history | grep
Schneller Zugriff auf zuvor ausgeführte Befehle
Der history-Befehl ist unglaublich nützlich, da er Ihnen Zugang zu Befehlen gibt, die Sie zuvor ausgeführt haben. Aber Ihre Historie enthält viele Details; standardmäßig sind es in bash die letzten 500 Befehle. Und es können noch mehr sein, insbesondere wenn Sie eine unbegrenzte Historie eingerichtet haben.
Dies ist eine weitere perfekte Gelegenheit für grep, um nur die Zeilen herauszufiltern, die Sie wirklich interessieren:
history | grep ls sort | uniq
Einfache Zusammenfassungsinformationen aus strukturierten Daten
Die Befehle sort und uniq sind so nützlich, wenn sie mit anderen Befehlen kombiniert werden, dass Sie sie immer wieder in Pipelines sehen werden. uniq steht für "einzigartig", und beide Befehle tun im Wesentlichen genau das, was man aufgrund ihrer Namen erwarten würde.
Hier ist ein Beispiel für eine Pipeline, die zeigt, welche IP-Adressen eine Website besucht haben und wie oft jede eine Anfrage gesendet hat:
</var/log/apache2/access_log cut -f1 -d' ' | sort | uniq -c Diese Pipeline umfasst drei Befehle, wobei der erste—cut—das IP-Adressfeld aus einem Standard-Apache-Zugriffsprotokoll extrahiert. sort wird alle Eingabereihen, die an ihn weitergeleitet werden, in eine Reihe bringen, während uniq Duplikate entfernt und mit der Option -c die Gesamtzahl zählt. Sie werden mit einer schönen Zusammenfassung enden:
df | tee
Festplattenspeicherberichte auf dem Bildschirm und in einer Datei erhalten
Der tee-Befehl wurde für die Pipeline entwickelt; seine Hauptfunktion ist es, seine Standardeingabe an die Standardausgabe zu kopieren. Das mag nutzlos erscheinen, abgesehen von der einen zusätzlichen Funktion, die er bietet: das Speichern dieser selben Eingabe in einer oder mehreren Dateien.
Normalerweise können Sie zur Speicherung der Ausgabe eines Befehls eine Umleitung verwenden:
echo "Hallo Welt" > meineDatei.txt Die Umleitung dieser Ausgabe verhindert jedoch, dass Sie sie auf dem Bildschirm betrachten oder woanders hin pipen:
Mit dem tee-Befehl können Sie die Ausgabe in eine Datei speichern, sie aber trotzdem in der Pipeline haben, um sie weiter zu verarbeiten oder auf dem Bildschirm auszugeben:
echo "Hallo Welt" | tee meineDatei.txt Sie können sogar mehrere Argumente an tee übergeben, falls Sie die Ausgabe in mehr als eine Datei gleichzeitig speichern möchten.
tee ist eine großartige Wahl, wenn Sie jemals die Ausgabe eines Befehls überprüfen, aber gleichzeitig einen Bericht darüber führen möchten. Zum Beispiel können Sie den df-Befehl verwenden, um…
Bericht über die Festplattennutzung:
df -h | tee diskusage.txt Durch das Piping der Ausgabe zu tee wird sie sowohl auf dem Bildschirm angezeigt als auch dauerhaft in einer Datei gespeichert.
echo | xargs
Eine Datei in mehrere Verzeichnisse kopieren
Der xargs-Befehl funktioniert ähnlich wie tee; er ist ein "Metabefehl", der die Funktionsweise der Befehlszeile verändert. xargs ermöglicht es Ihnen, seine Eingabe als Argumente in einen anderen Befehl einzufügen, weshalb er oft in komplexeren Pipelines verwendet wird.
Standardmäßig wandelt xargs jeden durch Leerzeichen getrennten Wert in ein Argument um und hängt sie an einen Befehl an, den Sie ihm übergeben. Sie können auch die Option -n verwenden, um den Befehl mehrmals aufzurufen und bei jedem Mal einen Satz von Argumenten zu übergeben, wie in diesem Beispiel:
echo "dir1 dir2" | xargs -n 1 cp -v myfile.md Der cp-Befehl kopiert keine Datei in mehrere Verzeichnisse, also weist diese Pipeline xargs an, jeweils ein Argument bereitzustellen, das sich zu folgendem erweitert:
cp -v myfile.md dir1 cp -v myfile.md dir2 curl | jq
Daten aus einer Web-API verarbeiten
Wenn Sie jemals curl verwendet haben, um von der Befehlszeile auf eine Web-API zuzugreifen, sind Sie wahrscheinlich auf eine lange Antwort gestoßen, die JSON enthält, das Sie weiterverarbeiten müssen:
Der curl-Befehl ist hervorragend für die Behandlung aller Arten von Webanfragen geeignet, aber die weitere Verarbeitung erfordert andere Befehle wie jq, den Befehlszeilen-JSON-Prozessor. Mit jq können Sie Filter erstellen, um JSON-Daten in lesbarere oder angemessenere Formen zu transformieren. Zum Beispiel können Sie das einfachste tun, was darin besteht, den Identitätsoperator (.) zu verwenden, um die Eingabe zu kopieren, sie jedoch auch zu validieren und zu formatieren:
curl -s https://catfact.ninja/fact | jq '.' Sie können alle Arten von Filtern schreiben, um die Daten nach Belieben zu zerschneiden und zu zerhacken. Das obige Beispiel gibt ein einzelnes Objekt mit den Eigenschaften fact und length zurück, die Sie mit einem einfachen Filter extrahieren können:
curl -s https://catfact.ninja/fact | jq -r '.fact' du -sh * | sort -h
Finden Sie Ihre größten Dateien und Verzeichnisse
Das Programm du gibt die Gesamtgröße der Dateien und Verzeichnisse an, die Sie ihm übergeben:
Das ist großartig, aber wahrscheinlich suchen Sie nach den Dateien, die den meisten Speicherplatz auf der Festplatte beanspruchen. Leider bietet du keine eingebaute Möglichkeit, seine Ausgabe zu sortieren. Glücklicherweise gibt es den guten alten sort-Befehl.
sort ist ein Filterbefehl, der seine Eingabe anordnet und sie als Ausgabe druckt. Sie können ihn verwenden, um die Standardausgabe von du zu sortieren:
du -s * | sort Das ist in Ordnung, aber die Ausgabe erfolgt in Blöcken, was nicht besonders lesbar ist. Um dasselbe mit lesbareren Größen zu erreichen, verwenden Sie die Option -h für beide Befehle:
du -sh * | sort -h Obwohl die Ausgabe nicht natürlich sortiert, ist sort clever genug, um das Format zu erkennen und Kilobyte vor Megabyte zu sortieren, usw.
date | md5sum
Der schnellste Weg, ein annehmbares Passwort zu generieren
Ich greife immer darauf zurück, wenn ich Passwörter generiere; es ist schnell, effektiv und leicht zu merken. md5sum hasht seine Eingabe mithilfe des MD5-Algorithmus und gibt das Ergebnis aus:
Wenn ich eine zufällige Menge hexadezimaler Zeichen benötige, ist dies meine erste Wahl. Sie könnten es für eine Vielzahl von Zwecken verwenden, einschließlich der Generierung zufälliger CSS-Farben, aber es ist auch ziemlich praktisch zur Passwortgenerierung.
Dies ist möglicherweise nicht der sicherste Weg, um ein Passwort auszuwählen. Bitte konsultieren Sie Sicherheitsrat, bevor Sie ein Passwort wählen, insbesondere für risikobehaftete Anwendungen!
Mit Übung werden gängige Pipelines zur zweiten Natur
Wenn es eine Pipeline gibt, die Sie noch nie verwendet haben, kann es eine Weile dauern, sich damit vertraut zu machen. Üben Sie alle, die nützlich erscheinen, und nach kurzer Zeit werden Sie so oft pipen, dass Sie sich fragen, wie Sie jemals ohne sie ausgekommen sind.
Bist du neugierig auf weitere Artikel wie 9 essentielle Befehls-Pipelines, die den Arbeitsalltag mit Linux vereinfachen? Entdecke spannende Inhalte in der Kategorie Linux.

Schreibe einen Kommentar