Unter Linux können Sie die Befehlsausgabe in Dateien speichern, um die Ausgabe umzuleiten. Beim Speichern der Ausgabe in einer Datei mit der > oder >> Operatoren wird die Ausgabe umgeleitet, ohne dass Informationen auf dem Terminal angezeigt werden.
Was aber, wenn Sie die Ausgabe auf dem Bildschirm ausdrucken und gleichzeitig in einer Datei speichern möchten? Obwohl Sie dies nicht mit den Ausgabeumleitungsoperatoren tun können, ist dies mit dem tee-Befehl unter Linux möglich.
Grundlegende Befehlssyntax
tee ist ein Standard-Linux-Dienstprogramm, das verwendet wird, um die Ausgabe eines Befehls zwischen der Standardausgabe und Dateien aufzuteilen.
Im Gegensatz zu den meisten Linux-Befehlen wird tee mit anderen Programmen verwendet, die eine Pipe (|). Der Pipe-Operator – einer der viele Befehlszeilenoperatoren unter Linux – lässt ein Programm die Ausgabe eines anderen Befehls als Eingabe verwenden. Möglicherweise haben Sie Pipe verwendet, während Sie nebenher grep verwendet haben
der ls-Befehl oder Katze.Die grundlegende Syntax des tee-Befehls lautet:
Befehl | Tee-Optionen Dateipfad
...Wo Optionen Und Dateipfad sind die Befehlszeilenargumente und der Pfad zu der Datei, in der Sie die Ausgabe speichern möchten.
Split-Terminal-Ausgang unter Linux Mit T-Stück
Die einfachste Verwendung von tee besteht darin, die Ausgabe aufzuteilen, um sie im Terminal anzuzeigen und in einer Datei zu speichern. Um beispielsweise die Ausgabe des Befehls ls in einer Textdatei mit dem Namen "Ausgabe.txt," laufen:
ls | tee ./output.txt
Die Ausgabe zeigt wie gewohnt den Inhalt des aktuellen Arbeitsverzeichnisses an. Wenn Sie die Datei output.txt überprüfen, werden Sie feststellen, dass tee die Ausgabe auch in der Datei gespeichert hat.
Wenn Sie einen Dateipfad angeben, prüft tee, ob die Datei existiert. Wenn es keine findet, erstellt es die Datei automatisch für Sie, wodurch sie bequem in Shell-Skripten verwendet werden kann. Es ist nützlich, wenn Sie die Ausgabe eines Programms oder Skripts zur späteren Bezugnahme protokollieren möchten.
Sie müssen dem Befehl tee sudo voranstellen, um Daten in einer Datei zu lesen oder zu speichern, die dem Root-Benutzer gehört.
Wenn die angegebene Datei Daten enthält, die Sie nicht überschreiben möchten, verwenden Sie die -A Flagge zu anhängen die Ausgabe in die Datei, anstatt die gesamte Datei zu löschen und dann die Daten zu speichern:
ls | tee -a ./output.txt
Ebenso können Sie die Ausgabe in mehrere Dateien umleiten, indem Sie die Pfade angeben, die durch einzelne Leerzeichen getrennt sind:
ls | tee ./output1.txt ./output2.txt
Manchmal können unerwartete Fehler oder manuelle Unterbrechungen (mit Strg + C oder Strg + Z) im vorherigen Befehl kann dazu führen, dass tee beendet wird. Um solche Unterbrechungen zu ignorieren, verwenden Sie die -ich Flagge:
ls | tee -i Ausgabe.txt
Zu Holen Sie sich die Befehlszeilenhilfe Bezüglich tee oder finden Sie die Versionsdetails, verwenden Sie die --Hilfe Und --Ausführung Flaggen wie folgt:
tee --Hilfe
tee --Version
Umleiten der Ausgabe auf einen anderen Befehl
Sie können eine Ausgabekette erstellen, indem Sie tee mit anderen Linux-Befehlen verbinden. Dadurch wird die Ausgabe in der angegebenen Datei gespeichert und dann zur Verarbeitung an den nächsten Befehl übergeben.
Verwenden Sie das folgende Format, um die Ausgabe von tee auf einen anderen Befehl umzuleiten:
Befehl | tee Dateipfad | andererBefehl
Der folgende Befehl speichert beispielsweise die Ausgabe des Befehls ls in Ausgabe.txt bevor es schließlich für eine schnelle Suche nach grep umgeleitet wird:
ls | tee ausgabe.txt | grep "Dokumente"
Insgesamt können Sie mit dem Tee-Befehl herumspielen die Standardein- und -ausgabe unter Linux.
Bearbeiten von Ausgabe und Text mit Linux-Befehlen
Der Befehl tee fügt den standardmäßigen Ausgabeumleitungsoperatoren unter Linux dringend benötigte Funktionen hinzu. Sie können damit sogar die Ausgabe eines Befehls manipulieren, bevor Sie ihn an ein anderes Programm weitergeben.
Ebenso können Sie Text mithilfe einiger Standard-Linux-Befehle über das Terminal ändern. Es mag einige Zeit dauern, sich daran zu gewöhnen, aber am Ende ist die Textmanipulation über die Befehlszeile für jeden Systemadministrator erlernbar.