8 exemples de commande tee et utilisation sous Linux


Presque tous les utilisateurs expérimentés préfèrent utiliser l'interface de ligne de commande lors de l'interaction avec les systèmes Linux. Par défaut, toutes les commandes Linux affichent leur sortie sur le flux de sortie standard. Cependant, nous devons parfois stocker cette sortie dans les fichiers à des fins de débogage.

Certes, nous pouvons utiliser l'opérateur de redirection pour y parvenir. Cependant, l'une des limitations mineures de cette méthode est qu'elle stocke la sortie dans le fichier uniquement.

Pour surmonter cette limitation, nous pouvons utiliser la commande tee qui lit à partir du flux d'entrée standard et écrit dans le flux et les fichiers de sortie standard.

Dans ce guide pratique, nous verrons différents exemples de la commande tee. À la fin de ce guide, les utilisateurs de Linux seront en mesure d'utiliser la commande tee pour répondre à leurs besoins de programmation.

tee Syntaxe de la commande

La syntaxe de la commande tee est similaire aux autres commandes Linux. À un niveau élevé, il est divisé en deux groupes - OPTIONS et FILES :

$ tee [OPTIONS] [FILE1] [FILE2] [FILE3] ...

Dans la syntaxe ci-dessus, OPTIONS et FILES sont des paramètres facultatifs.

1. Enregistrer la sortie dans un fichier sous Linux

Comme indiqué précédemment, la commande tee envoie la sortie vers la sortie standard ainsi que vers le fichier. Pour comprendre cela, utilisons d'abord la commande echo pour afficher le texte sur le flux de sortie standard :

$ echo "linux-console.net"

Maintenant, utilisons la commande tee pour écrire la sortie dans le fichier output.txt :

$ echo "linux-console.net" | tee output.txt

Enfin, affichez le contenu du fichier output.txt à l'aide de la commande cat.

$ cat output.txt

Dans la sortie ci-dessus, nous pouvons voir que la commande tee envoie la sortie au fichier ainsi que le flux de sortie standard.

2. Ajouter la sortie au fichier sous Linux

Par défaut, la commande tee écrase les fichiers de sortie. Cependant, nous pouvons éviter cela en activant le mode d'ajout, qui ajoute la sortie à la fin du fichier :

$ echo "linux-console.net" | tee -a output.txt 
$ cat output.txt 

Dans cet exemple, nous avons utilisé l'option -a pour activer le mode d'ajout.

3. Écrire la sortie dans plusieurs fichiers sous Linux

De même, nous pouvons utiliser la commande tee pour écrire la sortie dans plusieurs fichiers, comme indiqué.

$ echo "linux-console.net" | tee file-1.txt file-2.txt file-3.txt

Dans cet exemple, nous avons fourni plusieurs fichiers comme arguments de ligne de commande. Maintenant, utilisons la commande head pour afficher le contenu des fichiers :

$ head -v file-1.txt file-2.txt file-3.txt

4. Envoyer la sortie d'une commande à une autre

De plus, nous pouvons également utiliser la commande tee avec l'opérateur pipe (|). Cette méthode est pratique lorsque nous voulons stocker la sortie et la transmettre à une autre commande.

$ echo "linux-console.net" | tee example.txt | wc -c
$ cat example.txt

Dans cet exemple, nous utilisons d'abord la commande tee pour écrire la sortie dans le fichier. Ensuite, nous utilisons la commande wc pour compter le nombre de caractères.

5. Masquer la sortie du fichier sous Linux

Dans les exemples précédents, nous avons utilisé la commande tee pour envoyer la sortie vers la sortie standard. Cependant, dans certains scénarios rares, nous voulons supprimer la sortie. Dans de tels cas, nous pouvons rediriger la sortie vers le périphérique /dev/null :

$ echo "linux-console.net" | tee output.txt > /dev/null
$ cat output.txt

6. Écrire la sortie dans un fichier privilégié

Parfois, nous devons écrire la sortie dans le fichier privilégié. Cependant, nous ne pouvons pas y parvenir en utilisant uniquement la commande tee. Dans de tels scénarios, nous pouvons utiliser la combinaison des commandes sudo et tee.

Commençons par changer le propriétaire du fichier à l'aide de la commande chown :

$ sudo chown root:root output.txt

Ajoutons ensuite du texte au fichier output.txt à l'aide de la commande suivante :

$ echo "linux-console.net" | sudo tee -a output.txt

Enfin, vérifions que le fichier a été mis à jour avec succès.

7. Modifier le fichier privilégié sous Linux

De la même manière, nous pouvons utiliser la combinaison des commandes sudo et tee pour modifier le fichier privilégié. Pour comprendre cela, ouvrons d'abord un fichier privilégié dans un éditeur Vim et ajoutons-y du texte :

$ vim output.txt

Maintenant, utilisons la commande Vim ci-dessous pour mettre à jour le fichier :

:w !sudo tee %

8. Ignorer le signal d'interruption (SIGINT)

Sous Linux, nous utilisons la combinaison de touches Ctrl+c pour envoyer le signal SIGINT. Le comportement par défaut de ce signal est de terminer le processus. Cependant, nous pouvons utiliser l'option -i pour ignorer l'interruption :

$ echo "linux-console.net" | tee -i example.txt
$ cat example.txt

Dans ce guide, nous avons découvert la commande tee à l'aide d'exemples pratiques. Les utilisateurs peuvent se référer à ce guide lorsqu'ils travaillent avec des systèmes Linux à partir de l'interface de ligne de commande.

Connaissez-vous un autre meilleur exemple de la commande tee sous Linux ? Faites-nous part de vos opinions dans les commentaires ci-dessous.