Comment utiliser la commande tee sous Linux

Comment utiliser la commande tee sous Linux

Points clés à retenir

  • La commande « tee » sous Linux enregistre la sortie d’une commande dans un fichier tout en l’affichant également sur le terminal.
  • Il peut également écrire la sortie dans plusieurs fichiers simultanément, permettant une sauvegarde et un suivi faciles des journaux système.
  • La commande « tee » peut également être utilisée avec d’autres commandes via piping. Cela permet un traitement ultérieur de la sortie tout en l’enregistrant dans un fichier. Par exemple, vous pouvez l’utiliser avec « ls » dans cette commande : « ls ~ | liste de départs.txt”

La teecommande peut enregistrer le résultat de vos commandes pour une révision ultérieure. Cette commande affiche non seulement le résultat à l’écran, mais l’enregistre également dans un fichier journal séparé . Supposons que vous souhaitiez enregistrer la sortie de la commande df dans un fichier afin de pouvoir suivre l’utilisation de votre espace disque au fil du temps. Cette commande vous aide à dépanner un processus car elle conserve un enregistrement écrit des processus.

Qu’est-ce que la commande tee sous Linux ?

La commande Linux teeest un outil utile pour gagner du temps et améliorer l’efficacité sous Linux. Il peut lire l’ entrée standard (stdin) et l’écrire à la fois sur la sortie standard (stdout) et sur le ou les fichiers que vous spécifiez. La teecommande fonctionne comme un tuyau en forme de T qui divise l’eau en deux directions. Il vous permet de visualiser la sortie d’un programme et de l’enregistrer simultanément dans un fichier.

La teecommande fait les deux choses ensemble. Il vous permet de copier la sortie dans les fichiers ou variables que vous choisissez et de vous l’afficher. Cette commande est également utilisée dans les scripts shell et les commandes de terminal pour envoyer la sortie à différents emplacements. Vous pouvez utiliser la teecommande pour effectuer des sauvegardes , rechercher des erreurs dans les scripts et suivre les journaux système.

La teecommande vous permet également de la diriger vers d’autres commandes . De cette façon, vous pouvez enregistrer la sortie dans un fichier et la traiter davantage avec n’importe quelle autre commande.

Presque toutes les distributions Linux sont livrées avec la teecommande préinstallée, qui fait partie du package Coreutils.

La teecommande suit une syntaxe similaire à celle des autres commandes Linux. Il a deux arguments, –OPTIONS et FILES :

tee [OPTION]... [FILE]...

Pour savoir quelle version de la teecommande vous utilisez, exécutez simplement la commande suivante :

tee --version

Version de la commande tee sur le terminal

Si vous avez besoin d’aide avec la syntaxe et les arguments disponibles pour la teecommande, tapez ceci :

tee --help

aide à la commande tee

Options de commande de tee

La teecommande dispose de plusieurs options pour modifier sa fonctionnalité. Le tableau ci-dessous présente quelques options qui vous aideront à utiliser la teecommande efficacement :

Option

Description

-a or --append

Ajoutez la sortie à la fin des fichiers au lieu de les écraser.

-i or --ignore-interrupts

Ignorez les signaux d’interruption tels que Ctrl+C.

-p or --output-error

Imprimez un message d’erreur sur l’erreur standard pour chaque erreur qui se produit lors de l’écriture dans des fichiers.

--help

Afficher une aide de base relative aux options de commande.

--version

Affichez la teeversion de la commande.

Enregistrer la sortie dans un fichier sous Linux à l’aide de tee

La teecommande enregistre la sortie d’une commande dans un fichier tout en l’affichant également sur le terminal. Par exemple, la teecommande vous permettra de voir les fichiers et répertoires de votre répertoire personnel et de les enregistrer également dans un fichier séparé. Pour ce faire, dirigez la teecommande avec la commande ls comme suit :

ls ~ | tee list.txt

ls avec la commande tee et enregistrez la sortie dans un fichier texte

Cela affichera tous les fichiers et répertoires de votre répertoire personnel et les écrira dans « list.txt ». Pour afficher le contenu du « list.txt », utilisez n’importe quel éditeur de texte ou commande comme cat , less ou morecommand.

cat list.txt

commande cat pour lire un fichier texte de liste

Exécutons un autre exemple avec une commande echo pour enregistrer et afficher la sortie. Tout d’abord, utilisez la echocommande pour imprimer du texte sur le terminal. Après cela, dirigez la teecommande avec la echocommande pour écrire le même texte dans un fichier appelé « output.txt ».

echo "Welcome to Ubuntu"| tee output.txt

pipe de commande echo avec la commande tee

Enfin, utilisez la commande cat pour vérifier le contenu du fichier « output.txt ».

cat output.txt

commande cat pour lire le contenu d'un fichier texte

Écrire la sortie dans plusieurs fichiers sous Linux à l’aide de tee

La teecommande peut également écrire la sortie dans plusieurs fichiers simultanément. Il vous suffit de définir les noms de fichiers après la teecommande dans laquelle vous souhaitez écrire. Séparez-les simplement par des espaces.

Par exemple, pour enregistrer le résultat de la echocommande dans trois fichiers différents, utilisez la syntaxe suivante :

echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt

commande echo transmise avec la commande tee avec plusieurs noms de fichiers

Cela écrira la chaîne « Bienvenue sur Ubuntu » dans trois fichiers : file1.txt, file2.txt et file3.txt. Il les affiche également sur le terminal. Pour afficher le contenu de ces fichiers, utilisez la commande catouhead :

head -v file1.txt file2.txt file3.txt

commande head pour lire le contenu de plusieurs fichiers texte

De même, la catcommande affichera également le résultat identique :

cat -v file1.txt file2.txt file3.txt

commande cat pour lire le contenu de plusieurs fichiers texte

Vous pouvez écrire la sortie dans n’importe quel nombre de fichiers avec la teecommande. Tapez simplement les noms de fichiers après la teecommande avec des espaces entre eux.

Ajouter la sortie à un fichier à l’aide de tee

La teecommande sous Linux écrase le contenu du fichier par défaut. L’ option -aou avec la commande vous permet d’ajouter la sortie à la fin des fichiers au lieu de remplacer leur contenu.--appendtee

Avant d’ajouter des données au fichier, vérifions les données actuelles placées dans le fichier à l’aide de la commande ci-dessous :

cat output.txt

commande cat pour lire les données du fichier output.txt

Maintenant, nous pouvons ajouter les nouvelles données sans les écraser en tapant ceci :

echo "tee Command on Linux"| tee -a output.txt

commande echo canalisée avec un tee et une option -a pour ajouter la sortie au fichier existant

Cela ajoutera la sortie d’une commande à la fin de output.txt, sans supprimer aucun contenu précédent. Pour vérifier, exécutez la catcommande :

cat output.txt

commande cat qui lit le fichier texte de sortie

Masquer la sortie à l’aide du tee

Parfois, vous souhaiterez peut-être stocker le résultat d’une commande dans un fichier sans l’afficher sur le terminal. Cela peut être utile si vous souhaitez exécuter une commande en silence, sans encombrer votre terminal avec des sorties inutiles. Dans de tels cas, vous devez diriger la sortie de la commande vers l’ /dev/nullappareil. Le /dev/nullest souvent appelé « périphérique nul » ou « fichier nul ». Il agit comme un récepteur de données, ce qui signifie que toutes les données qui y sont écrites sont supprimées et ne sont stockées nulle part.

Voici une façon de masquer le résultat de la echocommande :

echo "Welcome to Ubuntu"| tee output.txt > /dev/null

commande echo transmise avec la commande tee et le périphérique dev null

Cela écrira la sortie d’une commande dans output.txt et l’enverra également à /dev/null, ce qui la masquera efficacement de l’écran. Cependant, la catcommande vous permettra de vérifier le résultat en affichant le contenu du fichier :

cat output.txt

commande cat pour lire le contenu du fichier texte-1

Rediriger la sortie d’une commande vers une autre à l’aide de tee

La teecommande peut également rediriger la sortie d’une commande vers un fichier ou toute autre commande. La teecommande avec un tube (|) vous permettra d’envoyer la sortie de la première commande à la fois à la sortie standard et à la deuxième commande ou fichier. Prenons l’exemple suivant :

echo "This is Ubuntu"| tee output.txt | wc -c

commande echo diffusée avec tee et wc pour rediriger la sortie

Le echorésultat de la commande « Bienvenue sur Ubuntu » est écrit dans le fichier output.txt. Après cela, l’opérateur de pipeline est utilisé avec la teecommande. Cela transmettra le contenu du fichier à la commande wc . La wccommande affichera le nombre total de caractères comptés et affichera une valeur entière.

Pour vérifier si la teecommande a également écrit la sortie dans un fichier, utilisez la catcommande pour afficher le contenu du fichier :

cat output.txt

Commande Cat qui lit le fichier texte de sortie

Utiliser la commande tee avec sudo

Lorsque vous utilisez la teecommande, elle écrit le résultat d’une commande dans un fichier normal. Cependant, certains fichiers et répertoires tels que les répertoires système ou les fichiers protégés nécessitent des privilèges de superutilisateur pour être modifiés. Pour écrire dans ces fichiers ou dans des fichiers appartenant à d’autres utilisateurs, utilisez tee-les conjointement avec sudo.

Dans l’exemple ci-dessous, lorsque vous essayez d’écrire un fichier « file.conf » appartenant à la racine sans utiliser sudo , cela vous donnera une erreur d’autorisation refusée.

echo "This is Ubuntu"| tee -a /etc/file.conf

commande echo transmise avec la commande tee sans autorisation sudo

Cependant, lorsque vous utilisez la commande sudowith tee, celle-ci s’exécutera sans aucune erreur. Vous pouvez utiliser la sudocommande pour exécuter la teecommande en tant qu’utilisateur root ou propriétaire du fichier. Ajoutez simplement sudola teecommande :

echo "This is Ubuntu"| sudo tee -a /etc/file.conf

commande echo transmise avec la commande tee avec l'autorisation sudo

Tout d’abord, la teecommande prendra le echorésultat de la commande. Après cela, il élève les sudoautorisations et écrit le texte dans le fichier.

Exemples d’utilisation de tee dans un script Bash

La teecommande peut être utile dans divers scénarios de script. Il vous aide à enregistrer ou capturer le résultat d’une commande pour un traitement ultérieur ou un débogage. La teecommande affichera non seulement la sortie, mais l’enregistrera également dans un ou plusieurs fichiers pour une utilisation ultérieure.

Par exemple, si vous souhaitez voir la date et l’heure sur le terminal et également les écrire dans un fichier nommé log.txt, utilisez le script bash suivant :

#!/bin/bashdate | tee log.txt

Script Bash pour enregistrer la date dans le fichier journal

Dans ce cas, l’entrée standard est la sortie de la commande date, qui affiche la date et l’heure actuelles. La teecommande écrit cette sortie sur le terminal et dans le fichier log.txt. Si le fichier log.txt n’existe pas, il sera créé. S’il existe, il sera écrasé, sauf si vous utilisez l’ -aoption d’ajout au fichier.

cat log.txt

Commande Cat qui lit le contenu du fichier journal

#!/bin/bashdate | tee log1.txt log2.txt

Script Bash pour écrire plusieurs fichiers à l'aide de la commande tee

Ce script imprime la date et l’heure sur le terminal et dans deux fichiers nommés log1.txt et log2.txt. Lisez le contenu des deux fichiers à l’aide catde la commande.

cat log1.txt log2.txt

Commande Cat qui lit le contenu de plusieurs fichiers texte de journal

Considérons un autre script bash simple qui prend une entrée et la stocke dans un fichier journal, à l’aide de la teecommande.

#!/bin/bashlog_file="user_input.log"echo "Please enter some text:"read user_inputecho "$user_input" | tee -a "$log_file"echo "User input has been logged to $log_file"

Script Bash qui lit les entrées de l'utilisateur et affiche la sortie sur le terminal

Dans le script bash donné, définissez une variable appelée « log_file » et attribuez-lui le nom du fichier journal que vous souhaitez utiliser, tel que « user_input.log ». Ensuite, utilisez la echocommande et la readcommande pour vous inviter à saisir du texte et à le stocker dans une variable. Ensuite, utilisez la teecommande avec l’ -aoption pour afficher l’entrée d’entrée sur le terminal et l’ajouter au fichier journal.

Enfin, utilisez echoà nouveau la commande pour donner votre avis. Cela vous indiquera que votre entrée a été enregistrée dans le fichier. De cette façon, il vous permet de créer un script bash qui enregistre votre entrée dans un fichier journal et l’affiche à l’écran.

Exécutez le script bash à l’aide bashde la commande.

bash test.sh

commande bash qui exécute le script de test

Surveillance des processus sur votre système Linux

Pour garder un œil sur le fonctionnement de votre système Linux, vous devez observer les activités de ses processus. Cela inclut l’utilisation du processeur et de la mémoire, les E/S du disque et l’activité réseau.

Comme la teecommande, Linux dispose de plusieurs autres commandes qui vous aident à surveiller facilement les processus. Certaines des commandes principales incluent les commandes ps , top et pgrep . Les systèmes Linux exécutent souvent plusieurs processus simultanément. À l’aide de ces commandes, vous pouvez hiérarchiser les tâches critiques, allouer les ressources de manière appropriée et éviter les conflits de ressources.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *