Débutant

Linux : maîtriser tee, redirections et sudo

Apprenez à utiliser tee sous Linux pour afficher et enregistrer la sortie d’une commande, y compris avec redirections, append et sudo.

Linux : maîtriser tee, redirections et sudo
Difficulté
Facile

La commande tee est l’un des outils les plus utiles de la ligne de commande Linux quand vous voulez voir ce qu’une commande produit tout en gardant une copie dans un fichier. Elle s’insère au milieu d’un pipeline, ce qui la rend pratique pour les tests, les journaux temporaires, le débogage et les commandes à exécuter avec ou sans privilèges élevés.

Dans ce tutoriel, vous allez manipuler tee pas à pas avec des exemples simples. Vous verrez comment enregistrer la sortie standard, comment ajouter au lieu d’écraser, comment capter aussi les erreurs, et surtout comment utiliser tee avec sudo quand une simple redirection > ne suffit pas.

Prérequis

  • Un terminal Linux ouvert.
  • Un shell courant comme bash, zsh ou sh.
  • Un accès à sudo pour les étapes qui modifient des fichiers protégés.
  • Le droit d’écrire dans votre dossier personnel pour les exemples de base.

Matériel nécessaire

  • Terminal Linux
  • Commande tee
  • Commande sudo
  • Fichiers de test dans le dossier personnel

Étapes

  1. Lancer une commande et dupliquer sa sortie

    Commencez par exécuter une commande simple et envoyez sa sortie vers tee. Par exemple :

    date | tee sortie.txt

    La date s’affiche dans le terminal et elle est aussi écrite dans sortie.txt. Vérifiez ensuite le contenu du fichier avec :

    cat sortie.txt
  2. Écraser volontairement un fichier existant

    Relancez une autre commande vers le même fichier pour observer le comportement par défaut. Essayez par exemple :

    uname -a | tee sortie.txt

    Le fichier sortie.txt contient maintenant la nouvelle sortie, à la place de l’ancienne. tee écrase le fichier cible s’il existe déjà.

  3. Ajouter une sortie sans effacer l’ancienne

    Utilisez l’option -a pour ajouter du contenu à la fin du fichier. Tapez par exemple :

    whoami | tee -a sortie.txt

    Affichez ensuite le fichier avec cat sortie.txt. Vous verrez que la nouvelle ligne a été ajoutée après le contenu précédent au lieu de le remplacer.

  4. Enregistrer plusieurs fichiers en une seule commande

    tee peut écrire dans plusieurs fichiers à la fois. Testez avec :

    pwd | tee fichier1.txt fichier2.txt

    La sortie s’affiche à l’écran et elle est copiée dans fichier1.txt et fichier2.txt. Vérifiez les deux fichiers avec cat fichier1.txt puis cat fichier2.txt.

  5. Insérer tee au milieu d’un pipeline

    Poste informatique avec un terminal affiché sur un écran, les mains d’une personne près du clavier, illustrant un pipeline où une sortie est à la fois transmise et enregistrée.

    Placez tee entre deux commandes pour conserver un résultat intermédiaire. Essayez :

    ls -1 /etc | tee liste-etc.txt | head

    Vous voyez seulement les premières lignes à l’écran grâce à head, mais liste-etc.txt contient l’ensemble de la sortie transmise à tee.

  6. Capturer aussi les messages d’erreur

    Par défaut, tee ne traite que la sortie standard. Pour enregistrer aussi les erreurs, redirigez la sortie d’erreur vers la sortie standard avant tee :

    ls /tmp /chemin/inexistant 2>&1 | tee erreurs-et-sortie.txt

    La sortie normale et le message d’erreur s’affichent ensemble dans le terminal et sont aussi écrits dans erreurs-et-sortie.txt.

  7. Comparer tee avec une redirection simple

    Testez maintenant une redirection classique pour bien voir la différence. Exécutez :

    echo "bonjour" > simple.txt

    Rien ne s’affiche à l’écran, car la sortie est envoyée directement dans le fichier. Avec tee, le contenu aurait été visible dans le terminal et enregistré en même temps.

  8. Constater l’échec d’une redirection avec sudo

    Essayez une commande typique qui surprend souvent les débutants :

    sudo echo "test" > /etc/test-tee.conf

    Selon vos droits et l’existence du fichier, la redirection peut échouer avec une erreur de permission. Le point important est que sudo ne s’applique ici qu’à echo, pas à la redirection gérée par le shell.

  9. Écrire dans un fichier protégé avec sudo tee

    Gros plan sur un écran avec terminal et sur les mains d’une personne, montrant l’écriture dans un fichier protégé avec des privilèges élevés.

    Utilisez plutôt un pipe vers sudo tee. Pour écrire dans un fichier protégé, employez par exemple :

    echo "test" | sudo tee /etc/test-tee.conf

    Le texte s’affiche dans le terminal et il est écrit dans le fichier cible avec les privilèges de sudo. Ici, c’est tee qui ouvre le fichier, pas votre shell non privilégié.

  10. Ajouter à un fichier protégé avec sudo tee -a

    Pour compléter un fichier protégé sans effacer son contenu, combinez sudo et -a. Exemple :

    echo "ligne ajoutée" | sudo tee -a /etc/test-tee.conf

    La nouvelle ligne est ajoutée à la fin du fichier. Cette méthode est souvent plus sûre qu’une réécriture complète quand vous ne devez insérer qu’une ligne.

  11. Injecter plusieurs lignes proprement

    Quand vous devez écrire plusieurs lignes, utilisez une commande qui produit un texte structuré. Par exemple :

    printf 'ligne 1
    ligne 2
    ' | tee notes.txt

    Le résultat s’affiche proprement sur deux lignes et il est enregistré tel quel dans le fichier. La même approche fonctionne avec sudo tee pour un fichier protégé.

  12. Vérifier le résultat avant de continuer

    Après chaque écriture, relisez le fichier concerné avec une commande adaptée. Vous pouvez utiliser :

    cat notes.txt
    cat /etc/test-tee.conf

    Cette vérification simple permet de confirmer que vous avez bien écrit au bon endroit, avec le bon mode, sans écrasement involontaire.

  13. Réutiliser tee pour journaliser une commande longue

    Ordinateur affichant un terminal avec une longue sortie en cours, pendant qu’une personne surveille la commande et sa journalisation.

    Terminez avec un usage très concret : garder une trace d’une commande longue tout en la surveillant. Par exemple :

    find /etc -maxdepth 1 | tee journal-find.txt

    Vous suivez la progression dans le terminal tout en conservant un journal local. Cette habitude est utile pour les inventaires, les diagnostics et les essais reproductibles.

Erreurs fréquentes & dépannage

  • Oublier que tee écrase par défaut : sans -a, le fichier cible est remplacé.
  • Confondre sortie standard et erreurs : un simple | tee fichier ne récupère pas la sortie d’erreur sans 2>&1.
  • Croire que sudo commande > fichier suffit : la redirection est gérée par le shell, pas par sudo.
  • Modifier un fichier système réel pour tester : faites d’abord vos essais dans votre dossier personnel ou sur un fichier de démonstration.
  • Oublier de relire le fichier : un cat de contrôle évite de propager une erreur simple.

Astuces & pour aller plus loin

  • Placez tee au milieu d’un pipeline pour conserver une étape intermédiaire sans casser la chaîne de commandes.
  • Ajoutez -a dès que votre intention est de compléter un fichier plutôt que de le remplacer.
  • Avec un fichier protégé, préférez echo "..." | sudo tee fichier à une redirection directe.
  • Si l’affichage du texte écrit vous gêne, terminez par > /dev/null après tee.
  • Pour un contenu sur plusieurs lignes, utilisez printf afin de contrôler précisément les retours à la ligne.

Questions fréquentes

À quoi sert exactement tee ?

La commande tee lit l’entrée standard, l’affiche sur la sortie standard et l’écrit en même temps dans un ou plusieurs fichiers.

Quelle différence entre tee et une redirection > ?

Une redirection avec > envoie la sortie vers un fichier sans l’afficher. tee permet de voir la sortie à l’écran tout en l’enregistrant.

Comment ajouter au lieu d’écraser un fichier ?

Utilisez l’option -a, par exemple : commande | tee -a fichier.txt.

Pourquoi sudo echo "test" > /etc/fichier peut échouer ?

Parce que la redirection > est traitée par le shell avant l’exécution de la commande. sudo ne s’applique donc pas à l’ouverture du fichier par le shell.

Comment écrire dans un fichier protégé avec tee ?

Envoyez le texte vers sudo tee, par exemple : echo "test" | sudo tee /etc/fichier.

Comment enregistrer aussi les erreurs d’une commande ?

Redirigez la sortie d’erreur vers la sortie standard avant tee, par exemple : commande 2>&1 | tee journal.txt.

Conclusion

Vous savez maintenant utiliser tee pour afficher et enregistrer la sortie d’une commande en même temps, que ce soit dans un cas simple, dans un pipeline ou avec des messages d’erreur. Vous avez aussi vu le point essentiel sur sudo : pour écrire dans un fichier protégé, il faut donner à tee les privilèges nécessaires, pas seulement à la commande qui produit le texte.

En pratique, retenez trois réflexes : tee pour voir et garder, tee -a pour ajouter, et sudo tee pour les fichiers protégés. Avec ces trois modèles, vous couvrirez la grande majorité des besoins courants autour des redirections en ligne de commande Linux.

Commentaires· Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire