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

Linux tee-Befehl erklärt (mit Beispielen)

Wenn Sie grundlegende Befehle auf dem Terminal ausführen, wird die Ausgabe normalerweise an das Terminal ausgegeben, d. H. Standardausgabe. Aber was wäre, wenn Sie die Ausgabe auch in einer Datei speichern und auf Standardausgabe ausdrucken könnten? Das macht der tee-Befehl. Der Linux-te-Befehl liest von stdin (Standardeingabe) und schreibt dann in stdout (Standardausgabe) sowie in eine oder mehrere Dateien.

Grundlegende Syntax des tee-Befehls

Der tee-Befehl hat die folgende Syntax.

$-Befehl | tee [ Optionen ] Datei(en)

Lassen Sie uns nun ein paar Beispielverwendungen des Befehls tee ausprobieren.

Grundlegende Verwendung des tee-Befehls

Angenommen, wir möchten die Speicher- und Swap-Nutzung mit free drucken Befehl und speichern Sie die Ausgabe in einer Datei namens memory_usage.txt . Der tee-Befehl würde wie folgt aufgerufen werden.

$ free -h | tee memory_usage.txt

Der tee-Befehl liest aus dem Befehl und speichert die Ausgabe in memory_usage.txt Datei und druckt sie dann auf Standardausgabe.

Zur Bestätigung wurde die Ausgabe in memory_usage.txt gespeichert Datei führen Sie den cat-Befehl wie gezeigt aus.

$ cat memory_usage.txt

Ausgabe in mehrere Dateien schreiben

Außerdem können Sie die Ausgabe wie gezeigt in mehreren Dateien speichern

$-Befehl | tee [ Optionen ] Datei1 Datei2 …

Im folgenden Befehl wird die Zeichenfolge "Hey, Welcome to Linux" wird in den beiden Textdateien gespeichert:file1.txt undfile2.txt

$ echo Hey, Welcome to Linux | tee file1.txt file2.txt

Inhalt an eine Datei anhängen

Normalerweise überschreibt der Befehl tee eine Datei, und dies ist nicht immer wünschenswert, da es wichtige vorhandene Daten löschen kann. Zum Glück können Sie das -a verwenden Option zum Anhängen von Text an eine Datei. Lassen Sie uns das testen.

Zuerst schreiben wir die Ausgabe der Betriebszeit Befehl in die stats.txt Datei wie gezeigt.

$ Betriebszeit | tee stats.txt

Verwenden Sie die Katze Befehl, um dies zu überprüfen.

$ cat stats.txt

Als Nächstes hängen wir die Ausgabe von free -h an Befehl, der unsere Speicher- und Auslagerungsnutzung in die Datei ausgibt.

$ free -h | tee -a stats.txt

Überprüfen Sie noch einmal den Inhalt der stats.txt Datei. Dieses Mal enthält die Datei die Ausgabe der beiden Befehle, wie im folgenden Screenshot angegeben. Das liegt daran, dass wir die Ausgabe von free -h angehängt haben Befehl in die stats.txt Datei und daher wurde der vorhandene Text nicht beeinflusst.

Ausgabe des tee-Befehls unterdrücken

Wenn Sie die Ausgabe des T-Stücks nicht haben möchten Befehl standardmäßig ausgegeben, können Sie ihn nach /dev/null umleiten Dies ist ein spezielles Gerät, das Informationen verwirft.

Nehmen Sie das Beispiel unten, wo wir die Ausgabe von df -Th drucken Befehl in die Textdatei, aber die Ausgabe auf dem Terminal wird unterdrückt.

$ df -Th | tee disk_usage.txt >/dev/null

Te-Befehl Interrupts ignorieren lassen

Manchmal möchten Sie vielleicht einen Befehl stoppen, der ständig ausgeführt wird. In diesem Fall sollten Sie erwägen, den tee-Befehl auch nach der Unterbrechung des Programms ordnungsgemäß zu beenden. Verwenden Sie dazu das -i oder –ignore-interrupts Option, die in der gezeigten Syntax bereitgestellt wird.

$-Befehl | tee -i Dateiname

Der folgende Ping-Befehl sendet kontinuierlich Ping-Anfragen an Googles DNS ( 8.8.8.8 ). Wir haben den Befehl nach 4 aufeinanderfolgenden Ping-Anfragen unterbrochen. Für das T-Stück Befehl zum ordnungsgemäßen Beenden rufen Sie das -i auf Option.

$ ping 8.8.8.8 | tee -i ping_stats.txt

Ohne das -i Option würde die Ausgabe und Zusammenfassung der Statistik nicht gedruckt.

Verwenden Sie den tee-Befehl mit sudo

Wenn Sie Dateien ändern, die dem Root-Benutzer oder einem anderen Login-Benutzer gehören, führt die einfache Verwendung des tee-Befehls ohne Aufrufen des sudo-Befehls zu einem Fehler.

Im Beispiel unten erstellen wir ein neues Repository mit dem Namen anydesk-stable.list für AnyDesk-Anwendung in /etc/apt/sources.list.d Pfad, der für den Root-Benutzer reserviert ist.

$ echo "deb http://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list

Wie erwartet, ist der Fehler „Berechtigungen verweigert“ aufgetreten, da wir nicht über die Berechtigung verfügen, eine Datei in diesem Pfad zu erstellen oder zu ändern.

Die Lösung ist, tee voranzustellen mit dem sudo-Befehl wie gezeigt.

$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

In diesem Fall ist der Befehl erfolgreich, nachdem sudo vor tee gesetzt wurde.

Holen Sie sich Hilfe zum Tee-Befehl

Führen Sie den folgenden Befehl aus, um weitere Befehlsoptionen und Unterstützung bei der Verwendung des Befehls tee zu erhalten.

$ tee --help

Erkunden Sie außerdem die Manpages wie gezeigt

$ man tee

Um die Version zu überprüfen, führen Sie Folgendes aus:

$ tee --version

Zusammenfassung

Hier dreht sich alles um den Linux-te-Befehl. Insbesondere liest der Befehl von Standard in ( stdin ) und schreibt danach in Standard out ( stdout ) und Datei(en).


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux Tee-Befehl mit Beispielen

  3. Befehl zum Herunterfahren von Linux mit Beispielen erklärt

  4. Linux Traceroute-Befehl, erklärt mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Tr-Befehl in Linux mit Beispielen erklärt

w Befehl mit Beispielen in Linux erklärt

Linux Cat-Befehl mit Beispielen erklärt

Tee-Befehl in Linux mit Beispielen erklärt

Linux tee-Befehlsbeispiele

Linux csplit Befehl erklärt (mit Beispielen)