Wenn Sie mit dem Terminal unter Linux arbeiten, stehen Ihnen viele Befehlszeilenprogramme zur Verfügung, die Ihnen das Leben erleichtern. Ein solches Dienstprogramm ist Tee
. In dieser kurzen Anleitung erfahren wir anhand praktischer Beispiele, was Tee ist und wie der Tee-Befehl unter Linux verwendet wird.
Einführung in den Tee-Befehl
Das tee ist ein einfaches Befehlszeilenprogramm, das Eingaben akzeptiert und die Ausgabe in eine Datei und eine Standardausgabe (d. h. Terminal) schreibt. Der Tee-Befehl wird hauptsächlich in Shell-Skripten verwendet, wenn Sie die Ausgabe in mehrere Dateien umleiten und die Ausgabe weiterverarbeiten möchten.
Der Tee-Befehl ist Teil der GNU coreutils
, daher ist es bei allen Linux-Distributionen vorinstalliert.
Um zu prüfen, ob der tee-Befehl in Ihrer Linux-Distribution verfügbar ist, führen Sie den folgenden Befehl aus:
$ which tee /usr/bin/tee
Um die Tee-Version zu überprüfen, können Sie die --version
verwenden Flagge.
$ tee --version tee (GNU coreutils) 8.32
Hilfe zum Befehl tee anzeigen
Wenn Sie den tee-Befehl noch nie verwendet haben, empfiehlt es sich, mit dem Hilfeabschnitt für den tee-Befehl zu beginnen.
Sie können auf die Manpage für den Befehl tee zugreifen, um mehr über dieses Dienstprogramm zu erfahren.
$ man tee
Sie können auch die --help
übergeben Argument für den tee-Befehl, um dessen Hilfe-Handbuch anzuzeigen.
$ tee --help
Tee-Befehlssyntax
Die typische Syntax des Tee-Befehls ist unten angegeben:
tee [OPTION]… [DATEI]…
Es akzeptiert Flags und Dateinamen, wohin die Ausgabe umgeleitet wird.
Es gibt zwei wichtige Flags, die Sie hauptsächlich mit dem tee-Befehl verwenden werden.
-a
,--append
flag :An Dateien anhängen.-i
,-ignore-interrupts
flag :Interrupt-Signale ignorieren.
Erlauben Sie mir nun, Ihnen einige Beispiele für den tee-Befehl unter Linux zu zeigen.
Linux Tee-Befehlsbeispiele für Anfänger
Wie bereits erwähnt, akzeptiert der tee-Befehl Eingaben und gibt die Ausgabe an das Terminal sowie eine Datei aus, die als Argument übergeben wird.
Im folgenden Beispiel nimmt der tee-Befehl Eingaben von echo
entgegen Befehl und gibt die Ausgabe sowohl an das Terminal als auch an hello.txt
aus Datei.
$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix
Lassen Sie uns den Inhalt von hello.txt
überprüfen Datei:
$ cat hello.txt Welcome to OSTechNix

Verwenden Sie den Tee-Befehl mit dem Pipe-Operator
Der Tee-Befehl besteht nicht nur darin, die Standardeingabe auf dem Terminal auszugeben und sie auch zur weiteren Verarbeitung in ein anderes Programm zu leiten.
Meistens wird der Befehl tee in Kombination mit pipe
verwendet (|)-Operator in Shell-Skripten.
Sehen Sie sich das folgende Beispiel an.
$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world
Lassen Sie mich erklären, was passiert, wenn Sie den obigen Befehl ausführen.
- Das
echo
Der Befehl sendet seine Ausgabe"Hello World"
als Eingabe für dastee
Befehl durch die Pipe. Tee
Der Befehl speichert die Ausgabe in der angegebenen Dateihello.txt
.- Anstatt die Ausgabe an das Terminal zu drucken, was das Standardverhalten ist, wird der
tee
Befehl übergeben Sie"Hello World"
string als Eingabe fürrev
Befehl, der den String in umgekehrter Reihenfolge ausgibt .
Hier ist ein weiteres Beispiel.
Der folgende Befehl erstellt ein Verzeichnis namens "ostechnix", zählt die Anzahl der Zeichen in "ostechnix" und gibt "ostechnix" an das Terminal aus:
$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)
Vorsicht: Möglicherweise müssen Sie sudo
verwenden mit dem tee
Befehl, wenn Sie Dateien in Verzeichnissen erstellen, auf die Sie als normaler Benutzer keinen Zugriff haben.
Mehrere Dateien übergeben
Der Tee-Befehl akzeptiert auch mehrere Dateien als Argumente und speichert die Ausgabe in jeder Datei.
$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix
Lassen Sie uns den Inhalt jeder Datei überprüfen:
$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix

Überschreiben vs. Anhängen
Das Standardverhalten des tee
Befehl ist, wird gesucht, ob die Datei bereits verfügbar ist, und die Daten mit der neuen überschrieben. Wenn die Datei nicht verfügbar ist, wird sie erstellt.
Wenn Sie die Daten anhängen möchten, anstatt sie zu überschreiben, verwenden Sie -a
oder --append
Flagge.
$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop
Kombination von Tee mit Umleitungsoperator
Wenn Sie die Ausgabe nicht auf dem Terminal ausgeben, sondern nur in Dateien schreiben möchten, können Sie den Umleitungsoperator mit dem Befehl tee kombinieren.
Dies ist nur dann ein idealer Fall, wenn der Tee-Befehl in Ihrer Pipe-Kette an letzter Stelle steht. Wenn die tee-Ausgabe an einen anderen Befehl wie as weitergeleitet wird
Wie im ersten Beispiel gezeigt, muss der Umleitungsoperator nicht verwendet werden.
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null
Signale unterbrechen
Der Tee-Befehl hat die Option, SIGINT mit dem -i
zu unterbrechen oder --ignore-interrupts
Flagge.
Bedeutung - wenn Sie CTRL + C
drücken in Ihrem Terminal, während Sie den tee-Befehl mit -i
ausführen Flag, unterbricht der tee-Befehl das Signal und führt einen eleganten Exit durch, indem er EOF aus der PIPE liest.
$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world
Zusammenfassung
Tee ist ein einfaches Programm, das Sie möglicherweise nicht täglich verwenden. Die Kenntnis des tee-Befehls ist jedoch praktisch, wenn Sie Shell-Skripte schreiben. Hoffe das hilft.