GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Linuxový příkaz tee

Úvod

Když uživatel provede příkaz v interaktivním prostředí Linuxu, výstup se zobrazí v textovém terminálu. Existují však způsoby, jak toto chování změnit pomocí dalších příkazů shellu zapojených do potrubí.

V tomto tutoriálu se naučíte, jak používat příkaz tee v Linuxu ke správě výstupu příkazu.

Předpoklady

  • Systém se systémem Linux
  • Přístup k příkazovému řádku nebo terminálu
  • Oprávnění sudo

Co dělá tee Command v Linuxu?

tee příkaz čte standardní vstup (stdin) a zapisuje jej jak na standardní výstup (stdout), tak na jeden nebo více souborů. tee je obvykle součástí kanálu a může mu předcházet nebo následovat libovolný počet příkazů.

Příkazy tee v Linuxu s příklady

tee příkaz se používá samostatně nebo s dalšími možnostmi. V následujících částech jsou uvedeny dostupné možnosti a příklady použití příkazů.

Základní použití

Základní syntaxe pro tee příkaz je:

[command] | tee [options] [filename]

Níže uvedený příklad ukazuje použití tee k vytvoření souboru, který ukládá informace o síťovém rozhraní a zároveň poskytuje stejný výstup v terminálu:

Příkaz cat potvrzuje, že tee úspěšně zapsal výstup ifconfig do souboru example.txt :

Pokud soubor použitý pro příkaz již existuje, tee přepíše předchozí obsah souboru.

Přidat k danému souboru

Přepsání obsahu souboru je výchozí chování tee příkaz. Použijte argument -a (nebo --append ), chcete-li přidat výstup příkazu na konec souboru.

[command] | tee -a [filename]

Použijte například echo příkaz k připojení řádku textu k souboru:


Úspěšné přidání potvrďte pomocí cat příkaz:

Zápis do více souborů

Použijte tee následovaný libovolným počtem souborů pro zápis stejného výstupu do každého z nich:

[command] | tee [options] [filename1] [filename2]...

Níže uvedený příklad ukazuje zápis výstupu echo příkaz do dvou souborů:

ls příkaz ukazuje, že tee úspěšně vytvořené soubory example1.txt a example2.txt .

Skrýt výstup

Chcete-li říct tee pro uložení výstupu příkazu do souboru a přeskočení výstupu z terminálu použijte následující syntaxi:

[command] | tee [options] [filename] >/dev/null

V níže uvedeném příkladu tee vytvoří soubor obsahující data síťového rozhraní, přičemž přeskočí standardní výstup:

Přesměrovat výstup jednoho příkazu na druhý

tee nemusí být posledním příkazem v potrubí. Použijte jej k předání výstupu jinému příkazu:

[command] | tee [options] [filename] | [command]

V následujícím příkladu tee ukládá výstup ls do example.txt a předá obsah tohoto souboru příkazu grep, který najde a zobrazí všechny výskyty slova „example“:

Ignorovat přerušení

Chcete-li povolit tee pro správné ukončení i po přerušení předchozího příkazu přidejte argument -i (nebo --ignore-interrupts ):

[command] | tee -i [filename]

Další příklad ukazuje tee zápis výstupu z příkazu ping a úspěšné dokončení akce i po ping je přerušeno pomocí Ctrl+C :

Používání tee se sudem

Chcete-li povolit tee chcete-li zapisovat do souboru vlastněného rootem nebo do souboru, který patří jinému uživateli, umístěte příkaz sudo přímo před tee .

[command] | sudo tee [options] [filename]

Níže uvedený příklad ukazuje neúspěšný pokus o zápis do sudoex.txt vlastněného rootem . Když sudo je přidán příkaz, operace se dokončí:

Použití tee v editoru Vim

Pokud otevřete a upravíte soubor vlastněný root ve Vimu bez použití sudo při pokusu o uložení změn dojde k chybě:

Chcete-li tuto chybu přepsat, zadejte do Vim následující:

:w !sudo tee %

Po zadání sudo heslo, Vim zobrazí varování, ale zapíše změny do souboru.

Diagnostika chyb při zápisu do jiných kanálů

Chcete-li poučit tee k vytištění chybové zprávy, když proces selže, použijte -p argument:

[command] | tee -p [filename]

Výchozí akce tee -p je ukončit a vytisknout chybovou zprávu ihned po zjištění chyby zápisu do roury. Chcete-li změnit chování příkazu při chybě zápisu, použijte --output-error argument, za nímž následuje režim určující chování:

[command] | tee --output-error=[mode] [filename]

Existují čtyři možné režimy:

  • warn – diagnostikuje chyby zápisu do libovolného výstupu.
  • warn-nopipe – diagnostikuje chyby zápisu na jakýkoli výstup mimo potrubí.
  • exit – ukončí se při chybovém zápisu na jakýkoli výstup.
  • exit-nopipe – ukončí se při chybovém zápisu na jakýkoli výstup bez potrubí.

Použijte příkaz tee se skriptem Bash

tee příkaz se často nachází v bash skriptech. Zvažte následující příklad:

Výše uvedený skript vytiskne zprávu „Hello World“ a uloží výstup do souboru protokolu. Spuštěním skriptu se vytvoří soubor protokolu v tmp složka. Protokol obsahuje výstup skriptu:

Sledování souborů protokolu

Zápis výstupu skriptu do souboru protokolu se obvykle provádí pomocí > operátor:

./testbash.sh > testbash.log

Výše uvedený příkaz vytvoří soubor protokolu, ale nezapíše nic na standardní výstup.

Použijte tee vytvořit soubor protokolu a zobrazit výstup v terminálu:

./testbash.sh | tee testbash.log

Viz Nápověda a informace o verzi

Podívejte se na aktuální verzi tee příkaz zadáním:

tee --version

Pokyny týkající se tee syntaxi příkazu a dostupné argumenty, použijte argument nápovědy příkazu:

tee --help

Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz id v Linuxu

  1. Jak používat příkaz sudo v Linuxu

  2. Jak používat Su Command v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat Linux na Command

  2. Jak používat příkaz locate v Linuxu

  3. Jak používat příkaz historie Linuxu