Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Was ist das Pipe-Zeichen unter Linux?

Was ist das Pipe-Zeichen unter Linux?

Jun 17, 2022 pm 03:42 PM
linux

Unter Linux ist das Pipe-Zeichen „|“, das hauptsächlich verwendet wird, um zwei oder mehr Befehle miteinander zu verbinden und die Ausgabe eines Befehls als Eingabe des nächsten Befehls zu verwenden. Die Syntax lautet „Befehl1 | Befehl2 [ | BefehlN“. .. ]“ wird die Ausgabe des Befehls auf der linken Seite des Zeichens „|“ als Eingabe des Befehls auf der rechten Seite des Zeichens „|“ verwendet. Das Pipe-Zeichen kann fortlaufend verwendet werden. Die Ausgabe des ersten Befehls wird als Eingabe des zweiten Befehls verwendet, und die Ausgabe des zweiten Befehls wird als Eingabe des dritten Befehls verwendet, und so weiter.

Was ist das Pipe-Zeichen unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Shell hat auch eine Funktion, die darin besteht, zwei oder mehr Befehle (Programme oder Prozesse) miteinander zu verbinden und die Ausgabe eines Befehls als Eingabe des nächsten Befehls zu verwenden. Auf diese Weise wird eine Pipe gebildet .

Linux-Pipes verwenden vertikale Balken |, um mehrere Befehle zu verbinden, die als Pipe-Zeichen bezeichnet werden.

command1 | command2
command1 | command2 [ | commandN... ]
Nach dem Login kopieren

Wenn eine Pipe zwischen zwei Befehlen gesetzt wird, wird die Ausgabe des Befehls links vom Pipe-Symbol | zur Eingabe des Befehls rechts. Solange der erste Befehl in die Standardausgabe schreibt und der zweite Befehl von der Standardeingabe liest, können die beiden Befehle eine Pipe bilden. Die meisten Linux-Befehle können zum Bilden von Pipes verwendet werden.

Das Pipe-Zeichen kann fortlaufend verwendet werden. Die Ausgabe des ersten Befehls wird als Eingabe des zweiten Befehls verwendet, und die Ausgabe des zweiten Befehls wird als Eingabe des dritten Befehls verwendet, und so weiter.

Was ist das Pipe-Zeichen unter Linux?

Hier ist zu beachten, dass Befehl1 eine korrekte Ausgabe haben muss und Befehl2 das Ausgabeergebnis von Befehl2 verarbeiten kann. Befehl2 kann nur das korrekte Ausgabeergebnis von Befehl1 verarbeiten, kann jedoch die Fehlermeldung von nicht verarbeiten Befehl1.

Zum Beispiel: Sortieren Sie die Datei hello.sh und finden Sie die Zeile, die „better“ enthält. Der Befehl lautet: cat hello.sh |

Sortieren

Duplikate entfernen

Filter
  • 【1】Der erste Schritt – Text anzeigen
  • Verwenden Sie zunächst den Befehl cat, um den Text anzuzeigen. Der auf dem Bildschirm gedruckte Inhalt ist die Ausgabe des Befehls cat
  • [root@linuxforliuhj test]# cat hello.sh 
    hello this is linux
    be better
    be better
    i am lhj
    hello this is linux
    i am lhj
    i am lhj
    be better
    i am lhj
    have a nice day
    have a nice day
    hello this is linux
    hello this is linux
    have a nice day
    zzzzzzzzzzzzzz
    dddddddd
    gggggggggggggggggggg
    [root@linuxforliuhj test]#
    Nach dem Login kopieren

    【2】Der zweite Prozess – SortierenWas ist das Pipe-Zeichen unter Linux?
  • Die vom vorherigen Cat-Befehl ausgegebenen Ergebnisse werden über die Pipeline an den Sortierbefehl übergeben, sodass der Sortierbefehl den vom vorherigen Cat-Befehl ausgegebenen Text sortiert
[root@linuxforliuhj test]# cat hello.sh | sort
be better
be better
be better
dddddddd
gggggggggggggggggggg
have a nice day
have a nice day
have a nice day
hello this is linux
hello this is linux
hello this is linux
hello this is linux
i am lhj
i am lhj
i am lhj
i am lhj
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
Nach dem Login kopieren
Nach dem Login kopieren

【3】 Der dritte Prozessprozess – Deduplizierung

Wie im vorherigen Artikel zur Einführung von Uniq erwähnt, kann Sort in Kombination mit Uniq effektiv dedupliziert werden, sodass der von Sort ausgegebene Text zur Verarbeitung über die Pipeline an Uniq gesendet wird, sodass Uniq die Sortierung verarbeitet Text. , kann Duplikate effektiv entfernen

[root@linuxforliuhj test]# cat hello.sh | sort | uniq
be better
dddddddd
gggggggggggggggggggg
have a nice day
hello this is linux
i am lhj
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
Nach dem Login kopieren

【4】Der vierte Prozess – Filtern

Der letzte Schritt des Filterns besteht auch darin, die Textausgabe nach der Verarbeitung des vorherigen Befehls, des Uniq-Befehls, zu filtern

[root@linuxforliuhj test]# cat hello.sh | sort | uniq | grep 'better'
be better
[root@linuxforliuhj test]#
Nach dem Login kopieren

Hier kommt der entscheidende Punkt !

Hier kommt der wichtige Punkt!

Hier kommt der wichtige Punkt!

Die oben genannten Befehle cat, sort, uniq, grep und andere unterstützen alle das Pipe-Zeichen, da diese Befehle den Text lesen können von der Standardeingabe verarbeitet werden (d. h. das Lesen von Parametern von der Standardeingabe); bei einigen Befehlen wie rm, kill und anderen Befehlen wird das Lesen von Parametern von der Standardeingabe nicht unterstützt, sondern nur das Lesen von Parametern von der Befehlszeile (Das heißt, delete muss nach der rm-Befehlsdatei oder dem rm-Befehlsverzeichnis angegeben werden, die abzubrechende Prozessnummer muss nach dem Kill-Befehl angegeben werden usw.)

Welche Befehle unterstützen also Pipes und welche Befehle? unterstützen keine Rohre? Im Allgemeinen unterstützen Befehle, die Text verarbeiten, wie z. B. sort, uniq, grep, awk, sed usw., keine Pipes. Befehle, die keinen Text verarbeiten, wie z. B. rm und ls, unterstützen keine Pipes Wenn nach sort keine Parameter vorhanden sind, wird die Ausgabe des vorherigen Befehls verarbeitet, die durch das Pipe-Zeichen an ihn geworfen wurde (d. h. die Standardausgabe des vorherigen Befehls wird als Standardeingabe dieses Befehls verwendet).

[root@linuxforliuhj test]# cat hello.sh | sort
be better
be better
be better
dddddddd
gggggggggggggggggggg
have a nice day
have a nice day
have a nice day
hello this is linux
hello this is linux
hello this is linux
hello this is linux
i am lhj
i am lhj
i am lhj
i am lhj
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
Nach dem Login kopieren
Nach dem Login kopieren
Wenn die Datei sein soll Wird nach rm nicht gelöscht, wird ein Fehler gemeldet. Parameter gehen verloren, daher unterstützen Befehle wie rm das Lesen von Parametern aus der Standardeingabe nicht. Sie unterstützen nur die Angabe von Parametern in der Befehlszeile, d. h. die Angabe von zu löschenden Dateien.

Was hat Vorrang zwischen Standardeingabe- und Befehlszeilenparametern?


Es gibt die folgenden zwei Dateien

[root@linuxforliuhj test]# ls
beifen.txt  hello.sh  mk  read.ln  read.sh  read.txt  sub.sh
[root@linuxforliuhj test]# ls | grep read.sh
read.sh
[root@linuxforliuhj test]# ls | grep read.sh | rm
rm: missing operand
Try 'rm --help' for more information.
[root@linuxforliuhj test]#
Nach dem Login kopieren
Führen Sie den Befehl aus: cat a.txt |. sort

[root@linuxforliuhj test]# cat a.txt 
aaaa
dddd
cccc
bbbb
[root@linuxforliuhj test]# cat b.txt 
1111
3333
4444
2222
[root@linuxforliuhj test]#
Nach dem Login kopieren

Wenn der Befehlszeilenparameter von sort leer ist, wird die Ausgabe des vorherigen Befehls als Eingabe dieses Befehls verwendet standardmäßig

Ausführungsbefehl: cat a.txt |. sort b.txt

[root@linuxforliuhj test]# cat a.txt | sort
aaaa
bbbb
cccc
dddd
[root@linuxforliuhj test]#
Nach dem Login kopieren
Sie können sehen, dass sort die Parameter in der Standardeingabe nicht liest, wenn der Befehlszeilenparameter von sort (hier b.txt) nicht leer ist , und wann Lesen Sie die Befehlszeilenparameter

Führen Sie den Befehl aus: cat a.txt |. sort b.txt -

[root@linuxforliuhj test]# cat a.txt | sort b.txt 
1111
2222
3333
4444
[root@linuxforliuhj test]#
Nach dem Login kopieren

" - "Gibt die Standardeingabe an, d. h. die Ausgabe des Befehls cat a.txt, der ist entspricht der Datei b.txt und der Standardeingabe zusammen. Die Sortierung entspricht der Sortierung a.txt b.txt

[root@linuxforliuhj test]# sort a.txt b.txt
1111
2222
3333
4444
aaaa
bbbb
cccc
dddd
[root@linuxforliuhj test]#
Nach dem Login kopieren

思考:对于rm、kill等命令,我们写脚本时常常会遇到需要查询某个进程的进程号然后杀掉该进程,查找某个文件然后删除它这样的需求,该怎么办呢?那就用xargs吧!

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist das Pipe-Zeichen unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wofür ist Linux eigentlich gut? Wofür ist Linux eigentlich gut? Apr 12, 2025 am 12:20 AM

Linux eignet sich für Server, Entwicklungsumgebungen und eingebettete Systeme. 1. Als Serverbetriebssystem ist Linux stabil und effizient und wird häufig zur Bereitstellung von Anwendungen mit hoher Konreise verwendet. 2. Als Entwicklungsumgebung bietet Linux effiziente Befehlszeilen -Tools und Paketmanagementsysteme, um die Entwicklungseffizienz zu verbessern. 3. In eingebetteten Systemen ist Linux leicht und anpassbar und für Umgebungen mit begrenzten Ressourcen geeignet.

So sehen Sie den Instanznamen von Oracle So sehen Sie den Instanznamen von Oracle Apr 11, 2025 pm 08:18 PM

Es gibt drei Möglichkeiten, Instanznamen in Oracle anzuzeigen: Verwenden Sie den "SQLPLUS" und "Instance_name aus v $ Instance". Befehle in der Befehlszeile. Verwenden Sie den "show Instance_name;" Befehl in SQL*Plus. Überprüfen Sie die Umgebungsvariablen (Oracle_sid unter Linux) über den Task -Manager des Betriebssystems, den Oracle Enterprise Manager oder über das Betriebssystem.

Verwenden von Docker mit Linux: eine umfassende Anleitung Verwenden von Docker mit Linux: eine umfassende Anleitung Apr 12, 2025 am 12:07 AM

Die Verwendung von Docker unter Linux kann die Entwicklung und die Bereitstellungseffizienz verbessern. 1. Installieren Sie Docker: Verwenden Sie Skripte, um Docker auf Ubuntu zu installieren. 2. Überprüfen Sie die Installation: Führen Sie die Sudodockerrunhello-Welt aus. 3. Basisnutzung: Erstellen Sie einen Nginx-Container-Dockerrun-Namemy-Nginx-P8080: 80-DNGinx. 4. Erweiterte Verwendung: Erstellen Sie ein benutzerdefiniertes Bild, erstellen und führen Sie mit Dockerfile aus. 5. Optimierung und Best Practices: Befolgen Sie Best Practices zum Schreiben von Dockerfiles mit mehrstufigen Builds und DockerComponpose.

So verwenden Sie Oracle nach der Installation So verwenden Sie Oracle nach der Installation Apr 11, 2025 pm 07:51 PM

Nach der Installation von Oracle können Sie die folgenden Schritte verwenden: Erstellen einer Datenbankinstanz. Stellen Sie eine Verbindung zur Datenbank her. Erstellen Sie einen Benutzer. Erstellen Sie eine Tabelle. Daten einfügen. Abfragedaten. Daten exportieren. Daten importieren.

Was tun, wenn der Port Apache80 belegt ist Was tun, wenn der Port Apache80 belegt ist Apr 13, 2025 pm 01:24 PM

Wenn der Port -80 -Port der Apache 80 besetzt ist, lautet die Lösung wie folgt: Finden Sie den Prozess, der den Port einnimmt, und schließen Sie ihn. Überprüfen Sie die Firewall -Einstellungen, um sicherzustellen, dass Apache nicht blockiert ist. Wenn die obige Methode nicht funktioniert, konfigurieren Sie Apache bitte so, dass Sie einen anderen Port verwenden. Starten Sie den Apache -Dienst neu.

So starten Sie Apache So starten Sie Apache Apr 13, 2025 pm 01:06 PM

Die Schritte zum Starten von Apache sind wie folgt: Installieren Sie Apache (Befehl: sudo apt-Get-Get-Installieren Sie Apache2 oder laden Sie ihn von der offiziellen Website herunter). (Optional, Linux: sudo systemctl

So überwachen Sie die NGINX SSL -Leistung auf Debian So überwachen Sie die NGINX SSL -Leistung auf Debian Apr 12, 2025 pm 10:18 PM

In diesem Artikel wird beschrieben, wie die SSL -Leistung von NGINX -Servern auf Debian -Systemen effektiv überwacht wird. Wir werden Nginxexporter verwenden, um Nginx -Statusdaten in Prometheus zu exportieren und sie dann visuell über Grafana anzeigen. Schritt 1: Konfigurieren von Nginx Erstens müssen wir das Modul stub_status in der nginx -Konfigurationsdatei aktivieren, um die Statusinformationen von Nginx zu erhalten. Fügen Sie das folgende Snippet in Ihre Nginx -Konfigurationsdatei hinzu (normalerweise in /etc/nginx/nginx.conf oder deren inklusive Datei): location/nginx_status {stub_status

So führen Sie SQL über das Befehlsfenster in Oracle aus So führen Sie SQL über das Befehlsfenster in Oracle aus Apr 11, 2025 pm 06:36 PM

So führen Sie SQL im Befehlsfenster von Oracle aus: Öffnen Sie das Befehlsfenster. Stellen Sie eine Verbindung zur Datenbank her: Verbinden Sie Benutzername/Passwort. Geben Sie die SQL -Anweisung ein und drücken Sie die Eingabetaste, um auszuführen. Sehen Sie sich die Ergebnisse an. Geben Sie die Beenden Sie ein, um das Befehlsfenster zu beenden.

See all articles