GNU/Linux >> Znalost Linux >  >> Linux

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

Linuxový příkaz Tee je nástroj příkazové řádky, čte ze standardního vstupu a výsledek zapisuje na standardní výstup a současně do souborů. Jinými slovy, můžeme říci, příkaz tee v Linuxu používaný k zasažení dvou much jednou ranou:čtení ze standardního vstupu a tisk výsledku do souboru a současně na standardní výstup. co tím myslíme? V této příručce vrhneme více světla na linuxový příkaz tee a na několika příkladech demonstrujeme jeho použití.

Syntaxe příkazu Tee

Syntaxe příkazu tee je poměrně jednoduchá a má následující formát:

$ TEe OPTIONS název souboru

Zde jsou některé z možností, které můžete použít s příkazem tee:

V syntaxi příkazu tee název souboru odkazuje na jeden nebo více souborů.

S ohledem na to se podívejme na několik příkladů, jak se příkaz používá.

Příklad 1) Základní použití příkazu tee

Jak bylo popsáno dříve, hlavní funkcí příkazu tee je zobrazit výstup příkazu (stdout) a uložit jej do souboru. V níže uvedeném příkladu je příkaz, kterým kontrolujeme bloková zařízení v našem systému a výsledky převádíme do příkazu tee, který zobrazí výstup na terminál a zároveň jej uloží do nového souboru s názvem block_devices.txt

$ lsblk | tee block_devices.txt

Neváhejte a prozkoumejte obsah souboru block_devices.txt pomocí příkazu cat, jak je znázorněno:

$ cat block_devices.txt

Příklad 2) Uložte výstup příkazu do více souborů pomocí tee

Kromě toho můžete zapsat výstup příkazu do několika souborů oddělených mezerou, jak je znázorněno v syntaxi níže.

$ příkaz | tee soubor1 soubor2 soubor3 . . .

V následujícím příkladu jsme vyvolali příkaz hostnamectl k vytištění názvu hostitele našeho systému mezi jinými detaily a uložení standardního výstupu do dvou souborů file1.txt a file2.txt

$ hostnamectl | tee soubor1.txt soubor2.txt

Ještě jednou můžete potvrdit existenci výstupu ve dvou souborech pomocí příkazu cat, jak je znázorněno:

$ cat file1.txt$ cat file2.txt

Příklad 3) Potlačit výstup příkazu tee

Pokud chcete skrýt nebo potlačit tisk výstupu příkazu tee na obrazovce, přesměrujte výstup do /dev/null, jak je znázorněno:

$ příkaz | tee soubor> /dev/null

Například,

$ df -Čt | tee file4.txt> /dev/null

Příklad 4) Připojte výstup k souboru pomocí příkazu tee

Ve výchozím nastavení příkaz tee přepíše obsah souboru. Chcete-li připojit výstup a zabránit vymazání aktuálního obsahu, použijte volbu -a nebo –append.

$ příkaz | tee -a soubor

Ve druhém příkazu, jak je znázorněno, jsme přidali výstup příkazu date do souboru file1.txt, který již obsahuje informace o zařízeních USB v systému.

$ datem | tee -a soubor1.txt

Příklad 5) Použijte tee společně s příkazem sudo

Předpokládejme, že jako uživatel sudo chcete zapisovat do souboru, který vlastní uživatel root. Přirozeně, jakákoli operace se zvýšenými oprávněními bude vyžadovat, abyste před příkazem vyvolali uživatele sudo.

Chcete-li toho dosáhnout, jednoduše před příkazem tee uveďte sudo, jak je znázorněno níže.

$ echo "10.200.50.20 db-01" | sudo tee -a /etc/hosts/

Takže tee obdrží výstup příkazu echo vlevo a zvýší jej pomocí příkazu sudo, který nakonec výstup připojí k souboru.

Příklad 6) Přesměrujte výstup jednoho příkazu na jiný pomocí příkazu tee

Pomocí příkazu tee můžeme snadno přesměrovat výstup jednoho příkazu na příkaz jiný. Zde bude výstup prvního příkazu fungovat jako vstup pro druhý příkaz. Příklad je uveden níže:

$ grep 'root' /etc/passwd | tee /tmp/passwd.tmp | wc -l2$ cat /tmp/passwd.tmproot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin$

Příklad 7) Uložte změny do souboru v editoru vi pomocí příkazu tee

Předpokládejme, že pracujete jako uživatel bez oprávnění root a provádíte změny v souboru vlastněném rootem a zapomenete dát sudo před příkaz a nyní chcete uložit změny, příklad je ukázán níže:

$ vi /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4192.168.1.60   mail.linuxtechi.com192.168.1.50   ns.linuxtechi.com192.0 px. před> 

Při ukládání změn do souboru se zobrazí zpráva pouze pro čtení,

Nyní chcete-li uložit změny do souboru /etc/hosts v editoru vi, spusťte

:w !sudo tee %

Vyzve vás k zadání hesla uživatele, pokud má uživatel práva sudo, změny se uloží.

Příklad 8) Ignorujte signál přerušení při použití příkazu tee

Použití volby „-i“ v příkazu tee může ignorovat signál přerušení (CTRL-C), příklad je uveden níže:

$ ping -c 5 linuxtechi.com  | tee -i /tmp/pingtest.tmp

Příklad 9) použití příkazu tee ve skriptu shell

Příkaz Tee se také často používá ve skriptech shellu, jeden z běžných příkladů je uveden níže:

$ vi basic-script.sh#!/bin/bashLOGFILE=/tmp/basic-logs-$(datum +%d%m%Y)FLAVOR=$(cat /etc/*-release  | grep -w 'NAME=' | cut -d"=" -f2 | awk '{print $1}'| sed 's/"//g')if [ $FLAVOR ==CentOS ];then   dmesg | grep -i 'error' | tee -a $LOGFILE   grep -i 'instalováno' /var/log/dnf.log | tee -a $LOGFILEelse   echo 'nedělat nic'fi

Jak můžeme vidět ve výše uvedeném skriptu linuxového shellu, používáme příkaz tee k připojení výstupů dvou příkazů do souboru protokolu pouze v případě, že OS je CentOS.

Závěr

Tímto končí dnešní téma. Neváhejte a zvažte. Vaše zpětná vazba je velmi vítána. V této příručce jsme se zabývali příkazem tee pro Linux.


Linux
  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů rm v Linuxu

  1. Příklady příkazů ps v Linuxu

  2. sa Příklady příkazů v Linuxu

  3. w Příklady příkazů v Linuxu

  1. Příklady příkazů ac v Linuxu

  2. Příklady příkazů df v Linuxu

  3. du příklady příkazů v Linuxu