Es tut mir leid, Ihnen mitteilen zu müssen, aber die Befehlszeile ist nicht mit den Dinosauriern ausgestorben, noch ist sie mit dem Dodo oder der Brieftaube verschwunden. Die Linux-Befehlszeile lebt und ist gesund und funktioniert immer noch gut. Es ist eine effiziente Möglichkeit, Informationen schnell zu sammeln und zu verarbeiten, neue Skripts zu erstellen und Systeme zu konfigurieren.
 Einer der mächtigsten Shell-Operatoren ist die Pipe (| ). Die Pipe nimmt die Ausgabe von einem Befehl und verwendet sie als Eingabe für einen anderen. Und Sie sind nicht auf einen einzelnen Pipe-Befehl beschränkt – Sie können sie so oft stapeln, wie Sie möchten, oder bis Ihnen die Ausgabe- oder Dateideskriptoren ausgehen.
 Einer der Hauptzwecke von Rohrleitungen ist das Filtern. Sie verwenden Piping, um den Inhalt einer großen Datei zu filtern, um beispielsweise eine bestimmte Zeichenfolge oder ein bestimmtes Wort zu finden. Aus diesem Grund beinhaltet die beliebteste Verwendung für Pipes die Befehle grep und sort . Aber Sie sind nicht auf diese Fälle beschränkt. Sie können die Ausgabe an jeden Befehl weiterleiten, der Stream-Eingaben akzeptiert. Schauen wir uns ein theoretisches Beispiel an, um zu veranschaulichen, wie dieser Prozess funktioniert:
 $ cmd1 | cmd2 
 Sowohl cmd1 und cmd2 sind Befehlszeilenprogramme, die ihre Ergebnisse auf dem Bildschirm ausgeben (stdout ). Wenn Sie jedoch die Ausgabe eines Befehls an einen anderen weiterleiten, werden die Informationen aus cmd1 erzeugt keine Ausgabe auf dem Bildschirm. Die Pipe leitet diese Ausgabe als Eingabe an cmd2 um . 
Hinweis: Verwechseln Sie Pipe nicht (
|) Umleitung mit Dateiumleitung (>) und (<). (Ein Beispiel für eine Dateiumleitung:cmd1 > fileodercmd1 < file.) Die Dateiumleitung sendet die Ausgabe entweder an eine Datei statt an den Bildschirm oder zieht die Eingabe aus einer Datei.
Schauen wir uns einige Beispiele aus der Praxis an, wie Rohrleitungen funktionieren.
Netzwerkkarten überprüfen
Angenommen, Sie müssen wissen, ob eine Ihrer Netzwerkkarten (NICs) eine IP-Adresse hat, die mit 192 beginnt:
 $ ifconfig | grep 192 
 inet 192.168.1.96  netmask 255.255.255.0  broadcast 192.168.1.255 
 Sie können auch mit einer einfachen Pipe zu grep herausfinden, welche Live-NICs Sie auf einem System haben :
 $ ifconfig | grep UP 
 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
Sie können auch nach "RUNNING" oder "RUN" suchen, um dieselben Informationen anzuzeigen.
Berechtigungen prüfen
 Vielleicht möchten Sie herausfinden, wie viele Verzeichnisse unter /etc sind von root beschreibbar:
 $ sudo ls -lR | grep drwx 
 Die Ergebnisse sind zu lang, um sie hier aufzulisten, aber wie Sie Ihrer angezeigten Liste entnehmen können, gibt es viele davon. Sie müssen noch herausfinden, wie viele es sind, und eine visuelle Zählung würde lange dauern. Eine einfache Möglichkeit besteht darin, die Ergebnisse Ihrer ls zu leiten Befehl an wc (Wörter zählen) Befehl: 
 $ sudo ls -lR | grep drwx | wc -l 
 285 
 Das -l Schalter zeigt die Anzahl der Zeilen an. Ihre Zählung kann anders sein. Diese Auflistung stammt von einer neuen „RHEL 8 Server No GUI“-Installation.
[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]
Dateien zählen
 Sie müssen grep nicht verwenden die ganze Zeit. Beispielsweise können Sie die Anzahl der Dateien in /etc auflisten Verzeichnis mit diesem:
 $ ls | wc -l  
 229 
Auch hier sehen Ihre Ergebnisse möglicherweise anders aus, aber Sie wissen, dass etwas nicht stimmt, wenn der Befehl eine kleine Anzahl von Dateien zurückgibt.
Prozesse identifizieren
 Sie können auch komplexe Aufgaben mit Pipes ausführen. Um die Prozess-IDs (PIDs) für alle systemd aufzulisten -verwandte Prozesse:
 $ ps -ef | grep systemd | awk '{ print $2 }' 
 1 
471
500
608
631
7449
7494
17242
 Das awk $2 des Befehls Ausgabe isoliert die zweite (PID) Spalte von ps Befehl. Beachten Sie, dass der letzte Eintrag PID 17242 , ist eigentlich die PID für grep Befehl, der diese Informationen anzeigt, wie Sie den vollständigen Auflistungsergebnissen hier entnehmen können:
 khess    17242  7505  0 09:40 pts/0    00:00:00 grep --color=auto systemd 
Um diesen Eintrag aus Ihren Ergebnissen zu entfernen, verwenden Sie erneut den Pipe-Operator:
 $ ps -ef | grep systemd | awk '{ print $2 }' | grep -v grep 
 Das -v switch teilt dem grep mit Befehl, um Zeilen zu invertieren oder zu ignorieren, die die folgende Zeichenfolge enthalten – in diesem Fall jede Zeile, die das Wort „grep.“
Ergebnisse sortieren
 Eine weitere beliebte Verwendung des Pipe-Operators ist das Sortieren Ihrer Ergebnisse durch Weiterleiten an sort Befehl. Angenommen, Sie möchten die Liste der Namen in contacts.txt sortieren . Schauen wir uns zuerst den Inhalt an, wie er in der Datei ist, bevor wir ihn sortieren:
 $ cat contacts.txt 
 Bob Jones 
Leslie Smith
Dana David
Susan Gee
Leonard Schmidt
Linda Gray
Terry Jones
Colin Doe
Jenny Case
Sortieren Sie nun die Liste:
 $ cat contacts.txt | sort 
 Bob Jones 
Colin Doe
Dana David
Jenny Case
Leonard Schmidt
Leslie Smith
Linda Gray
Susan Gee
Terry Jones
 Mit dem -r können Sie die Sortierreihenfolge umkehren Schalter:
 $ cat contacts.txt | sort -r 
 Terry Jones 
Susan Gee
Linda Gray
Leslie Smith
Leonard Schmidt
Jenny Case
Dana David
Colin Doe
Bob Jones
 War die Ausgabe für beides so, wie Sie es erwartet hatten? Standardmäßig ist die sort Der Befehl führt eine Wörterbuchsortierung nach dem ersten Wort oder der ersten Spalte durch, weshalb Bob Jones und Terry Jones werden nicht hintereinander aufgelistet.
 Mit dem -k können Sie nach der zweiten Spalte sortieren wechseln, indem Sie die Spalte angeben, nach der Sie sortieren möchten, was in unserer Liste die zweite Spalte ist:
 $ cat contacts.txt | sort -k2 
 Jenny Case 
Dana David
Colin Doe
Susan Gee
Linda Gray
Bob Jones
Terry Jones
Leonard Schmidt
Leslie Smith
 Wenn Sie eine lange Kontaktliste haben und der Meinung sind, dass diese Liste doppelte Einträge enthält, können Sie Ihre Liste an sort weiterleiten und dann uniq um diese Duplikate zu entfernen:
 $ cat contacts.txt | sort | uniq 
Dieser Befehl zeigt nur eindeutige Einträge an, speichert die Ergebnisse jedoch nicht. Verwenden Sie Folgendes, um die Datei zu sortieren, eindeutige Einträge zu filtern und dann die neue Datei zu speichern:
 $ cat contacts.txt | sort -k2 | uniq > contact_list.txt 
Denken Sie daran, dass der Pipe-Operator und die Dateiumleitungsoperatoren unterschiedliche Dinge tun.
Abschluss
Jetzt, wo Sie einen Vorgeschmack auf die Leistungsfähigkeit der Befehlszeile bekommen haben, glauben Sie, dass Sie die Verantwortung übernehmen können? Befehlszeilenprogramme sind flexibler als ihre grafischen Gegenstücke. Und für einige Aufgaben gibt es keine grafische Entsprechung.
 Der beste Weg, um das Verhalten der Befehlszeile zu lernen, ist zu experimentieren. Zum Beispiel die sort Befehl hat nicht das getan, was Sie dachten, bis Sie weiter nachgeforscht haben. Vergessen Sie nicht, die Kraft Ihres Handbuchs zu nutzen (man )-Seiten, um diese "versteckten" geheimen Schalter und Optionen zu finden, die die Frustration der Befehlszeile in einen Erfolg auf der Befehlszeile verwandeln.