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 tee
Befehl 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 tee
Befehl 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 tee
Befehl 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. tee
Mit dem Befehl können Sie Backups erstellen , Fehler in Skripts finden und Systemprotokolle verfolgen.
Mit dem tee
Befehl 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 tee
Befehl vorinstalliert, der Teil des Coreutils-Pakets ist.
Der tee
Befehl folgt einer ähnlichen Syntax wie andere Linux-Befehle. Es hat zwei Argumente, –OPTIONS und FILES:
tee [OPTION]... [FILE]...
Um herauszufinden, welche Version des tee
Befehls Sie verwenden, führen Sie einfach den folgenden Befehl aus:
tee --version
Wenn Sie Hilfe zur Syntax und den verfügbaren Argumenten für den tee
Befehl benötigen, geben Sie Folgendes ein:
tee --help
tee-Befehlsoptionen
Der tee
Befehl verfügt über mehrere Optionen zum Ändern seiner Funktionalität. Die folgende Tabelle zeigt einige Optionen, die Ihnen helfen, den tee
Befehl effizient zu verwenden:
Möglichkeit |
Beschreibung |
---|---|
|
Hängen Sie die Ausgabe an das Ende der Dateien an, anstatt sie zu überschreiben. |
|
Ignorieren Sie Interrupt-Signale wie Strg+C. |
|
Gibt für jeden Fehler, der beim Schreiben in Dateien auftritt, eine Fehlermeldung im Standardfehler aus. |
|
Zeigt eine grundlegende Hilfe zu den Befehlsoptionen an. |
|
Zeigt die |
Speichern Sie die Ausgabe in einer Datei unter Linux mit tee
Der tee
Befehl speichert die Ausgabe eines Befehls in einer Datei und zeigt sie gleichzeitig auf dem Terminal an. tee
Mit 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 tee
Befehl wie folgt an den Befehl ls weiter:
ls ~ | tee list.txt
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 more
command.
cat list.txt
Führen wir ein weiteres Beispiel mit einem Echo-Befehl durch , um die Ausgabe zu speichern und anzuzeigen. Verwenden Sie zunächst den echo
Befehl, um Text auf dem Terminal zu drucken. Anschließend wurde der tee
Befehl mit dem echo
Befehl weitergeleitet, denselben Text in eine Datei namens „output.txt“ zu schreiben.
echo "Welcome to Ubuntu"| tee output.txt
Verwenden Sie abschließend den Befehl cat , um den Inhalt der Datei „output.txt“ zu überprüfen.
cat output.txt
Schreiben Sie die Ausgabe mit tee in mehrere Dateien unter Linux
Der tee
Befehl kann die Ausgabe auch gleichzeitig in mehrere Dateien schreiben. Sie müssen lediglich die Dateinamen nach dem tee
Befehl definieren, in den Sie schreiben möchten. Trennen Sie sie einfach durch Leerzeichen.
Um beispielsweise die Ausgabe des echo
Befehls in drei verschiedenen Dateien zu speichern, verwenden Sie die folgende Syntax:
echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt
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 cat
oder head
:
head -v file1.txt file2.txt file3.txt
cat
In ähnlicher Weise zeigt der Befehl auch die identische Ausgabe an:
cat -v file1.txt file2.txt file3.txt
Mit dem Befehl können Sie die Ausgabe in beliebig viele Dateien schreiben tee
. Geben Sie einfach die Dateinamen nach dem tee
Befehl mit Leerzeichen dazwischen ein.
Hängen Sie die Ausgabe mit tee an eine Datei an
Der tee
Befehl unter Linux überschreibt standardmäßig den Dateiinhalt. Mit der Option -a
„oder“ --append
des tee
Befehls 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
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
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 cat
folgenden Befehl aus:
cat output.txt
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/null
Gerät weiterleiten. Das /dev/null
wird 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 echo
Befehls auszublenden:
echo "Welcome to Ubuntu"| tee output.txt > /dev/null
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 cat
die Ausgabe überprüfen, indem Sie den Dateiinhalt anzeigen:
cat output.txt
Leiten Sie die Ausgabe eines Befehls mithilfe von tee auf einen anderen um
Der tee
Befehl kann auch die Ausgabe eines Befehls in eine Datei oder einen anderen Befehl umleiten. Mit dem tee
Befehl 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
Die echo
Befehlsausgabe „Willkommen bei Ubuntu“ wird in die Datei „output.txt“ geschrieben. Danach wird der Pipeline-Operator mit dem tee
Befehl verwendet. Dadurch wird der Dateiinhalt an den Befehl wc übergeben . Der wc
Befehl gibt die Gesamtzahl der gezählten Zeichen aus und zeigt einen ganzzahligen Wert an.
Um zu überprüfen, ob der tee
Befehl auch die Ausgabe in eine Datei geschrieben hat, verwenden Sie den cat
Befehl, um den Dateiinhalt anzuzeigen:
cat output.txt
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 tee
in 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
Wenn Sie jedoch sudo
mit dem tee
Befehl verwenden, wird dieser ohne Fehler ausgeführt. Mit dem Befehl können Sie den Befehl als Root-Benutzer oder als Eigentümer der Datei sudo
ausführen . tee
Stellen Sie einfach sudo
den tee
Befehl voran:
echo "This is Ubuntu"| sudo tee -a /etc/file.conf
Zunächst tee
übernimmt der Befehl die echo
Befehlsausgabe. Danach werden die sudo
Berechtigungen erhöht und der Text in die Datei geschrieben.
Beispiele für die Verwendung von tee in einem Bash-Skript
Der tee
Befehl 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 tee
Befehl 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
In diesem Fall ist die Standardeingabe die Ausgabe des Datumsbefehls, die das aktuelle Datum und die aktuelle Uhrzeit anzeigt. Der tee
Befehl 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 -a
Option zum Anhängen an die Datei.
cat log.txt
#!/bin/bashdate | tee log1.txt log2.txt
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 cat
dem Befehl.
cat log1.txt log2.txt
Betrachten wir ein weiteres einfaches Bash-Skript, das eine Eingabe entgegennimmt und in einer Protokolldatei speichert – mithilfe des tee
Befehls.
#!/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"
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 echo
Befehl und den read
Befehl, um Sie aufzufordern, Text einzugeben und ihn in einer Variablen zu speichern. Als nächstes verwenden Sie den tee
Befehl mit der -a
Option, die Enter-Eingabe auf dem Terminal anzuzeigen und an die Protokolldatei anzuhängen.
Verwenden Sie abschließend den echo
Befehl 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 bash
dem Befehl aus.
bash test.sh
Ü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 tee
Befehl 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