So verwenden Sie den Tee-Befehl unter Linux

So verwenden Sie den Tee-Befehl unter Linux

Die zentralen Thesen

  • Der Befehl „tee“ unter Linux speichert die Ausgabe eines Befehls in einer Datei und zeigt sie gleichzeitig auf dem Terminal an.
  • Außerdem kann die Ausgabe gleichzeitig in mehrere Dateien geschrieben werden, was eine einfache Sicherung und Nachverfolgung von Systemprotokollen ermöglicht.
  • Der „tee“-Befehl kann über Piping auch mit anderen Befehlen verwendet werden. Dies ermöglicht die Weiterverarbeitung der Ausgabe beim Speichern in einer Datei. Sie könnten es beispielsweise mit „ls“ in diesem Befehl verwenden: „ls ~ | „te list.txt“

Der teeBefehl kann die Ausgabe Ihrer Befehle zur späteren Überprüfung speichern. Dieser Befehl zeigt die Ausgabe nicht nur auf dem Bildschirm an, sondern zeichnet sie auch in einer separaten Protokolldatei auf . Angenommen, Sie möchten die Ausgabe des df-Befehls in einer Datei speichern, damit Sie Ihre Speicherplatznutzung im Laufe der Zeit verfolgen können. Dieser Befehl hilft Ihnen bei der Fehlerbehebung eines Prozesses, da er eine schriftliche Aufzeichnung der Prozesse verwaltet.

Was ist der Tee-Befehl unter Linux?

Der Linux tee-Befehl ist ein nützliches Tool, um unter Linux Zeit zu sparen und die Effizienz zu verbessern. Es kann die Standardeingabe (stdin) lesen und sowohl in die Standardausgabe (stdout) als auch in die von Ihnen angegebene Datei oder Dateien schreiben . Der teeBefehl funktioniert wie ein T-förmiges Rohr, das Wasser in zwei Richtungen aufteilt. Damit können Sie die Ausgabe eines Programms anzeigen und gleichzeitig in einer Datei speichern.

Der teeBefehl erledigt beide Dinge zusammen. Damit können Sie die Ausgabe in die von Ihnen ausgewählten Dateien oder Variablen kopieren und sie Ihnen anzeigen. Dieser Befehl wird auch in Shell-Skripten und Terminalbefehlen verwendet , um Ausgaben an verschiedene Speicherorte zu senden. teeMit dem Befehl können Sie Backups erstellen , Fehler in Skripts finden und Systemprotokolle verfolgen.

Mit dem teeBefehl können Sie ihn auch an andere Befehle weiterleiten . Auf diese Weise können Sie die Ausgabe in einer Datei speichern und auch mit jedem anderen Befehl weiterverarbeiten.

Bei fast allen Linux-Distributionen ist der teeBefehl vorinstalliert, der Teil des Coreutils-Pakets ist.

Der teeBefehl folgt einer ähnlichen Syntax wie andere Linux-Befehle. Es hat zwei Argumente, –OPTIONS und FILES:

tee [OPTION]... [FILE]...

Um herauszufinden, welche Version des teeBefehls Sie verwenden, führen Sie einfach den folgenden Befehl aus:

tee --version

Version des Tee-Befehls auf dem Terminal

Wenn Sie Hilfe zur Syntax und den verfügbaren Argumenten für den teeBefehl benötigen, geben Sie Folgendes ein:

tee --help

Hilfe zum Tee-Befehl

tee-Befehlsoptionen

Der teeBefehl verfügt über mehrere Optionen zum Ändern seiner Funktionalität. Die folgende Tabelle zeigt einige Optionen, die Ihnen helfen, den teeBefehl effizient zu verwenden:

Möglichkeit

Beschreibung

-a or --append

Hängen Sie die Ausgabe an das Ende der Dateien an, anstatt sie zu überschreiben.

-i or --ignore-interrupts

Ignorieren Sie Interrupt-Signale wie Strg+C.

-p or --output-error

Gibt für jeden Fehler, der beim Schreiben in Dateien auftritt, eine Fehlermeldung im Standardfehler aus.

--help

Zeigt eine grundlegende Hilfe zu den Befehlsoptionen an.

--version

Zeigt die teeBefehlsversion an.

Speichern Sie die Ausgabe in einer Datei unter Linux mit tee

Der teeBefehl speichert die Ausgabe eines Befehls in einer Datei und zeigt sie gleichzeitig auf dem Terminal an. teeMit dem Befehl können Sie beispielsweise die Dateien und Verzeichnisse in Ihrem Home-Verzeichnis anzeigen und sie auch in einer separaten Datei speichern. Um dies zu erreichen, leiten Sie den teeBefehl wie folgt an den Befehl ls weiter:

ls ~ | tee list.txt

ls mit dem Befehl tee ausführen und die Ausgabe in einer Textdatei speichern

Dadurch werden alle Dateien und Verzeichnisse in Ihrem Home-Verzeichnis angezeigt und in „list.txt“ geschrieben. Um den Inhalt der „list.txt“ anzuzeigen, verwenden Sie einen beliebigen Texteditor oder Befehl wie cat , less oder morecommand.

cat list.txt

cat-Befehl zum Lesen einer Listentextdatei

Führen wir ein weiteres Beispiel mit einem Echo-Befehl durch , um die Ausgabe zu speichern und anzuzeigen. Verwenden Sie zunächst den echoBefehl, um Text auf dem Terminal zu drucken. Anschließend wurde der teeBefehl mit dem echoBefehl weitergeleitet, denselben Text in eine Datei namens „output.txt“ zu schreiben.

echo "Welcome to Ubuntu"| tee output.txt

Echo-Befehlspipe mit dem Tee-Befehl

Verwenden Sie abschließend den Befehl cat , um den Inhalt der Datei „output.txt“ zu überprüfen.

cat output.txt

cat-Befehl zum Lesen von Textdateiinhalten

Schreiben Sie die Ausgabe mit tee in mehrere Dateien unter Linux

Der teeBefehl kann die Ausgabe auch gleichzeitig in mehrere Dateien schreiben. Sie müssen lediglich die Dateinamen nach dem teeBefehl definieren, in den Sie schreiben möchten. Trennen Sie sie einfach durch Leerzeichen.

Um beispielsweise die Ausgabe des echoBefehls in drei verschiedenen Dateien zu speichern, verwenden Sie die folgende Syntax:

echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt

Echo-Befehl mit Tee-Befehl mit mehreren Dateinamen weitergeleitet

Dadurch wird die Zeichenfolge „Willkommen bei Ubuntu“ in drei Dateien geschrieben: file1.txt, file2.txt und file3.txt. Es zeigt sie auch auf dem Terminal an. Um den Inhalt dieser Dateien anzuzeigen, verwenden Sie den Befehl catoder head:

head -v file1.txt file2.txt file3.txt

head-Befehl zum Lesen mehrerer Textdateiinhalte

catIn ähnlicher Weise zeigt der Befehl auch die identische Ausgabe an:

cat -v file1.txt file2.txt file3.txt

cat-Befehl zum Lesen mehrerer Textdateiinhalte

Mit dem Befehl können Sie die Ausgabe in beliebig viele Dateien schreiben tee. Geben Sie einfach die Dateinamen nach dem teeBefehl mit Leerzeichen dazwischen ein.

Hängen Sie die Ausgabe mit tee an eine Datei an

Der teeBefehl unter Linux überschreibt standardmäßig den Dateiinhalt. Mit der Option -a„oder“ --appenddes teeBefehls können Sie die Ausgabe an das Ende der Dateien anhängen, anstatt deren Inhalt zu ersetzen.

Bevor wir Daten an die Datei anhängen, überprüfen wir die aktuellen Daten in der Datei mit dem folgenden Befehl:

cat output.txt

cat-Befehl zum Lesen der Daten aus der Datei „output.txt“.

Jetzt können wir die neuen Daten anhängen, ohne sie zu überschreiben, indem wir Folgendes eingeben:

echo "tee Command on Linux"| tee -a output.txt

echo-Befehl mit der Option „te“ und „-a“ weitergeleitet, um die Ausgabe an die vorhandene Datei anzuhängen

Dadurch wird die Ausgabe eines Befehls an das Ende von „output.txt“ angehängt, ohne dass vorherige Inhalte darin gelöscht werden. Führen Sie zur Überprüfung den catfolgenden Befehl aus:

cat output.txt

cat-Befehl, der die Ausgabetextdatei liest

Verstecken Sie die Ausgabe mit tee

Manchmal möchten Sie möglicherweise die Ausgabe eines Befehls in einer Datei speichern, ohne sie auf dem Terminal anzuzeigen. Dies kann nützlich sein, wenn Sie einen Befehl unbeaufsichtigt ausführen möchten, ohne Ihr Terminal mit unnötigen Ausgaben zu überladen. In solchen Fällen müssen Sie die Befehlsausgabe an das /dev/nullGerät weiterleiten. Das /dev/nullwird oft als „Nullgerät“ oder „Nulldatei“ bezeichnet. Es fungiert als Datensenke, was bedeutet, dass alle darauf geschriebenen Daten verworfen und nirgendwo gespeichert werden.

Hier ist eine Möglichkeit, die Ausgabe des echoBefehls auszublenden:

echo "Welcome to Ubuntu"| tee output.txt > /dev/null

Echo-Befehl mit Tee-Befehl und Dev-Null-Gerät weitergeleitet

Dadurch wird die Ausgabe eines Befehls in „output.txt“ geschrieben und auch an gesendet /dev/null, wodurch sie effektiv vom Bildschirm ausgeblendet wird. Mit dem Befehl können Sie jedoch catdie Ausgabe überprüfen, indem Sie den Dateiinhalt anzeigen:

cat output.txt

cat-Befehl zum Lesen des Textdateiinhalts-1

Leiten Sie die Ausgabe eines Befehls mithilfe von tee auf einen anderen um

Der teeBefehl kann auch die Ausgabe eines Befehls in eine Datei oder einen anderen Befehl umleiten. Mit dem teeBefehl mit einer Pipe (|) können Sie die Ausgabe des ersten Befehls sowohl an die Standardausgabe als auch an den zweiten Befehl oder die zweite Datei senden. Betrachten Sie das folgende Beispiel:

echo "This is Ubuntu"| tee output.txt | wc -c

echo-Befehl mit Tee und WC weitergeleitet, um die Ausgabe umzuleiten

Die echoBefehlsausgabe „Willkommen bei Ubuntu“ wird in die Datei „output.txt“ geschrieben. Danach wird der Pipeline-Operator mit dem teeBefehl verwendet. Dadurch wird der Dateiinhalt an den Befehl wc übergeben . Der wcBefehl gibt die Gesamtzahl der gezählten Zeichen aus und zeigt einen ganzzahligen Wert an.

Um zu überprüfen, ob der teeBefehl auch die Ausgabe in eine Datei geschrieben hat, verwenden Sie den catBefehl, um den Dateiinhalt anzuzeigen:

cat output.txt

Cat-Befehl, der die Ausgabetextdatei liest

Verwenden des Befehls „te“ mit sudo

Wenn Sie den Befehl verwenden tee, schreibt er die Ausgabe eines Befehls in eine reguläre Datei. Für die Änderung einiger Dateien und Verzeichnisse wie Systemverzeichnisse oder geschützte Dateien sind jedoch Superuser-Rechte erforderlich. Um in diese Dateien oder Dateien anderer Benutzer zu schreiben, verwenden Sie teein Verbindung mit sudo.

Wenn Sie im folgenden Beispiel versuchen, eine Root-eigene Datei „file.conf“ zu schreiben, ohne sudo zu verwenden , erhalten Sie die Fehlermeldung „Berechtigung verweigert“.

echo "This is Ubuntu"| tee -a /etc/file.conf

Der Echo-Befehl wurde ohne Sudo-Berechtigung mit dem Tee-Befehl weitergeleitet

Wenn Sie jedoch sudomit dem teeBefehl verwenden, wird dieser ohne Fehler ausgeführt. Mit dem Befehl können Sie den Befehl als Root-Benutzer oder als Eigentümer der Datei sudoausführen . teeStellen Sie einfach sudoden teeBefehl voran:

echo "This is Ubuntu"| sudo tee -a /etc/file.conf

Echo-Befehl wird mit Tee-Befehl mit Sudo-Berechtigung weitergeleitet

Zunächst teeübernimmt der Befehl die echoBefehlsausgabe. Danach werden die sudoBerechtigungen erhöht und der Text in die Datei geschrieben.

Beispiele für die Verwendung von tee in einem Bash-Skript

Der teeBefehl kann in verschiedenen Skriptszenarien nützlich sein. Es hilft Ihnen, die Ausgabe eines Befehls zur weiteren Verarbeitung oder zum Debuggen zu protokollieren oder zu erfassen. Der teeBefehl zeigt die Ausgabe nicht nur an, sondern speichert sie auch zur späteren Verwendung in einer oder mehreren Dateien.

Wenn Sie beispielsweise Datum und Uhrzeit auf dem Terminal sehen und diese auch in eine Datei namens log.txt schreiben möchten, verwenden Sie das folgende Bash-Skript :

#!/bin/bashdate | tee log.txt

Bash-Skript zum Speichern des Datums in der Protokolldatei

In diesem Fall ist die Standardeingabe die Ausgabe des Datumsbefehls, die das aktuelle Datum und die aktuelle Uhrzeit anzeigt. Der teeBefehl schreibt diese Ausgabe auf das Terminal und die Datei log.txt. Wenn die Datei log.txt nicht existiert, wird sie erstellt. Wenn es vorhanden ist, wird es überschrieben, es sei denn, Sie verwenden die -aOption zum Anhängen an die Datei.

cat log.txt

Cat-Befehl, der den Inhalt der Protokolldatei liest

#!/bin/bashdate | tee log1.txt log2.txt

Bash-Skript zum Schreiben mehrerer Dateien mit dem Befehl tee

Dieses Skript gibt Datum und Uhrzeit auf dem Terminal und in zwei Dateien namens log1.txt und log2.txt aus. Lesen Sie den Inhalt beider Dateien mit catdem Befehl.

cat log1.txt log2.txt

Cat-Befehl, der den Inhalt mehrerer Protokolltextdateien liest

Betrachten wir ein weiteres einfaches Bash-Skript, das eine Eingabe entgegennimmt und in einer Protokolldatei speichert – mithilfe des teeBefehls.

#!/bin/bashlog_file="user_input.log"echo "Please enter some text:"read user_inputecho "$user_input" | tee -a "$log_file"echo "User input has been logged to $log_file"

Bash-Skript, das Benutzereingaben liest und die Ausgabe auf dem Terminal anzeigt

Definieren Sie im angegebenen Bash-Skript eine Variable namens „log_file“ und weisen Sie ihr den Namen der Protokolldatei zu, die Sie verwenden möchten, beispielsweise „user_input.log“. Verwenden Sie dann den echoBefehl und den readBefehl, um Sie aufzufordern, Text einzugeben und ihn in einer Variablen zu speichern. Als nächstes verwenden Sie den teeBefehl mit der -aOption, die Enter-Eingabe auf dem Terminal anzuzeigen und an die Protokolldatei anzuhängen.

Verwenden Sie abschließend den echoBefehl erneut, um Feedback zu geben. Dadurch erfahren Sie, dass Ihre Eingabe in der Datei protokolliert wurde. Auf diese Weise können Sie ein Bash-Skript erstellen, das Ihre Eingaben in einer Protokolldatei speichert und auf dem Bildschirm anzeigt.

Führen Sie das Bash-Skript mit bashdem Befehl aus.

bash test.sh

Bash-Befehl, der ein Testskript ausführt

Überwachen von Prozessen auf Ihrem Linux-System

Um die Leistung Ihres Linux-Systems im Auge zu behalten, sollten Sie die Aktivitäten seiner Prozesse beobachten. Dazu gehören CPU- und Speicherauslastung, Festplatten-E/A und Netzwerkaktivität.

Wie der teeBefehl verfügt Linux über mehrere andere Befehle , mit denen Sie die Prozesse einfach überwachen können. Zu den Hauptbefehlen gehören die Befehle ps , top und pgrep . Auf Linux-Systemen werden häufig mehrere Prozesse gleichzeitig ausgeführt. Mit diesen Befehlen können Sie kritische Aufgaben priorisieren, Ressourcen entsprechend zuweisen und Ressourcenkonflikte verhindern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert