Detaillierte Erklärung der Verwendung des Linux-Befehls „tee“

Detaillierte Erklärung der Verwendung des Linux-Befehls „tee“

Der Befehl tee wird hauptsächlich verwendet, um die Ausgabe in standout (Standardausgabestream, normalerweise das Befehlsausführungsfenster) vorzunehmen und gleichzeitig den Inhalt in eine Datei auszugeben. Im Folgenden finden Sie die Manpage-Informationen zu tee

Lesen von der Standardeingabe und Schreiben in die Standardausgabe und Dateien

Als nächstes machen wir uns anhand mehrerer Anwendungsszenarien mit dem tee -Befehl vertraut.

Szenario 1: So verwenden Sie den Tee-Befehl

Das Format des Tee-Befehls lautet:

tee [OPTION]… [DATEI]…

Aus der Definition in der Man-Datei wissen wir, dass tee Daten aus dem Standardeingabestream liest. Daher verwenden wir hier einen einfachen Befehl, um einen Ausgabestream als Eingabestream von tee zu generieren. Hier verwenden wir den ping -Befehl.

[mysql@localhost ~]$ ping baidu.com
PING baidu.com (220.181.57.216) 56(84) Bytes Daten.
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 Zeit=30,1 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 Zeit=33,1 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 Zeit=31,9 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=4 ttl=128 Zeit=30,9 ms
...

Nun wollen wir die Ausgabe auf die Konsole veranlassen und den ausgegebenen Inhalt in einer anderen Datei für andere Zwecke speichern. Dann kann tee zum Einsatz kommen.

[mysql@localhost ~]$ ping baidu.com | tee ping-baidu.log #Speichern Sie den Inhalt in der Datei ping-baidu.log, während Sie die Ausgabe auf der Konsole durchführen. PING baidu.com (220.181.57.216) 56(84) Bytes Daten.
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 Zeit=30,6 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 Zeit=30,5 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 Zeit=30,2 ms
^C[mysql@localhost ~]$ cat ping-baidu.log #Überprüfen Sie, ob der Dateiinhalt mit der Ausgabe übereinstimmt PING baidu.com (220.181.57.216) 56(84) Bytes Daten.
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 Zeit=30,6 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 Zeit=30,5 ms
64 Bytes von 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 Zeit=30,2 ms

Szenario 2: Wie füge ich Inhalt an eine Datei an?

Im obigen Vorgang erfolgt die Ausgabe an ping-baidu.log. Wenn diese Datei vorhanden ist, löschen Sie zuerst den gesamten Inhalt in der Datei und geben Sie dann den Inhalt ein. Diese Methode ist für einige Szenarien nicht geeignet. Wir hoffen, dass jede Ausgabe an die Datei angehängt wird. In diesem Fall können wir dies über den Parameter -a angeben.

ping baidu.com | tee -a ping-baidu.log 

Bildbeschreibung hier einfügen

Szenario 3: Wie kann die Ausgabe gleichzeitig in mehrere Dateien erfolgen?

Hängen Sie einfach den einzugebenden Dateinamen nach dem tee -Befehl an. Das spezifische Format ist:

ping baidu.com | ab ping.log ping-baidu.log 

Bildbeschreibung hier einfügen

Szenario 4: So leiten Sie die Ausgabe des Tee-Befehls als Eingabestream eines anderen Befehls um

Fügen Sie einfach | und den nächsten Befehl nach tee -Befehl hinzu, um der Pipeline-Methode zu folgen.

Bildbeschreibung hier einfügen

Szenario 5: Erhöhen der Berechtigungsstufe zum Schreiben in eine Datei mithilfe des Befehls „tee“

Wenn wir den Linux-Server tatsächlich betreiben und bestimmte Dateien konfigurieren, stellen wir nach Abschluss der Konfiguration und beim Speichern fest, dass unser aktueller Benutzer nicht über die Datei zum Speichern der Datei verfügt. Dies ist sehr frustrierend. Gibt es eine Lösung? Zu diesem Zeitpunkt rettet uns der tee -Befehl die Probleme.

Der spezifische Vorgang besteht darin, beim Speichern der Datei Folgendes einzugeben :w !sudo tee % . Zu diesem Zeitpunkt erinnert Sie vi daran, das Kennwort für den sudo-Vorgang einzugeben. Nach korrekter Eingabe wird die Datei gespeichert. Zu diesem Zeitpunkt können Sie die Datei sicher beenden :q!

Szenario 6: Wie man dafür sorgt, dass Tee Interrupt-Ereignisse ignoriert

Der Parameter -i ermöglicht es tee , Interrupt-Ereignisse (SIGINT) zu ignorieren.

ping baidu.com | tee -i ping.log

siehe:

https://www.howtoforge.com/linux-tee-command/

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden von Puppeteer zum Implementieren der Screenshot-Funktion für Webseiten unter Linux (CentOS)
  • Linux gibt Informationen aus und zeichnet sie in einer Datei auf (Befehl „tee“)

<<:  Eine kurze Diskussion über verschiedene Möglichkeiten zur Implementierung einer Front-End-JS-Sandbox

>>:  Grafisches Tutorial zur Installation und Konfiguration komprimierter Pakete in MySQL 8.0.16

Artikel empfehlen

So installieren Sie das Modul „lua-nginx-module“ in Nginx

ngx_lua_module ist ein Nginx-HTTP-Modul, das den ...

MySQL Community Server 5.7.19 Installationshandbuch (detailliert)

Link zum Download der ZIP-Datei auf der offiziell...

JavaScript zum Erzielen eines Klickbild-Flip-Effekts

Ich habe kürzlich an einem Projekt zur Gesichtser...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

MySQL-Fehlernummer 1129 – Lösung

SQLyog stellt eine Verbindung zu MySQL her, Fehle...

Detaillierte Erklärung des MySQL-Ausführungsplans

Die EXPLAIN-Anweisung liefert Informationen darüb...

JavaScript-Canvas zum Erzielen eines farbenfrohen Uhreffekts

Verwenden Sie Leinwand, um eine bunte Uhr zu schr...

So verbessern Sie die MySQL Limit-Abfrageleistung

Bei MySQL-Datenbankoperationen hoffen wir immer, ...