
Si vous travaillez avec Linux — dans un homelab ou sur un serveur en prod — la ligne de commande, c’est incontournable. Et on comprend vite pourquoi : sous Linux, presque tout est du texte. Logs, fichiers de config, sorties de commandes, CSV/TSV, résultats de scripts. La plupart du temps, on n’a pas besoin de “modifier ça dans un éditeur” : on veut juste jeter un coup d’œil, trouver l’info, compter, trier, ou transformer le tout dans un format plus lisible.
Pour ça, il existe tout un petit arsenal d’utilitaires à la sauce Unix : chaque outil fait une chose, mais il la fait bien. Et la vraie magie commence quand on les enchaîne avec des pipes : la sortie d’une commande devient l’entrée de la suivante, et on se retrouve avec des “pipelines” très puissants en 2–3 lignes, qui font gagner du temps dans l’admin au quotidien.
Dans ce tutoriel, j’ai regroupé les commandes les plus utilisées — celles que presque tous les sysadmins finissent par connaître — avec 1 à 2 exemples typiques pour chacune. C’est un guide-hub d’intro : plus tard, quand j’aurai le temps (et l’envie), je ferai des tutoriels détaillés séparés pour chaque commande.
Pour la démo, je vais créer quelques fichiers texte de test sur mon Raspberry Pi (oui, c’est aussi Linux).
Donc… café ou thé, et on commence !
cat — afficher / concaténer des fichiers
On commence avec la commande cat, probablement l’une des plus utilisées au quotidien. Elle permet d’afficher rapidement le contenu de n’importe quel fichier texte, directement dans le terminal.
Afficher un fichier :
cat file1.txt
Et aussi “concaténer” deux fichiers en un seul (puis enregistrer le résultat dans un nouveau fichier) :
cat part1.txt part2.txt > merged.txt

less / more — lire un fichier page par page
Quand un fichier est plus long que “quelques lignes”, le lire avec cat devient vite pénible : tout le texte est affiché d’un coup et on perd le fil. C’est là que less et more sont utiles : ce sont des pagers qui affichent le fichier page par page et offrent de la navigation. less est plus pratique : il a une vraie recherche et une navigation plus flexible.
Ouvrir un fichier et le lire confortablement, avec recherche :
less longfile.txt
Navigation de base dans less :
q — quitter
Space — page suivante
b — page précédente
Enter — descendre d’une ligne
g — aller au début du fichier
G — aller à la fin du fichier
/texte — recherche vers l’avant
n — occurrence suivante, N — occurrence précédente
more — une option plus simple (quand less n’est pas installé) :
more longfile.txt
Navigation de base dans more :
q — quitter
Space — page suivante
Enter — descendre d’une ligne

head — le début d’un fichier
head affiche la “tête” d’un fichier, donc ses premières lignes. C’est pratique quand on veut voir rapidement un en-tête, le premier bloc d’un fichier de configuration, ou simplement comprendre de quel type de fichier il s’agit, sans l’ouvrir au complet.
Par défaut, head affiche les 10 premières lignes (si on ne précise pas -n) :
head longfile.txt

Si vous avez besoin, par exemple, de seulement 3 lignes, on ajoute -n X, où X est le nombre de lignes voulu :
head -n 3 longfile.txt

tail —la fin d’un fichier et le temps réel
tail, c’est la “queue” d’un fichier : par défaut, il affiche les 10 dernières lignes. On l’utilise très souvent pour les logs ou pour des fichiers qui sont constamment mis à jour.
Les 10 dernières lignes :
tail longfile.txt

Suivre l’écriture en temps réel. La commande affiche les nouvelles lignes dès qu’elles apparaissent. Pour le voir en action, ouvrez le même fichier dans un autre terminal et ajoutez une ligne :
tail -f note.txt
grep — trouver des lignes qui correspondent à un motif
Quand on doit retrouver rapidement des lignes précises dans un fichier (surtout dans des logs), grep est souvent le premier réflexe. Il filtre le contenu et n’affiche que les lignes qui contiennent le motif demandé.
Recherche sans tenir compte de la casse :
grep -i line file2_blanks.txt

wc — compter des lignes / des octets
wc (word count) est une commande pour faire des comptages rapides. On l’utilise le plus souvent pour savoir combien de lignes contient un fichier, ou combien de lignes sortent d’une autre commande.
Nombre de lignes :
wc -l file2_blanks.txt wc -l longfile.txt

cut — extraire des colonnes (TSV / CSV simple sans guillemets)
Quand un fichier ressemble à une table (CSV/TSV), cut permet d’extraire rapidement les colonnes qui vous intéressent — sans Excel et sans scripts.
Prendre la 1re et la 3e colonne d’un fichier TSV (séparateur : tabulation) :
cut -f1,3 file3_tabs.txt

sort / uniq — trier et supprimer les doublons
sort met les lignes en ordre, et uniq supprime les répétitions — avec un point important : uniq fonctionne correctement quand les lignes identiques sont côte à côte, donc on l’utilise presque toujours après sort.
Compter les occurrences :
sort duplicates.txt | uniq -c

tr — remplacer des caractères (petit “nettoyage” rapide)
tr (translate) est pratique pour faire des transformations simples sur un flux de texte : remplacer, supprimer, changer la casse. C’est une petite commande qui complète souvent très bien les pipes.
Convertir le texte en majuscules :
cat file1.txt | tr '[:lower:]' '[:upper:]'
sed — remplacement simple ou filtrage de lignes
sed, c’est un “éditeur de flux” : il lit du texte, applique des remplacements ou des filtres, puis affiche immédiatement le résultat. C’est très pratique pour faire des petites corrections rapides dans une sortie de commande ou dans le contenu d’un fichier, sans ouvrir un éditeur.
Remplacer un mot dans le flux (le fichier n’est pas modifié, le résultat est seulement affiché) :
sed 's/Part/Section/g' part1.txt
Dans cet exemple, sur chaque ligne du fichier part1.txt, sed remplace Part → Section et affiche le texte modifié à l’écran. Le fichier part1.txt ne change pas.

awk — colonnes + logique (quand cut ne suffit plus)
Si cut sert surtout à “extraire des colonnes”, awk est déjà un petit langage de traitement de texte : on peut sélectionner des champs, formater la sortie et ajouter un peu de logique. C’est très utile pour des données tabulaires et pour des logs.
Afficher les 1re et 2e colonnes d’un fichier TSV (séparateur : tabulation) :
awk -F'\t' '{print $1, $2}' file3_tabs.txt

paste — coller des fichiers en colonnes
Contrairement à cat, qui concatène les fichiers l’un après l’autre, paste les colle ligne par ligne, ce qui crée des colonnes. C’est pratique pour comparer rapidement deux listes, ou quand on veut fabriquer une petite “table” à partir de deux fichiers.
paste part1.txt part2.txt

tee — afficher à l’écran et écrire dans un fichier
tee est utile quand vous voulez à la fois voir le résultat dans le terminal et l’enregistrer dans un fichier. Il prend un flux (STDIN), l’affiche à l’écran, et en parallèle l’écrit dans un fichier.
cat part1.txt part2.txt | tee merged_via_tee.txt

watch — répéter une commande toutes les N secondes
watch est pratique quand on veut “surveiller” des changements : il relance une commande en boucle à un intervalle donné et rafraîchit l’écran en continu.
Par exemple, rafraîchir chaque seconde les 5 dernières lignes d’un fichier :
watch -n 1 "tail -n 5 note.txt"
Mini-exemple : “comment tout ça s’enchaîne”
C’est là qu’on voit la vraie force des pipes : au lieu de tout faire à la main, on assemble de petites commandes, chacune fait une seule tâche. La première filtre, la suivante compte, et au final on obtient une réponse claire en une seule ligne.
Ici, on va prendre un fichier, garder uniquement les lignes qui contiennent le mot Raspberry, puis compter combien de lignes il en reste.
Trouver les lignes avec Raspberry et afficher leur nombre :
cat longfile.txt | grep Raspberry | wc -l

Voilà, on a fait le tour des commandes texte de base sous Linux.
Bonne chance !

