GNU/Linux >> Linux Esercitazione >  >> Linux

9 Esempi di comandi tee in Linux

Il comando Linux Tee è uno strumento da riga di comando, legge dallo standard input e scrive il risultato nello standard output e nei file allo stesso tempo. In altre parole, possiamo dire, il comando tee in Linux usato per colpire due piccioni con una fava:lettura dallo standard input e stampa del risultato su un file e allo standard output contemporaneamente. Cosa intendiamo con questo? In questa guida, faremo più luce sul comando tee di Linux e utilizziamo alcuni esempi per dimostrarne l'utilizzo.

Sintassi del comando Tee

La sintassi del comando tee è abbastanza semplice e assume il seguente formato:

$ tee OPTIONS nomefile

Ecco alcune delle opzioni che puoi utilizzare con il comando tee:

Nella sintassi del comando tee, il nome del file si riferisce a uno o più file.

Con questo in mente, diamo un'occhiata ad alcuni esempi su come viene utilizzato il comando.

Esempio 1) Utilizzo di base del comando tee

Come descritto in precedenza, la funzione principale del comando tee è visualizzare l'output di un comando (stdout) e salvarlo in un file. Nell'esempio seguente, il comando che stiamo ispezionando i dispositivi a blocchi nel nostro sistema e inviando i risultati al comando tee che mostra l'output al terminale salvandolo contemporaneamente su un nuovo file chiamato block_devices.txt

$ lsblk | tee block_devices.txt

Sentiti libero di esaminare il contenuto del file block_devices.txt usando il comando cat come mostrato:

$ cat block_devices.txt

Esempio 2) Salva l'output del comando su più file usando tee

Inoltre, puoi scrivere l'output di un comando su diversi file separati da spazi come mostrato nella sintassi seguente.

$ comando | tee file1 file2 file3 . . .

Nell'esempio seguente, abbiamo invocato il comando hostnamectl per stampare il nome host del nostro sistema tra gli altri dettagli e salvare l'output standard su due file file1.txt e file2.txt

$ hostnamectl | tee file1.txt file2.txt

Ancora una volta, puoi confermare l'esistenza dell'output nei due file usando il comando cat come mostrato:

$ cat file1.txt
$ cat file2.txt

Esempio 3) Sopprime l'output del comando tee

Se vuoi nascondere o sopprimere il comando tee dalla stampa dell'output sullo schermo, reindirizza l'output a /dev/null come mostrato:

$ comando | tee> /dev/null

Ad esempio,

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

Esempio 4) Aggiungi l'output a un file con il comando tee

Per impostazione predefinita, il comando tee sovrascrive il contenuto di un file. Per aggiungere l'output e impedire la cancellazione del contenuto corrente, utilizzare le opzioni -a o -append.

$ comando | tee -un file

Nel secondo comando, come mostrato, abbiamo aggiunto il comando output of date a file1.txt che contiene già le informazioni sui dispositivi USB presenti nel sistema.

$ date | tee -a file1.txt

Esempio 5) Usa tee insieme al comando sudo

Supponiamo che come utente sudo, desideri scrivere su un file di proprietà dell'utente root. Naturalmente, qualsiasi operazione con privilegi elevati richiederà di richiamare l'utente sudo prima del comando.

Per ottenere ciò, anteponi semplicemente il comando tee con sudo come mostrato di seguito.

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

Quindi, tee riceve l'output del comando echo a sinistra e lo eleva usando il comando sudo che alla fine aggiunge l'output al file.

Esempio 6) Reindirizzare l'output di un comando a un altro usando il comando tee

Usando il comando tee, possiamo facilmente reindirizzare l'output di un comando a un altro comando. Qui l'output del primo comando fungerà da input per il secondo comando. L'esempio è mostrato di seguito:

$ grep 'root' /etc/passwd | tee /tmp/passwd.tmp | wc -l
2
$ cat /tmp/passwd.tmp
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$

Esempio 7) Salvare le modifiche in un file all'interno dell'editor vi con il comando tee

Supponiamo che tu stia lavorando come utente non root e stai apportando modifiche al file di proprietà di root e ti dimentichi di mettere sudo davanti al comando e ora vuoi salvare le modifiche, l'esempio è mostrato di seguito:

$ vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.60   mail.linuxtechi.com
192.168.1.50   ns.linuxtechi.com
192.168.1.40    pxe.linuxtechi.com

Durante il salvataggio delle modifiche al file, riceverai un messaggio di sola lettura,

Ora per salvare le modifiche al file /etc/hosts all'interno dell'editor vi, esegui

:w !sudo maglietta %

Ti verrà chiesto di inserire la password dell'utente, se l'utente ha i diritti sudo, le modifiche verranno salvate.

Esempio 8) Ignora il segnale di interruzione mentre usi il comando tee

L'uso dell'opzione '-i' nel comando tee può ignorare il segnale di interruzione (CTRL-C), l'esempio è mostrato di seguito:

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

Esempio 9) utilizzo del comando tee nello script della shell

Il comando Tee è anche usato frequentemente negli script di shell, uno degli esempi più comuni è elencato di seguito:

$ vi basic-script.sh
#!/bin/bash
LOGFILE=/tmp/basic-logs-$(date +%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 'installed' /var/log/dnf.log | tee -a $LOGFILE
else
   echo 'do nothing'
fi

Come possiamo vedere nello script della shell Linux sopra, stiamo usando il comando tee per aggiungere gli output di due comandi a un file di registro solo se il sistema operativo è CentOS.

Conclusione

Questo conclude l'argomento di oggi. Sentiti libero di valutare. Il tuo feedback è il benvenuto. In questa guida abbiamo trattato il comando tee di Linux.


Linux
  1. sa Esempi di comandi in Linux

  2. w Esempi di comandi in Linux

  3. ac Esempi di comandi in Linux

  4. Esempi di comandi df in Linux

  5. du Esempi di comandi in Linux

16 Esempi di comandi Echo in Linux

9 esempi di comandi diff in Linux

Opzioni di comando ed esempi di Tee Command in Linux

Esempi di comandi tee Linux

Spiegazione del comando tee di Linux (con esempi)

Esempi di comandi id in Linux