Cours Linux / Comprendre les chemins et les principaux répertoires

Sous Linux, les fichiers sont accessibles dans une arborescence qui commence par le répertoire racine /. Un chemin absolu part de cette racine ; un chemin relatif part du répertoire de travail courant. Distinguer les deux permet de comprendre quel objet une commande va chercher avant de la lancer.

Cette leçon explique la lecture des chemins et le rôle des principaux répertoires. Elle ne demande ni de formater un disque ni de modifier les fichiers du système. Les bases du terminal et du shell permettent de situer ensuite un chemin parmi les arguments d’une commande.

Comprendre la racine et les points de montage

La racine / est le point de départ de la hiérarchie visible par un processus. Contrairement à la présentation habituelle des volumes Windows par lettres, un disque supplémentaire peut être raccordé à un répertoire de cette même hiérarchie Linux. Ce raccordement s’appelle un montage, et le répertoire où il apparaît un point de montage.

Un chemin comme /home/learner/documents ne révèle donc pas à lui seul le disque physique qui porte les données. Une partie de l’arborescence peut venir d’une autre partition, d’un stockage distant ou d’un système de fichiers virtuel. La documentation Linux de résolution des chemins décrit notamment la racine, le répertoire courant et la traversée des montages.

Ne confondez pas / et /root. Le premier est la racine de l’arborescence ; /root est généralement le dossier personnel du compte administrateur root. Un compte ordinaire dispose souvent d’un dossier personnel sous /home, mais son emplacement dépend de la configuration du compte. Le mot root peut ainsi désigner un compte ou une racine selon le contexte.

Le même texte de chemin n’indique pas nécessairement le même objet dans deux machines virtuelles, conteneurs ou environnements différents. Avant de comparer des chemins, commencez par savoir dans quel système et dans quelle session vous travaillez.

Lire un chemin absolu et un chemin relatif

Un chemin absolu commence par /. Dans un même environnement et à montage inchangé, /etc/hosts désigne le même emplacement quel que soit votre répertoire courant. Un chemin relatif n’a pas ce point de départ : il se lit depuis le répertoire de travail de la commande.

Si le répertoire courant est /home/learner, notes/todo.txt désigne le chemin /home/learner/notes/todo.txt. Si vous vous déplacez ensuite dans /home/learner/projects, le même texte notes/todo.txt cherche un autre emplacement, sous projects.

Notation Signification Exemple
/ au début Partir de la racine /etc/hosts
. Répertoire courant ./script.sh
.. Répertoire parent ../notes.txt
~ au début d’un mot non cité dans Bash Expansion vers le dossier personnel ~/notes

Dans un chemin ordinaire, . et .. désignent le répertoire lui-même et son parent. À la racine, /.. reste /. Les liens symboliques peuvent rendre la différence entre un chemin affiché et le parcours réel moins intuitive ; ne supprimez pas simplement des morceaux de texte pour conclure que deux chemins visent forcément le même objet.

Le caractère ~ relève du shell : Bash le remplace avant de transmettre l’argument au programme. Avec '~/notes', les apostrophes empêchent cette expansion ; le programme reçoit le texte ~/notes. Ce texte peut alors désigner un chemin relatif contenant un répertoire littéralement nommé ~. Le manuel Bash sur l’expansion du tilde précise ces règles.

Le séparateur Linux est /. Pour un nom contenant un espace, comme project notes, des apostrophes droites peuvent regrouper l’ensemble en un argument : 'project notes'. Les espaces contenus dans le nom restent présents ; les apostrophes servent au shell et ne font pas partie du nom transmis.

Sur les systèmes Linux habituels sensibles à la casse, Notes et notes sont des noms distincts. Certains systèmes de fichiers ou réglages peuvent traiter la casse autrement : le noyau documente par exemple une fonction de recherche insensible à la casse pour ext4. Pour écrire ou recopier un chemin, respectez toujours les caractères exacts au lieu de supposer une correction automatique.

Reconnaître les principaux répertoires

Les rôles ci-dessous servent de repères. Une installation minimale, une distribution particulière ou un lien de compatibilité peut modifier la disposition réelle. La page hier(7), sur la hiérarchie Linux, et la description UAPI du système de fichiers Linux donnent le contexte de ces emplacements.

Répertoire Rôle habituel
/home Dossiers personnels des utilisateurs ordinaires
/root Dossier personnel de root, distinct de la racine /
/etc Configuration du système et de ses services
/usr Programmes et ressources installés ; ce n’est pas le dossier des documents personnels
/var Données variables, dont journaux, caches et états de services
/tmp Fichiers temporaires soumis aux règles de nettoyage du système
/dev Nœuds de périphériques et autres interfaces associées
/proc Interface virtuelle exposant notamment les processus et des informations du noyau
/sys Interface virtuelle exposant notamment les objets et périphériques connus du noyau
/boot Fichiers utilisés pour le démarrage, selon la configuration
/mnt et /media Emplacements conventionnels pour certains montages temporaires ou supports amovibles ; tous les montages ne s’y trouvent pas

Voir une entrée dans /proc ou /sys ne signifie pas qu’il s’agit d’un document ordinaire stocké sur le disque. Certaines écritures peuvent agir sur des réglages du noyau. Ne les modifiez pas comme des notes de cours. Les fichiers de /etc demandent eux aussi de comprendre le service concerné et de préserver une copie avant une modification utile.

/tmp convient aux données temporaires, pas à la conservation de vos seuls exemplaires importants. Son nettoyage dépend de la politique du système. Pour vos exercices de fichiers, travaillez dans un espace personnel prévu à cet effet et vérifiez ce que vous allez déplacer ou supprimer.

S’exercer à lire une arborescence

Considérez cette arborescence fictive. Elle illustre des noms pour l’exercice ; elle ne prétend pas décrire les fichiers présents sur votre ordinateur.

/
└── home
    └── learner
        ├── notes.txt
        └── projects
            └── report.txt

Le chemin /home/learner/projects/report.txt se lit de gauche à droite : racine, home, learner, projects, puis l’entrée finale report.txt. L’extension .txt suggère un usage, mais elle ne prouve ni le type réel de l’objet ni son existence.

Si vous êtes dans /home/learner/projects, report.txt et ./report.txt désignent l’entrée du répertoire courant dans cet exemple. ../notes.txt remonte au parent learner, puis désigne notes.txt. En revanche, notes.txt sans ../ chercherait une entrée sous projects.

Vous pouvez vérifier votre compréhension en changeant seulement l’hypothèse de départ : si le répertoire courant devient /home/learner, projects/report.txt vise le rapport, tandis que ../notes.txt vise un emplacement sous /home. Le texte d’un chemin relatif reste identique, mais son point de départ change.

Vérifier le contexte avant une commande

  1. Identifiez le répertoire courant. Le guide de pwd pour afficher la position courante explique ce contrôle.
  2. Repérez le point de départ du chemin. Est-ce une racine /, un chemin relatif ou une notation que le shell doit développer ?
  3. Contrôlez l’objet et l’accès. Un chemin bien formé peut viser une entrée absente ou inaccessible. Une partie intermédiaire doit permettre la traversée attendue.
  4. Relisez l’action et sa destination. Pour une copie, un déplacement ou une suppression, distinguez les chemins source et destination avant de valider.

La lecture d’un chemin et la vérification de son existence sont deux opérations différentes. Utilisez ls pour examiner les entrées et cd pour changer de répertoire avec cette distinction en tête. Un message d’accès refusé ne signifie pas nécessairement que le fichier manque, et aucun raccourci de chemin ne remplace les droits requis pour atteindre l’objet.