$ carnet-linux
PHASE 1 · MODULE 02

Le système de fichiers

Une seule arborescence qui part de /, des dossiers au rôle bien défini, des chemins pour s'y repérer et une poignée de commandes pour tout créer, copier, déplacer et supprimer. Le cœur du quotidien sous Linux.

⏱️ Lecture ~50 min 🧪 Pratique ~1 h 30 🎚️ Niveau débutant
Tux

🎯 Ce que tu sauras à la fin

🌳

L'arborescence

Savoir à quoi sert chaque grand dossier du système.

🧭

Les chemins

Se déplacer avec des chemins absolus et relatifs.

🛠️

Les manipulations

Créer, copier, déplacer, renommer, supprimer.

🔗

Jokers et liens

Agir sur plusieurs fichiers d'un coup, créer des raccourcis.

Une seule arborescence : tout part de /

▶ Vidéo · 1 min 30Tout part de /la visite guidée de l'arborescence
Animation réalisée pour ce cours. Voix off et musique générées par IA (Google Gemini et Lyria).

Sous Windows, chaque disque a sa lettre : C:, D:… Sous Linux, il n'y a qu'un seul arbre. Il commence à la racine, notée /, et tout le reste en descend : tes fichiers, les programmes, la configuration, et même les disques et les clés USB, qui sont « montés » quelque part dans l'arbre.

L'organisation de cet arbre suit une norme commune à presque toutes les distributions, la FHS (Filesystem Hierarchy Standard). Ce que tu apprends ici est donc valable sur Debian, Fedora ou un serveur dans le cloud.

user@ubuntu:~$ ls /
bin   cdrom  etc   lib    lost+found  mnt  proc  run   snap  swap.img  tmp  var
boot  dev    home  lib64  media       opt  root  sbin  srv   sys       usr

Les dossiers à connaître par cœur

DossierRôleExemple à aller voir
/homeUn sous-dossier par utilisateur. C'est le seul endroit où un utilisateur normal peut écrire librement.ls /home
/etcToute la configuration, en texte lisible. Le « panneau de contrôle » de Linux.cat /etc/hostname
/var/logLes journaux : ce qui s'est passé, les erreurs.ls /var/log
/usr/binLes programmes de tous les jours.ls /usr/bin | wc -l (combien ?)
/tmpUn brouillon partagé, nettoyé au démarrage.ls /tmp
/devLes périphériques : disques (sda), terminaux (tty1), et le célèbre /dev/null, le « trou noir ».ls /dev
/procN'existe pas sur le disque : le noyau y décrit le système en temps réel.cat /proc/cpuinfo
Pourquoi /bin et /usr/bin ?

Héritage des années 70 : le premier disque de l'Unix des Bell Labs était trop petit, alors les programmes ont débordé sur un second disque, monté sur /usr. Sur les distributions récentes, ce découpage a été simplifié : /bin n'est plus qu'un lien vers /usr/bin (tu le verras avec ls -l /bin). Les deux chemins mènent au même endroit.

Tout est fichier… mais pas le même genre de fichier

Sous Linux, un dossier est un fichier spécial qui contient une liste de noms, un disque est un fichier spécial qui donne accès au matériel… La commande ls -l indique le type par le tout premier caractère de chaque ligne :

CaractèreTypeExemple
-Fichier ordinaire (texte, image, programme…)/etc/hostname
dDossier (directory)/home
lLien symbolique (raccourci)/bin
b / cPériphérique en mode bloc (disque) / caractère (terminal, souris)/dev/sda, /dev/tty1
s / pSocket / tube nommé : des canaux de communication entre programmes/run/…
user@ubuntu:~$ ls -ld /home /bin /dev/sda
drwxr-xr-x  3 root root 4096 oct.  22 09:12 /home
lrwxrwxrwx  1 root root    7 avril 22  2024 /bin -> usr/bin
brw-rw----  1 root disk 8, 0 oct.  22 09:12 /dev/sda
user@ubuntu:~$ file /etc/hostname /usr/bin/ls    # file devine le contenu
/etc/hostname: ASCII text
/usr/bin/ls:   ELF 64-bit LSB pie executable, x86-64, ...
Pas d'extension obligatoire

Sous Windows, c'est l'extension (.exe, .txt) qui dit ce qu'est un fichier. Sous Linux, elle n'est qu'une convention pour les humains : ls n'a pas d'extension et c'est pourtant un programme. Pour connaître la vraie nature d'un fichier : file.

Chemins absolus, chemins relatifs

▶ Vidéo · 1 min 30Chemins absolus et relatifs/, ., .. et ~
Animation réalisée pour ce cours. Voix off et musique générées par IA (Google Gemini et Lyria).

Un chemin est l'adresse d'un fichier dans l'arbre. On l'écrit de deux façons :

📮

Absolu

Commence par / : part de la racine. Fonctionne depuis n'importe où, comme une adresse postale complète.

/home/user/Documents/rapport.txt
👉

Relatif

Ne commence pas par / : part du dossier courant. Plus court, mais dépend de l'endroit où l'on se trouve.

Documents/rapport.txt

Les quatre symboles magiques

SymboleSignifieExemple
/La racine (au début d'un chemin) ou le séparateur de dossierscd /etc
.Le dossier courantcp /etc/hostname . (copier ici)
..Le dossier parent (un niveau au-dessus)cd ..
~Ton dossier personnelcd ~/Documents

Se déplacer : pwd et cd

user@ubuntu:~$ pwd
/home/user
user@ubuntu:~$ cd Documents              # relatif : depuis /home/user
user@ubuntu:~/Documents$ cd /var/log     # absolu : depuis la racine
user@ubuntu:/var/log$ cd ..              # remonter d'un niveau
user@ubuntu:/var$ cd -                  # revenir au dossier précédent
/var/log
user@ubuntu:/var/log$ cd                # sans argument : retour à la maison
user@ubuntu:~$

Regarde l'invite : la partie bleue affiche le dossier courant. Elle te dit toujours où tu es.

Absolu ou relatif ?

Au quotidien, le relatif va plus vite. Dans les scripts, les tâches planifiées et les fichiers de configuration, utilise toujours des chemins absolus : le dossier courant y est imprévisible.

Lister avec ls

CommandeEffet
lsListe le dossier courant
ls -lFormat long : droits, propriétaire, taille, date
ls -aInclut les fichiers cachés (ceux dont le nom commence par un point)
ls -lhTailles lisibles : 4,0K, 12M, 1,5G
ls -lt / ls -ltrTrié par date, du plus récent / du plus ancien
ls -lSTrié par taille
ls -RRécursif : descend dans tous les sous-dossiers
ls -ld dossierInfos sur le dossier lui-même, pas sur son contenu

Lire une ligne de ls -l

-rw-r--r--type + droitsmodule 04
1liensnb de noms
user userpropriétaire, groupeà qui ?
2,1Ktailleavec -h
oct. 22 10:41datedernière modif.
notes.txtnom

Les fichiers cachés

Tout fichier dont le nom commence par un point est caché : .bashrc, .config/… Ce n'est pas une protection, juste une façon de ranger la configuration personnelle pour qu'elle n'encombre pas l'affichage. ls -a les révèle, tout comme Ctrl + H dans le gestionnaire de fichiers.

user@ubuntu:~$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .cache  .config  .local  .profile  Bureau  Documents  ...

Tu remarques . et .. en tête de liste : ce sont de vraies entrées, présentes dans chaque dossier.

Voir l'arbre

La commande tree dessine l'arborescence d'un dossier. Installe-la avec sudo apt install tree, puis essaie tree -L 2 ~ (deux niveaux de profondeur).

Créer, copier, déplacer, supprimer

CommandeActionOptions utiles
touch fichierCrée un fichier vide (ou met à jour sa date)
mkdir dossierCrée un dossier-p : crée aussi les parents manquants
cp source destinationCopie-r : dossiers entiers · -i : demande avant d'écraser · -v : affiche ce qui est fait
mv source destinationDéplace ou renomme-i : demande avant d'écraser
rm fichierSupprime un fichier-r : dossiers · -i : confirmation · -f : force, sans question
rmdir dossierSupprime un dossier vide
user@ubuntu:~$ mkdir -p labo/notes/2026         # crée les 3 niveaux d'un coup
user@ubuntu:~$ cd labo
user@ubuntu:~/labo$ touch idees.txt
user@ubuntu:~/labo$ cp idees.txt notes/              # copier dans un dossier
user@ubuntu:~/labo$ mv idees.txt brouillon.txt       # renommer
user@ubuntu:~/labo$ mv brouillon.txt notes/2026/     # déplacer
user@ubuntu:~/labo$ cp -r notes sauvegarde            # copier tout un dossier
user@ubuntu:~/labo$ rm -ri sauvegarde                 # supprimer, en confirmant chaque élément
rm : descendre dans le répertoire 'sauvegarde' ? o
...
Renommer, c'est déplacer

Il n'y a pas de commande « renommer » : mv ancien nouveau fait le travail. Si la destination est un dossier existant, le fichier y est déplacé ; sinon, il prend ce nouveau nom.

rm ne pardonne pas

Pas de corbeille dans le terminal : un fichier supprimé avec rm est perdu. rm -rf supprime tout un dossier, sans poser la moindre question, et avec sudo il peut détruire le système entier. Trois réflexes :

  • relire la commande avant Entrée, surtout s'il y a un * ou un / ;
  • vérifier avec ls ce que tu vas supprimer : ls dossier/*.log avant rm dossier/*.log ;
  • dans la VM, prendre un instantané avant toute manipulation risquée.

Les jokers : agir sur plusieurs fichiers d'un coup

Le shell remplace certains caractères spéciaux par la liste des fichiers qui correspondent, avant de lancer la commande :

JokerCorrespond àExemple
*N'importe quelle suite de caractères (même vide)ls *.txt : tous les fichiers .txt
?Exactement un caractèrels photo?.jpg : photo1.jpg, photoA.jpg…
[abc], [0-9]Un caractère parmi une liste ou un intervallels rapport[1-3].pdf
{a,b,c}Génère chaque variante (expansion d'accolades)mkdir -p projet/{src,doc,tests}
user@ubuntu:~/labo$ touch jour{1..5}.log        # crée jour1.log … jour5.log
user@ubuntu:~/labo$ echo jour[2-4].log         # astuce : echo montre ce que le joker donnera
jour2.log jour3.log jour4.log
user@ubuntu:~/labo$ rm jour*.log
Prévisualiser avec echo

Avant un rm ou un mv avec un joker, remplace la commande par echo : tu vois exactement la liste de fichiers que le shell va lui passer. Zéro risque.

Les liens : un fichier, plusieurs noms

Pour comprendre les liens, il faut savoir qu'un nom de fichier n'est qu'une étiquette. Le contenu réel est décrit par un inode, une fiche numérotée qui indique où sont les données sur le disque. Un dossier, c'est une liste de couples « nom → numéro d'inode ».

Lien physique (ln) notes.txt copie-dure inode 1342les données deux noms, le même contenu : supprimer l'un ne touche pas l'autre Lien symbolique (ln -s) raccourci notes.txt inode 1342les données pointe vers le nom un raccourci vers un chemin : si la cible disparaît, le lien est « cassé »
Un lien physique est un second nom pour le même inode. Un lien symbolique est un petit fichier qui contient un chemin.
user@ubuntu:~/labo$ echo "Linux" > notes.txt
user@ubuntu:~/labo$ ln notes.txt copie-dure          # lien physique
user@ubuntu:~/labo$ ln -s notes.txt raccourci        # lien symbolique
user@ubuntu:~/labo$ ls -li                            # -i affiche le numéro d'inode
1342 -rw-rw-r-- 2 user user 6 oct. 22 11:02 copie-dure
1342 -rw-rw-r-- 2 user user 6 oct. 22 11:02 notes.txt
1377 lrwxrwxrwx 1 user user 9 oct. 22 11:02 raccourci -> notes.txt

Les deux premiers partagent le même inode, et le compteur de liens vaut 2. Le lien symbolique a son propre inode et affiche sa cible avec ->.

Lien physiqueLien symbolique
Commandeln cible nomln -s cible nom
Vers un dossiernonoui
Vers un autre disquenonoui
Si on supprime l'originalle contenu reste accessiblele lien est cassé
Usage courantRare, sauvegardesPartout : /bin, configurations, versions de logiciels

Glossaire du module

Racine
Le dossier /, sommet de l'arborescence.
FHS
La norme qui fixe le rôle de chaque dossier du système.
Dossier courant
Le dossier où l'on se trouve (pwd), noté ..
Dossier parent
Le dossier au-dessus, noté ...
Dossier personnel
/home/utilisateur, noté ~.
Chemin absolu
Chemin qui part de la racine : commence par /.
Chemin relatif
Chemin qui part du dossier courant.
Fichier caché
Fichier dont le nom commence par un point.
Joker (glob)
Caractère spécial (*, ?, [ ]) remplacé par le shell par les noms correspondants.
Inode
La fiche qui décrit un fichier et localise ses données sur le disque.
Lien physique
Un nom supplémentaire pour le même inode.
Lien symbolique
Un raccourci qui contient le chemin de sa cible.

🧠 Quiz : as-tu tout retenu ?

1. Où se trouve la configuration du système ?
/etc contient la configuration, en fichiers texte. /var contient les données variables comme les journaux.
2. Lequel de ces chemins est absolu ?
Un chemin absolu commence par /.
3. Tu es dans /var/log. Où t'emmène cd ../.. ?
Un .. remonte à /var, le second à la racine /.
4. Comment renommer a.txt en b.txt ?
mv déplace et renomme. cp créerait une copie et laisserait l'original.
5. mkdir labo/a/b échoue car labo/a n'existe pas. Quelle option corrige ça ?
mkdir -p crée tous les dossiers parents manquants.
6. Que liste ls *.jpg ?
Le shell remplace *.jpg par les noms correspondants du dossier courant.
7. Comment afficher les fichiers cachés ?
-a (all). Attention : -h signifie human-readable (tailles lisibles).
8. On supprime le fichier cible d'un lien symbolique. Le lien…
Le lien symbolique contient un chemin ; si plus rien n'existe à ce chemin, il pointe dans le vide.
Réponds aux questions pour voir ton score.

🚀 Mission pratique

À faire dans la machine virtuelle

Coche chaque étape une fois faite : sa correction s'affiche juste en dessous.

  • ✅ Correction
    $ cd /
    $ ls
    $ cd /etc
    $ pwd
    /etc
    $ cd /var/log && ls
    $ cd /dev && ls
  • ✅ Correction
    $ cat /etc/os-release
    PRETTY_NAME="Ubuntu 24.04.x LTS"
    ...

    Le chemin commence par / : il fonctionne quel que soit le dossier courant.

  • ✅ Correction
    $ cd
    $ cd ~
    $ cd /home/user
    # ou en relatif depuis /var/log :
    $ cd ../../home/user
  • ✅ Correction
    $ ls -a ~
    .  ..  .bash_history  .bashrc  .cache  .config  .profile  Bureau  Documents  ...
  • ✅ Correction
    $ mkdir -p ~/labo/projet/{src,doc,tests}
    $ ls ~/labo/projet
    doc  src  tests
  • ✅ Correction
    $ cd ~/labo/projet
    $ touch src/main.sh doc/notes.txt
    $ cp doc/notes.txt doc/notes.bak
    $ mv doc/notes.bak doc/ancien.txt
    $ mv doc/ancien.txt tests/
    $ ls *
    doc:
    notes.txt
    src:
    main.sh
    tests:
    ancien.txt
  • ✅ Correction
    $ cd ~/labo && touch jour{1..9}.log
    $ echo jour[3-6].log
    jour3.log jour4.log jour5.log jour6.log
    $ rm jour[3-6].log
    $ ls
    jour1.log  jour2.log  jour7.log  jour8.log  jour9.log  projet
  • ✅ Correction
    $ echo "test" > cible.txt
    $ ln cible.txt dur.txt
    $ ln -s cible.txt sym.txt
    $ ls -li
    1351 -rw-rw-r-- 2 user user 5 ... cible.txt
    1351 -rw-rw-r-- 2 user user 5 ... dur.txt
    1352 lrwxrwxrwx 1 user user 9 ... sym.txt -> cible.txt
    $ rm cible.txt
    $ cat dur.txt
    test
    $ cat sym.txt
    cat: sym.txt: Aucun fichier ou dossier de ce nom

    Même inode pour cible.txt et dur.txt : le contenu survit. Le lien symbolique, lui, est cassé (affiché en rouge par ls).

  • ✅ Correction
    $ ls -l /bin
    lrwxrwxrwx 1 root root 7 avril 22  2024 /bin -> usr/bin
  • ✅ Correction
    $ sudo apt install tree
    $ tree ~/labo
    $ rm -ri ~/labo
    rm : descendre dans le répertoire '/home/user/labo' ? o
    ...

    Réponds o (oui) à chaque question. Pour ne pas confirmer chaque fichier, rm -rI ne pose qu'une seule question.

💬 Questions fréquentes

Les questions qui reviennent le plus souvent sur ce module, avec leurs réponses.

Où sont passés « Bureau », « Documents »… dans le terminal ?

Ce sont des dossiers ordinaires de ton dossier personnel : ~/Bureau, ~/Documents, ~/Téléchargements. Leur nom suit la langue choisie à l'installation : sur un système en anglais, ce serait ~/Desktop, ~/Downloads… Astuce : les accents se tapent mal ? Commence le nom et utilise Tab.

« Permission denied » quand je crée un fichier dans /etc ou à la racine

C'est normal et c'est une protection : en dehors de ton dossier personnel (et de /tmp), seul root peut écrire. On verra au module 04 comment fonctionnent ces droits, et quand utiliser sudo à bon escient.

Comment récupérer un fichier supprimé avec rm ?

En pratique, on ne peut pas : rm ne passe pas par la corbeille. D'où l'importance des sauvegardes (module 15) et, dans une VM, des instantanés. Si tu veux une corbeille en ligne de commande, le paquet trash-cli fournit la commande trash.