Comment utiliser la commande tee sous Linux
Vous souhaitez suivre le résultat des commandes Linux ? Utilisez la commande tee pour les enregistrer dans un fichier séparé.
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, ce qui facilite la sauvegarde et le suivi 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 ~ | tee list.txt"
La commande tee peut enregistrer le résultat de vos commandes pour une révision ultérieure. Cette commande affiche non seulement la sortie à 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 tee est 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 dans la sortie standard (stdout) et dans le ou les fichiers que vous spécifiez. La commande tee 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 commande tee 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 commande tee pour effectuer des sauvegardes, rechercher des erreurs dans les scripts et suivre les journaux système.
La commande tee 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 le té commande préinstallée, qui fait partie du package Coreutils.
La commande tee 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 commande tee vous utilisez, exécutez simplement la commande suivante :
tee --versionSi vous avez besoin d'aide avec la syntaxe et les arguments disponibles pour la commande tee, tapez ceci :
tee --helpOptions de commande de tee
La commande tee dispose de plusieurs options pour modifier sa fonctionnalité. Le tableau ci-dessous présente quelques options qui vous aideront à utiliser efficacement la commande tee :
-a or --appendAjoutez la sortie à la fin des fichiers au lieu de les écraser.
-i or --ignore-interrupts-
Ignorer les signaux d'interruption tels que Ctrl+C.
-p or --output-errorImprimer un message d'erreur sur l'erreur standard pour chaque erreur qui se produit lors de l'écriture dans des fichiers.
--helpAfficher une aide de base relative aux options de commande.
--versionAfficher la version de la commande
tee.
Enregistrer la sortie dans un fichier sous Linux à l'aide de tee
La commande tee enregistre la sortie d'une commande dans un fichier tout en l'affichant également sur le terminal. Par exemple, la commande tee vous permettra de voir les fichiers et répertoires de votre répertoire personnel et également de les enregistrer dans un fichier séparé. Pour ce faire, dirigez la commande tee avec la commande ls comme suit :
ls ~ | tee list.txtCela 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 la commande cat, less ou more.
cat list.txt
Exécutons un autre exemple avec une commande echo pour enregistrer et afficher la sortie. Tout d’abord, utilisez la commande echo pour imprimer le texte sur le terminal. Après cela, dirigez la commande tee avec la commande echo pour écrire le même texte dans un fichier appelé "output.txt".
echo "Welcome to Ubuntu" | tee output.txtEnfin, utilisez la commande cat pour vérifier le contenu du fichier "output.txt".
cat output.txtÉcrire la sortie dans plusieurs fichiers sous Linux à l'aide de tee
La commande tee peut également écrire la sortie dans plusieurs fichiers simultanément. Il vous suffit de définir les noms de fichiers après la commande tee dans lequel vous souhaitez écrire. Séparez-les simplement par des espaces.
Par exemple, pour enregistrer la sortie de la commande echo dans trois fichiers différents, utilisez la syntaxe suivante :
echo "Welcome to Ubuntu" | tee file1.txt file2.txt file3.txtCela é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 visualiser le contenu de ces fichiers, utilisez la commande cat ou head :
head -v file1.txt file2.txt file3.txtDe même, la commande cat affichera également le résultat identique :
cat -v file1.txt file2.txt file3.txtVous pouvez écrire la sortie dans n'importe quel nombre de fichiers avec le té commande. Tapez simplement les noms de fichiers après le té commande avec des espaces entre eux.
Ajouter la sortie à un fichier à l'aide de tee
La commande tee sous Linux écrase le contenu du fichier par défaut. L'option -a ou --append avec la commande tee vous permet d'ajouter la sortie à la fin des fichiers au lieu de remplacer leur contenu.
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.txtMaintenant, nous pouvons ajouter les nouvelles données sans les écraser en tapant ceci :
echo "tee Command on Linux" | tee -a output.txtCela ajoutera la sortie d'une commande à la fin de output.txt, sans supprimer aucun contenu précédent. Pour vérifier, exécutez la commande cat :
cat output.txtMasquer 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 de sorties inutiles. Dans de tels cas, vous devez diriger la sortie de la commande vers le périphérique /dev/null. Le /dev/null est 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 la sortie de la commande echo :
echo "Welcome to Ubuntu" | tee output.txt > /dev/nullCela é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 commande cat vous permettra de vérifier le résultat en affichant le contenu du fichier :
cat output.txtRediriger la sortie d'une commande vers une autre à l'aide de tee
La commande tee peut également rediriger la sortie d'une commande vers un fichier ou toute autre commande. La commande tee 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 -cLe résultat de la commande echo "Bienvenue sur Ubuntu" est écrit dans le fichier output.txt. Après cela, l'opérateur de pipeline est utilisé avec la commande tee. Cela transmettra le contenu du fichier à la commande wc. La commande wc affichera le nombre total de caractères comptés et affichera une valeur entière.
Pour vérifier si la commande tee a également écrit la sortie dans un fichier, utilisez la commande cat pour afficher le contenu du fichier :
cat output.txtUtiliser la commande tee avec sudo
Lorsque vous utilisez la commande tee, elle écrit la sortie 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 en conjonction avec sudo.
Dans l'exemple ci-dessous, lorsque vous essayez d'écrire un fichier "file.conf" appartenant à root sans utiliser sudo, cela vous donnera une erreur d'autorisation refusée.
echo "This is Ubuntu" | tee -a /etc/file.confCependant, lorsque vous utilisez sudo avec la commande tee, cela s'exécutera sans aucune erreur. Vous pouvez utiliser la commande sudo pour exécuter la commande tee en tant qu'utilisateur root ou propriétaire du fichier. Ajoutez simplement sudo avec la commande tee :
echo "This is Ubuntu" | sudo tee -a /etc/file.confTout d'abord, la commande tee prendra la sortie de la commande echo. Après cela, il élève les autorisations sudo et écrit le texte dans le fichier.
Exemples d'utilisation de tee dans un script Bash
La commande tee peut être utile dans divers scénarios de script. Il vous aide à enregistrer ou capturer la sortie d'une commande pour un traitement ultérieur ou un débogage. La commande tee 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/bash
date | tee log.txtDans ce cas, l'entrée standard est la sortie de la commande date, qui affiche la date et l'heure actuelles. La commande tee écrit cette sortie dans 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'option -a pour l'ajouter au fichier.
cat log.txtVous pouvez également utiliser la commande tee pour écrire dans plusieurs fichiers en spécifiant davantage de noms de fichiers comme arguments.
#!/bin/bash
date | tee log1.txt log2.txtCe 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 de la commande cat.
cat log1.txt log2.txtConsidérons un autre script bash simple qui prend une entrée et la stocke dans un fichier journal, à l'aide de la commande tee.
#!/bin/bash
log_file="user_input.log"
echo "Please enter some text:"
read user_input
echo "$user_input" | tee -a "$log_file"
echo "User input has been logged to $log_file"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 commande echo et la commande read pour vous inviter à saisir du texte et à le stocker dans une variable. Ensuite, utilisez la commande tee avec l'option -a pour afficher l'entrée entrée sur le terminal et l'ajouter au fichier journal.
Enfin, utilisez à nouveau la commande echo 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 de la commande bash.
bash test.shSurveillance 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. L'identification des goulots d'étranglement en matière de performances permet d'optimiser les ressources système et de garantir que votre système fonctionne efficacement.
Comme la commande tee, 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.
























