Při práci s terminálem v Linuxu je k dispozici mnoho nástrojů příkazového řádku, které vám usnadní život. Jedním z takových nástrojů je Tee . V tomto stručném průvodci se na praktických příkladech naučíme, co je Tee a jak se používá příkaz Tee v Linuxu.
Úvod do příkazu Tee
Odpaliště je jednoduchý nástroj příkazového řádku, který přijímá vstup a zapisuje výstup do souboru a standardní výstup (tj. terminál). Příkaz Tee se většinou používá ve skriptech shellu, když chcete přesměrovat výstup do více souborů a dále zpracovávat výstup.
Příkaz Tee je součástí GNU coreutils , takže je dodáván předinstalovaný se všemi distribucemi Linuxu.
Chcete-li zkontrolovat, zda je příkaz tee dostupný ve vaší distribuci Linuxu, spusťte následující příkaz:
$ which tee /usr/bin/tee
Chcete-li zkontrolovat verzi trička, můžete použít --version vlajka.
$ tee --version tee (GNU coreutils) 8.32
Zobrazit nápovědu k příkazu tee
Pokud jste nikdy nepoužili příkaz tee, je dobrým zvykem začít sekcí nápovědy k příkazu tee.
Chcete-li se o tomto nástroji dozvědět více, můžete přejít na stránku manuálu pro příkaz tee.
$ man tee
Můžete také předat --help příkaz argument to tee pro zobrazení manuálu nápovědy.
$ tee --help
Syntaxe příkazu Tee
Typická syntaxe příkazu Tee je uvedena níže:
tričko [MOŽNOST]… [SOUBOR]…
Přijímá příznaky a název souboru, kam bude výstup přesměrován.
Existují dva důležité příznaky, které budete většinou používat s příkazem tee.
-a,--appendflag :Připojit k souborům.-i,-ignore-interruptspříznak :Ignorovat signály přerušení.
Nyní mi dovolte, abych vám ukázal několik příkladů příkazu tee v Linuxu.
Příklady příkazů Linux Tee pro začátečníky
Jak již bylo řečeno, příkaz tee přijme vstup a vytiskne výstup na terminál, stejně jako soubor, který je předán jako argument.
V níže uvedeném příkladu příkaz tee přebírá vstup z echo a vytiskne výstup do terminálu i do hello.txt soubor.
$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix
Pojďme zkontrolovat obsah hello.txt soubor:
$ cat hello.txt Welcome to OSTechNix
Použijte příkaz tee s operátorem Pipe
Příkaz Tee není jen k vytištění standardního vstupu do terminálu a také k jeho přenosu do jiného programu pro další zpracování.
Většinou se příkaz tee bude používat v kombinaci s pipe (|) operátor ve skriptech shellu.
Podívejte se na níže uvedený příklad.
$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world
Dovolte mi vysvětlit, co se stane, když spustíte výše uvedený příkaz.
echopříkaz odešle svůj výstup"Hello World"jako vstup doteepříkaz přes potrubí.Teepříkaz uloží výstup do daného souboruhello.txt.- Namísto tisku výstupu na terminál, což je výchozí chování,
teepříkaz pass"Hello World"řetězec jako vstup dorevpříkaz, který vytiskne řetězec v opačném pořadí .
Zde je další příklad.
Následující příkaz vytvoří adresář s názvem "ostechnix", spočítá počet znaků v "ostechnix" a vytiskne "ostechnix" do terminálu:
$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)
Pozor: Možná budete muset použít sudo s tee Pokud vytváříte soubory v adresářích, ke kterým nemáte přístup jako běžný uživatel.
Předání více souborů
Příkaz Tee také přijímá více souborů jako argumenty a ukládá výstup do každého souboru.
$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix
Pojďme zkontrolovat obsah každého souboru:
$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix
Přepsat versus přidat
Výchozí chování tee příkaz je, že vyhledá, zda je soubor již dostupný, a přepíše data novým. Pokud soubor není k dispozici, vytvoří se.
Pokud chcete data místo přepsání připojit, použijte -a nebo --append vlajka.
$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop
Kombinace Tee s operátorem Redirection
Pokud si nepřejete tisknout výstup na terminál, ale pouze zapisovat výstup do souborů, můžete pak kombinovat operátor přesměrování s příkazem tee.
Toto je ideální případ pouze v případě, že příkaz tee přichází na řadu jako poslední. Je-li výstup T přesouván do jiného příkazu, jako je as
v prvním příkladu není potřeba používat operátor přesměrování.
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null
Signály přerušení
Příkaz Tee má možnost přerušit SIGINT pomocí -i nebo --ignore-interrupts vlajka.
Význam - pokud stisknete CTRL + C ve vašem terminálu, zatímco spouštíte příkaz tee s -i flag, příkaz tee přeruší signál a provede elegantní odchod načtením EOF z PIPE.
$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C $ cat hello1.txt
Hello world
Shrnutí
Tee je jednoduchý program, který nemusíte používat denně. Znalost příkazu tee se vám však bude hodit při psaní shellových skriptů. Doufám, že to pomůže.