Arkendia Classrooms
Leçon 13 sur 28 · 18 min

La ligne de commande et le système de fichiers

La première fois qu'on ouvre un terminal, on a l'impression de piloter un avion sans tableau de bord : un curseur qui clignote, et rien d'autre. Pourtant, la ligne de commande est l'outil le plus puissant et le plus précis dont dispose un professionnel de l'informatique. Dans cette leçon, vous allez apprivoiser le terminal Linux et comprendre comment le système organise ses fichiers.

Vous avez monté votre laboratoire au chapitre précédent. Démarrez votre machine kali-labo (ou toute autre VM Linux de votre laboratoire) : c'est là que vous allez pratiquer. Tout ce qui suit est valable sur la plupart des distributions Linux, et largement aussi sur macOS.

Pourquoi apprendre la ligne de commande ?

Les interfaces graphiques sont pratiques, mais elles limitent ce qu'on peut faire à ce que les concepteurs ont prévu d'afficher. La ligne de commande, elle, offre :

  • La précision : une commande dit exactement ce qu'elle fait, et reste la même d'une machine à l'autre.
  • L'automatisation : une suite de commandes se rejoue à volonté (nous écrirons un script à la fin du chapitre).
  • L'accès à distance : la majorité des serveurs n'ont même pas d'écran graphique ; on les administre en ligne de commande, par SSH.
  • La compatibilité avec les outils de sécurité, qui s'utilisent presque tous ainsi.

Lire l'invite de commande

Dans un terminal, vous voyez une ligne comme celle-ci :

antoine@kali-labo:~$

Elle se lit : utilisateur @ nom de la machine : répertoire courant $. Le symbole ~ désigne votre répertoire personnel. Le $ indique que vous êtes un utilisateur ordinaire ; un # indiquerait l'administrateur (root). Vous tapez une commande, vous appuyez sur Entrée, le système exécute et répond.

Comment le système range ses fichiers

Sous Linux, tout part d'une seule racine, notée /. Il n'y a pas de lettres de lecteurs comme C: : les disques et clés USB sont « montés » quelque part dans l'arborescence. Les répertoires principaux suivent une convention commune :

RépertoireContenu
/homeLes répertoires personnels des utilisateurs (/home/antoine)
/rootLe répertoire personnel de l'administrateur
/etcLes fichiers de configuration du système et des services
/varLes données variables : journaux (/var/log), files d'attente, bases de données
/tmpFichiers temporaires, accessibles à tous
/usrProgrammes et bibliothèques installés
/bin, /sbinProgrammes essentiels du système
/devLes périphériques, vus comme des fichiers
/procDes informations sur les processus et le système, générées à la volée

Un principe de Linux mérite d'être retenu : « tout est fichier ». Un document, un répertoire, un périphérique, une information sur un processus, tout se manipule avec les mêmes outils. C'est un grand atout pour la sécurité : la configuration est dans des fichiers lisibles, qu'on peut surveiller, comparer et versionner.

Se déplacer et regarder

Les premières commandes à connaître, avec leur sens mnémonique :

pwd                    # où suis-je ? (print working directory)
ls                     # liste le contenu du répertoire courant
ls -la                 # liste détaillée, y compris les fichiers cachés
cd /etc                # se déplacer dans /etc
cd ..                  # remonter d'un niveau
cd ~                   # revenir dans son répertoire personnel
cd -                   # retourner au répertoire précédent

Les chemins peuvent être absolus (ils commencent par / : /etc/hosts) ou relatifs au répertoire courant (documents/notes.txt). Les fichiers dont le nom commence par un point (.bashrc) sont cachés : ls -a les révèle. Les raccourcis . (ici) et .. (le parent) fonctionnent partout.

Créer, copier, déplacer, supprimer

mkdir labo                      # créer un répertoire
mkdir -p labo/notes/2026        # créer toute une arborescence
touch labo/notes/a.txt          # créer un fichier vide
cp a.txt b.txt                  # copier
mv b.txt archive.txt            # déplacer ou renommer
rm archive.txt                  # supprimer un fichier
rm -r labo/notes                # supprimer un répertoire et son contenu

Attention. Sous Linux, rm ne passe pas par une corbeille : la suppression est définitive. Relisez toujours votre commande avant d'appuyer sur Entrée, surtout avec -r et surtout en tant qu'administrateur. Dans votre laboratoire, un snapshot avant une manipulation risquée est votre filet de sécurité.

Lire le contenu d'un fichier

cat /etc/hostname            # affiche tout le fichier
less /etc/services           # affichage page par page (q pour quitter)
head -n 5 /etc/passwd        # les 5 premières lignes
tail -n 20 /var/log/syslog   # les 20 dernières lignes (si le fichier existe)
tail -f fichier.log          # suit un fichier en direct

Certains journaux n'existent pas sur tous les systèmes : nous y reviendrons dans la leçon sur les journaux.

Chercher efficacement

Deux commandes valent leur pesant d'or : grep pour chercher du texte dans des fichiers, find pour chercher des fichiers par leurs caractéristiques.

grep "root" /etc/passwd             # lignes contenant « root »
grep -i "erreur" fichier.log        # insensible à la casse
grep -r "mot" ~/labo                # récursif dans un répertoire
find ~/labo -name "*.txt"           # fichiers .txt
find ~/labo -type f -mtime -2       # fichiers modifiés il y a moins de 2 jours

Pipes et redirections : la force du terminal

Chaque commande reçoit des données en entrée et produit une sortie. On peut chaîner les commandes avec le symbole | (pipe) : la sortie de la première devient l'entrée de la suivante. C'est la philosophie d'Unix : de petits outils simples qui font une seule chose, combinés entre eux.

ls /etc | wc -l                       # combien d'éléments dans /etc ?
cat /etc/passwd | grep "bash"         # les comptes qui utilisent bash
ls -l /etc | sort -k5 -n | tail -n 3  # les 3 plus gros éléments

Les redirections envoient la sortie vers un fichier au lieu de l'écran : > écrase le fichier, >> ajoute à la fin, 2> redirige les messages d'erreur.

ls /etc > liste-etc.txt              # écrit (écrase)
echo "nouvelle ligne" >> notes.txt   # ajoute
ls /dossier-inexistant 2> erreurs.txt # capture seulement l'erreur

S'aider soi-même

Personne ne retient toutes les options : on apprend à les retrouver.

man ls               # manuel complet de la commande ls (q pour quitter)
ls --help            # résumé court
history              # vos dernières commandes

Deux raccourcis changent la vie : la touche Tabulation complète les noms de fichiers et de commandes, et la flèche haut rappelle les commandes précédentes. Ctrl+C interrompt une commande qui tourne ; Ctrl+L efface l'écran.

À vous de jouer

Dans votre VM, exécutez la séquence suivante et répondez aux questions de votre carnet :

cd ~
mkdir -p labo-linux/rapports labo-linux/scripts
cd labo-linux
echo "Premier test" > rapports/test1.txt
echo "Deuxième test" >> rapports/test1.txt
cp rapports/test1.txt rapports/test2.txt
ls -la rapports
cat rapports/test1.txt | wc -l
grep -r "Deuxième" .
  1. Combien de lignes contient test1.txt ?
  2. Quelle commande listerait seulement les fichiers de rapports dont le nom contient « 2 » ?
  3. Comment compter le nombre de comptes dans /etc/passwd dont l'interpréteur est /bin/bash ?
Voir une solution

1. Deux lignes : « Premier test » puis « Deuxième test » (la seconde a été ajoutée avec >>). Si vous aviez utilisé > deux fois, le fichier ne contiendrait qu'une ligne, la seconde commande l'ayant écrasé.

2. ls rapports | grep 2 ou find rapports -name "*2*".

3. grep "/bin/bash" /etc/passwd | wc -l. Le résultat dépend de votre système : en général, quelques comptes seulement.

À retenir

  • Le terminal offre précision, automatisation et accès à distance ; l'invite indique utilisateur, machine et répertoire.
  • L'arborescence part de / ; /etc (configuration), /var/log (journaux), /home (utilisateurs) sont à connaître.
  • Commandes de base : pwd, ls, cd, mkdir, cp, mv, rm, cat, less, head, tail, grep, find.
  • Les pipes (|) et redirections (>, >>, 2>) permettent de combiner de petits outils.
  • rm est définitif ; man et --help sont vos meilleurs alliés.

Vous savez vous déplacer dans le système. Dans la leçon suivante, vous allez découvrir qui peut faire quoi sur ces fichiers : utilisateurs, permissions et sudo.

Publicité
Connectez-vous pour enregistrer votre progression. Se connecter