GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie Befehle von der Standardeingabe mit Tee und Xargs in Linux aus

Während Sie die Befehlszeile verwenden, können Sie die Ausgabe eines Programms (z. B. eines Tools, das einige Systeminformationen oder Statistiken generiert) direkt als Eingabe für ein anderes Programm (z. B. Textfilter- oder Mustersuchtools wie grep, sed oder awk) übergeben. zur weiteren Verarbeitung), unter Verwendung einer Pipeline.

Lesen Sie auch :Lernen Sie die Grundlagen der Funktionsweise der E/A-Umleitung (Eingabe/Ausgabe) unter Linux kennen

Zwei der wichtigsten Befehlszeilenprogramme, die mit Pipelines zum Erstellen von Befehlszeilen verwendet werden können, sind:

  • xargs – liest Datenströme von der Standardeingabe, generiert dann Befehlszeilen und führt sie aus.
  • tee – liest von der Standardeingabe und schreibt gleichzeitig in die Standardausgabe und eine oder mehrere Dateien. Es ist eher ein Umleitungsbefehl.

In diesem einfachen Artikel beschreiben wir, wie Sie mehrere Befehle aus der Standardeingabe mithilfe von Pipes erstellen und ausführen , T-Stück und xargs Befehle unter Linux.

Die einfachste Syntax zur Verwendung einer Pipe , die Sie vielleicht schon in vielen unserer Linux-Tutorials in Befehlen gesehen haben, lautet wie folgt. Aber Sie können eine längere Befehlszeile mit mehreren Befehlen aufbauen.

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

Unten sehen Sie ein Beispiel für die Verwendung einer Pipeline, um die Ausgabe des Befehls dmesg an den Befehl head zu übergeben.

$ dmesg | head

So verwenden Sie xargs zum Ausführen von Befehlen

In diesem Beispiel konvertiert der zweite Befehl eine mehrzeilige Ausgabe in eine einzeilige Ausgabe mit xargs.

$ ls -1 *.sh
$ ls -1 *.sh | xargs

Verwenden Sie die folgenden Befehle, um die Anzahl der Zeilen/Wörter/Zeichen in jeder Datei in einer Liste zu zählen.

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

Der folgende Befehl findet und löscht rekursiv das Verzeichnis mit dem Namen All im aktuellen Verzeichnis.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

Der find-Befehl mit der Option -print0 Aktion ermöglicht die Ausgabe des vollständigen Verzeichnispfads auf der Standardausgabe, gefolgt von einem Nullzeichen und -0 xargs Flag befasst sich mit Leerzeichen in Dateinamen.

Sie können andere praktische xargs-Befehle finden Anwendungsbeispiele in diesen Artikeln:

  1. Wie man unter Linux eine Datei in mehrere Verzeichnisse kopiert
  2. Alle Dateien und Verzeichnisnamen unter Linux in Kleinbuchstaben umbenennen
  3. 4 Möglichkeiten zur Batch-Konvertierung von PNG in JPG und umgekehrt
  4. 3 Möglichkeiten zum Löschen aller Dateien in einem Verzeichnis außer einer oder wenigen Dateien mit Erweiterungen

Verwendung von Tee mit Befehlen unter Linux

Dieses Beispiel zeigt, wie die Befehlsausgabe an die Standardausgabe gesendet und in einer Datei gespeichert wird. Mit dem folgenden Befehl können Sie die am häufigsten ausgeführten Prozesse nach der höchsten Speicher- und CPU-Auslastung in Linux anzeigen.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

Um Daten in eine oder mehrere vorhandene Dateien einzufügen, übergeben Sie -a Flagge.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

Weitere Informationen finden Sie im te und xargs Handbuchseiten.

$ man xargs
$ man tee

Das ist alles! Vergessen Sie nicht, unseren speziellen Artikel zu lesen:A – Z Linux-Befehle – Übersicht mit Beispielen.

In diesem Artikel haben wir beschrieben, wie Sie Befehlszeilen mithilfe von Pipelines generieren. xargs- und tee-Befehle. Über das Feedback-Formular unten können Sie Fragen stellen oder Gedanken mitteilen.


Linux
  1. 10 erstaunliche und mysteriöse Verwendungen von (!) Symbolen oder Operatoren in Linux-Befehlen

  2. So speichern Sie Linux-Befehle und verwenden sie bei Bedarf

  3. Linux-Befehle:jobs, bg und fg

  4. Linux – Wie führe ich einen Bootloader von Linux aus?

  5. So installieren Sie MongoDB von der Quelle (und mit YUM) unter Linux

So korrigieren Sie Fehler und Tippfehler in früheren Konsolenbefehlen unter Linux

So führen Sie Linux-Apps unter Windows 10 und 11 mit WSL aus

So führen Sie einen Befehl regelmäßig unter Linux mit Watch aus

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus