GNU/Linux >> Linux Esercitazione >  >> Linux

Linux Tee Command Tutorial con esempi per principianti

Quando si lavora con il terminale in Linux, sono disponibili molte utilità da riga di comando per semplificarti la vita. Una di queste utilità è Tee . In questa breve guida impareremo cos'è Tee e l'uso del comando Tee in Linux con esempi pratici.

Introduzione al comando Tee

Il tee è una semplice utilità della riga di comando che accetta l'input e scrive l'output in un file e in un output standard (ad es. Terminale). Il comando Tee verrà utilizzato principalmente negli script di shell quando si desidera reindirizzare l'output su più file ed elaborare ulteriormente l'output.

Il comando Tee fa parte di GNU coreutils , quindi viene preinstallato con tutte le distribuzioni Linux.

Per verificare se il comando tee è disponibile nella tua distribuzione Linux, esegui il comando seguente:

$ which tee
/usr/bin/tee

Per verificare la versione tee, puoi utilizzare il --version bandiera.

$ tee --version
tee (GNU coreutils) 8.32

Visualizza la guida del comando tee

Se non hai mai usato tee command, è buona norma iniziare con la sezione della guida di tee command.

Puoi accedere alla pagina man del comando tee per saperne di più su questa utility.

$ man tee

Puoi anche passare il --help argomento per tee comando per visualizzare il suo manuale di aiuto.

$ tee --help

Sintassi del comando Tee

La sintassi tipica del comando Tee è riportata di seguito:

tee [OPZIONE]… [FILE]…

Accetta i flag e il nome del file in cui verrà reindirizzato l'output.

Ci sono due importanti flag che utilizzerai principalmente con il comando tee.

  • -a , --append flag :Aggiungi ai file.
  • -i , -ignore-interrupts flag :Ignora i segnali di interruzione.

Ora permettetemi di mostrarvi alcuni esempi di comando tee in Linux.

Esempi di comandi Linux Tee per principianti

Come già affermato, il comando tee accetterà l'input e stamperà l'output sul terminale, nonché un file che verrà passato come argomento.

Nell'esempio seguente, il comando tee riceve input da echo comando e stampa l'output sul terminale e su hello.txt file.

$ echo "Welcome to OSTechNix" | tee hello.txt
Welcome to OSTechNix

Controlliamo il contenuto di hello.txt file:

$ cat hello.txt 
Welcome to OSTechNix

Usa il comando tee con l'operatore Pipe

Il comando Tee non serve solo a stampare l'input standard sul terminale, ma anche a inviarlo a un altro programma per un'ulteriore elaborazione.

Per lo più il comando tee verrà utilizzato in combinazione con pipe (|) operatore negli script di shell.

Dai un'occhiata all'esempio qui sotto.

$ echo "Hello world" | tee hello.txt | rev
dlrow olleH
$ cat hello.txt
Hello world

Lascia che ti spieghi cosa succede quando esegui il comando precedente.

  • L'echo il comando invierà il suo output "Hello World" come input per il tee comando attraverso la pipe.
  • Tee il comando memorizzerà l'output nel file specificato hello.txt .
  • Invece di stampare l'output sul terminale, che è il comportamento predefinito, il tee passaggio di comando "Hello World" stringa come input per rev comando che stampa la stringa in ordine inverso .

Ecco un altro esempio.

Il comando seguente crea una directory chiamata "otechnix", conta il numero di caratteri in "otechnix" e stampa "otechnix" sul terminale:

$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)

Avviso: Potrebbe essere necessario utilizzare sudo con il tee comando se crei file in directory a cui non hai accesso come utente normale.

Trasferimento di più file

Il comando Tee accetta anche più file come argomenti e memorizza l'output in ogni file.

$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt
Welcome to OSTechNix

Controlliamo il contenuto di ogni file:

$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix

Sostituisci e aggiungi

Il comportamento predefinito della tee comando è che cercherà se il file è già disponibile e sovrascriverà i dati con quello nuovo. Se il file non è disponibile, creerà il file.

Se desideri aggiungere i dati invece di sovrascrivere, usa -a o --append bandiera.

$ 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

Combinazione di Tee con operatore di reindirizzamento

Se non desideri stampare l'output sul terminale ma semplicemente scrivere l'output su file, puoi quindi combinare l'operatore di reindirizzamento con il comando tee.

Questo è un caso ideale solo se il comando tee arriva per ultimo nella catena di pipe. Se l'output del tee viene reindirizzato a un altro comando come come
mostrato nel primo esempio, non è necessario utilizzare l'operatore di reindirizzamento.

$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null

Segnali di interruzione

Il comando Tee ha la possibilità di interrompere SIGINT usando il -i o --ignore-interrupts bandiera.

Significato - se premi CTRL + C nel tuo terminale mentre esegui il comando tee con -i flag, il comando tee interromperà il segnale ed eseguirà un'uscita aggraziata leggendo EOF dal PIPE.

$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world

Riepilogo

Tee è un semplice programma che potresti non utilizzare quotidianamente. Tuttavia, conoscere il comando tee tornerà utile quando si scrivono script di shell. Spero che questo aiuti.


Linux
  1. Linux expand Command Tutorial per principianti (con esempi)

  2. Tutorial sui comandi di Linux factor per principianti (con esempi)

  3. Linux yes Command Tutorial per principianti (con esempi)

  4. Tutorial sui comandi per utenti Linux per principianti (con esempi)

  5. Linux sum Command Tutorial per principianti (con esempi)

Linux sha1sum Command Tutorial per principianti (con esempi)

Tutorial sui comandi per l'aspetto di Linux per principianti (con esempi)

Esercitazione sui comandi lsattr Linux per principianti (con esempi)

Linux tload Command Tutorial per principianti (con esempi)

Linux znew Command Tutorial per principianti (con esempi)

Linux tr Command Tutorial per principianti (con esempi)