GNU/Linux >> Znalost Linux >  >> Linux

Linuxový příkaz tee vysvětlen (s příklady)

Když na terminálu spouštíte základní příkazy, výstup je obvykle vytištěn na terminál, tj. standardní výstup. Ale co kdybyste mohli také uložit výstup do souboru a vytisknout jej na standardní výstup? To je to, co dělá příkaz tee. Linuxový příkaz tee čte ze stdin ( standardní vstup ) a poté zapisuje do stdout ( standardní výstup ) a také do souboru nebo více souborů.

Základní syntaxe příkazu tee

Příkaz tee má následující syntaxi.

příkaz $ | tee [ možnosti ] soubor(y)

Ukažme si nyní několik příkladů použití příkazu tee.

Základní použití příkazu tee

Předpokládejme, že chceme vytisknout paměť a vyměnit využití pomocí free a uložte výstup do souboru s názvem memory_usage.txt . Příkaz tee by byl vyvolán následovně.

$ free -h | tee memory_usage.txt

Příkaz tee čte z příkazu a výstup uloží do memory_usage.txt soubor a poté jej vytiskne na standardní výstup.

Pro potvrzení byl výstup uložen do memory_usage.txt spusťte příkaz cat podle obrázku.

$ cat memory_usage.txt

Zapište výstup do více souborů

Kromě toho můžete výstup uložit do více souborů, jak je znázorněno

příkaz $ | tee [ možnosti ] soubor1 soubor2 …

V níže uvedeném příkazu zadejte řetězec „Hey, Welcome to Linux“ je uložen ve dvou textových souborech:file1.txt a soubor2.txt

$ echo Hey, Welcome to Linux | tee file1.txt file2.txt

Připojit obsah k souboru

Obvykle příkaz tee přepíše soubor, a to není vždy žádoucí, protože může vymazat existující data, která jsou klíčová. Naštěstí můžete použít -a možnost připojit text k souboru. Pojďme to otestovat.

Nejprve napíšeme výstup uptime do stats.txt soubor podle obrázku.

Doba provozu $ | tee stats.txt

Použijte kočku příkaz k ověření.

$ cat stats.txt

Dále připojíme výstup free -h příkaz, který vytiskne naši paměť a využití swapu do souboru.

$ free -h | tee -a stats.txt

Ještě jednou ověřte obsah stats.txt soubor. Tentokrát bude soubor obsahovat výstup dvou příkazů, jak je uvedeno na obrázku níže. Je to proto, že jsme přidali výstup free -h do stats.txt a proto stávající text nebyl ovlivněn.

Potlačit výstup příkazu tee

Pokud si nepřejete mít výstup z tee příkaz vytištěný na standardní výstup, můžete jej přesměrovat na /dev/null což je speciální zařízení, které zahazuje informace, které jsou do něj přiváděny.

Vezměte si příklad níže, kde tiskneme výstup df -Th příkaz do textového souboru, ale potlačení výstupu na terminálu.

$ df -Th | tee disk_usage.txt >/dev/null

Nechte příkaz tee ignorovat přerušení

Někdy můžete chtít zastavit příkaz, který nepřetržitě běží. Když k tomu dojde, můžete zvážit, zda příkaz tee elegantně ukončit i po přerušení programu. Chcete-li to provést, použijte -i nebo –ignore-interrupts možnost uvedená v zobrazené syntaxi.

příkaz $ | tee -i název_souboru

Níže uvedený příkaz ping nepřetržitě odesílá požadavky ping na DNS společnosti Google (8.8.8.8). Příkaz jsme přerušili po 4 po sobě jdoucích požadavcích ping. Pro tričko příkaz k elegantnímu ukončení vyvolejte -i možnost.

$ ping 8.8.8.8 | tee -i ping_stats.txt

Bez -i možnost, výstup a souhrn statistiky se nevytisknou.

Použijte příkaz tee se sudo

Když upravujete soubory vlastněné uživatelem root nebo jiným přihlášeným uživatelem, jednoduché použití příkazu tee bez vyvolání příkazu sudo způsobí chybu.

V níže uvedeném příkladu vytváříme nové úložiště s názvem anydesk-stable.list pro aplikaci AnyDesk v /etc/apt/sources.list.d cesta, která je rezervou pro uživatele root.

$ echo "deb http://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list

Podle očekávání jsme narazili na chybu „oprávnění odepřena“, protože nemáme oprávnění k vytvoření nebo úpravě souboru v této cestě.

Řešením je předcházet tee pomocí příkazu sudo, jak je znázorněno.

$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

Při této příležitosti je příkaz úspěšný po umístění sudo před tee.

Získejte pomoc s příkazem tee

Chcete-li získat další možnosti příkazů a pomoc při používání příkazu tee, spusťte příkaz níže.

$ tee --help

Kromě toho prozkoumejte manuálové stránky podle obrázku

$ man tee

Chcete-li zkontrolovat verzi, spusťte:

$ tee --version

Shrnutí

To je vše o linuxovém příkazu tee. Je pozoruhodné, že příkaz čte ze standardního vstupu ( stdin ) a poté zapisuje do standardního výstupu ( stdout ) a souborů.


Linux
  1. Příkaz vypnutí Linuxu s příklady

  2. Příkaz Linux Traceroute, vysvětlený s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux cut Command Vysvětlení pomocí 6 příkladů

  3. Linux Tee Command s příklady

  1. 9 příkladů příkazů tee v Linuxu

  2. Linux ip příkaz s příklady

  3. Linuxový tee příkaz vysvětlený pro začátečníky (6 příkladů)