GNU/Linux >> Tutoriels Linux >  >> Linux

Explication de la commande Linux tee (avec exemples)

Lorsque vous exécutez des commandes de base sur le terminal, la sortie est généralement imprimée sur le terminal, c'est-à-dire la sortie standard. Mais que diriez-vous si vous pouviez également enregistrer la sortie dans un fichier et l'imprimer en sortie standard ? C'est ce que fait la commande tee. La commande Linux tee lit à partir de stdin (entrée standard) puis écrit dans stdout (sortie standard) ainsi que dans un fichier ou plusieurs fichiers.

Syntaxe de base de la commande tee

La commande tee prend la syntaxe suivante.

commande $ | tee [options] fichier(s)

Échantillons maintenant quelques exemples d'utilisation de la commande tee.

Utilisation de base de la commande tee

Supposons que nous voulions imprimer la mémoire et échanger l'utilisation en utilisant le gratuit commande et enregistrez la sortie dans un fichier appelé memory_usage.txt . La commande tee serait invoquée comme suit.

$ free -h | tee memory_usage.txt

La commande tee lit à partir de la commande, enregistre la sortie dans memory_usage.txt fichier, puis l'imprime en sortie standard.

Pour confirmer que la sortie a été enregistrée dans memory_usage.txt fichier exécutez la commande cat comme indiqué.

$ cat memory_usage.txt

Écrire la sortie dans plusieurs fichiers

De plus, vous pouvez enregistrer la sortie dans plusieurs fichiers comme indiqué

commande $ | tee [ options ] fichier1 fichier2 …

Dans la commande ci-dessous, la chaîne "Hey, Welcome to Linux" est enregistré dans les deux fichiers texte :file1.txt etfichier2.txt

$ echo Hey, Welcome to Linux | tee file1.txt file2.txt

Ajouter du contenu à un fichier

Habituellement, la commande tee écrase un fichier, et ce n'est pas toujours souhaitable car elle peut effacer des données existantes qui sont cruciales. Heureusement, vous pouvez utiliser le -a option pour ajouter du texte à un fichier. Testons cela.

Tout d'abord, nous allons écrire la sortie du uptime commande au stats.txt fichier comme indiqué.

$ disponibilité | tee stats.txt

Utilisez le chat commande pour vérifier cela.

$ cat stats.txt

Ensuite, nous ajouterons la sortie du free -h commande qui imprime notre utilisation de la mémoire et de l'échange dans le fichier.

$ free -h | tee -a stats.txt

Encore une fois, vérifiez le contenu du stats.txt dossier. Cette fois-ci, le fichier portera la sortie des deux commandes comme indiqué dans la capture d'écran ci-dessous. C'est parce que nous avons ajouté la sortie du free -h commande au stats.txt fichier et donc le texte existant n'a pas été affecté.

Supprimer la sortie de la commande tee

Si vous ne souhaitez pas avoir la sortie du commande imprimée sur la sortie standard, vous pouvez la rediriger vers /dev/null qui est un appareil spécial qui supprime les informations qui lui sont transmises.

Prenons l'exemple ci-dessous où nous imprimons la sortie du df -Th commande au fichier texte mais en supprimant la sortie sur le terminal.

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

Laisser la commande tee ignorer les interruptions

Parfois, vous souhaiterez peut-être arrêter une commande qui s'exécute en continu. Lorsque cela se produit, vous pouvez envisager de faire en sorte que la commande tee se termine correctement même après l'interruption du programme. Pour ce faire, utilisez le -i ou –ignore-interrupts option fournie dans la syntaxe indiquée.

commande $ | tee -i nom de fichier

La commande ping ci-dessous envoie en continu des requêtes ping au DNS de Google ( 8.8.8.8 ). Nous avons interrompu la commande après 4 requêtes ping successives. Pour le tee commande pour quitter en douceur, appelez le -i option.

$ ping 8.8.8.8 | tee -i ping_stats.txt

Sans le -i option, la sortie et le résumé des statistiques ne seraient pas imprimés.

Utiliser la commande tee avec sudo

Lors de la modification de fichiers appartenant à l'utilisateur root ou à un autre utilisateur de connexion, le simple fait d'utiliser la commande tee sans appeler la commande sudo génère une erreur.

Dans l'exemple ci-dessous, nous créons un nouveau référentiel appelé anydesk-stable.list pour l'application AnyDesk dans /etc/apt/sources.list.d chemin réservé à l'utilisateur root.

$ echo "deb http://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list

Comme prévu, nous avons rencontré une erreur "autorisations refusées" car nous n'avons pas les autorisations nécessaires pour créer ou modifier un fichier dans ce chemin.

La solution est de précéder tee avec la commande sudo comme indiqué.

$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

A cette occasion, la commande est un succès après avoir placé sudo avant tee.

Obtenir de l'aide avec la commande tee

Pour plus d'options de commande et d'assistance dans l'utilisation de la commande tee, exécutez la commande ci-dessous.

$ tee --help

De plus, explorez les pages de manuel comme indiqué

$ man tee

Pour vérifier la version, exécutez :

$ tee --version

Résumé

Il s'agit de la commande Linux tee. Notamment, la commande lit à partir de l'entrée standard ( stdin ) et écrit ensuite dans la sortie standard ( stdout ) et le(s) fichier(s).


Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande d'arrêt Linux expliquée avec des exemples

  4. Commande Linux Traceroute, expliquée avec des exemples

  5. Commande JQ sous Linux avec exemples

Commande Tr sous Linux expliquée avec des exemples

w Commande expliquée avec des exemples sous Linux

La commande Linux Cat expliquée avec des exemples

La commande Tee sous Linux expliquée avec des exemples

Linux tee Exemples de commandes

La commande Linux csplit expliquée (avec des exemples)