Contactez-nous

Comprendre l'arborescence Linux standard (/, /home, /etc, /var, /usr, /bin, /sbin)

Explorez la structure des répertoires Linux. Découvrez le rôle de /, /home, /etc, /var, /usr, /bin, /sbin pour mieux comprendre votre système.

La carte du territoire : l'organisation hiérarchique des fichiers sous Linux

Sous Linux, tous les fichiers et répertoires sont organisés selon une structure hiérarchique, partant d'un point unique appelé la "racine", symbolisé par un simple slash /. Cette organisation, largement standardisée par le Filesystem Hierarchy Standard (FHS), assure que les utilisateurs et les logiciels peuvent s'attendre à trouver certains types de fichiers à des emplacements prévisibles, quelle que soit la distribution Linux utilisée (bien qu'il puisse y avoir de légères variations). Comprendre la logique derrière cette arborescence est une étape fondamentale pour se sentir à l'aise avec le système et pour savoir où chercher ou stocker des informations.

Imaginez un arbre inversé : la racine / est le tronc, et tous les autres répertoires sont des branches qui en partent, pouvant elles-mêmes contenir d'autres sous-branches (sous-répertoires) et des feuilles (fichiers). Chaque répertoire a un rôle spécifique, hébergeant des types de données ou de programmes particuliers. Cette approche centralisée contraste avec des systèmes comme Windows qui utilisent des lettres de lecteur distinctes (C:, D:, etc.) pour différentes partitions ou périphériques.

Dans ce sous-chapitre, nous allons explorer les principaux répertoires que vous rencontrerez directement sous la racine /. Connaître leur fonction vous aidera non seulement à naviguer plus intelligemment, mais aussi à comprendre où les logiciels s'installent, où les configurations sont stockées, et où vos propres fichiers doivent résider.

Les répertoires fondamentaux à la racine du système

Voici une description des répertoires les plus importants que vous trouverez typiquement à la racine (/) de votre système Linux :

  • / (la racine) : C'est le point de départ de toute l'arborescence. Tous les autres fichiers et répertoires sont contenus, directement ou indirectement, sous ce répertoire.
  • /bin (User Binaries) : Contient les programmes exécutables (commandes) essentiels disponibles pour tous les utilisateurs, y compris en mode mono-utilisateur (un mode de dépannage). Par exemple, des commandes comme ls, cp, mv, cat résident souvent ici. Sur les systèmes modernes, /bin est souvent un lien symbolique vers /usr/bin.
  • /sbin (System Binaries) : Similaire à /bin, mais contient les exécutables essentiels pour l'administration du système. Ces commandes sont typiquement utilisées par l'utilisateur root, comme fdisk, ifconfig (sur les anciens systèmes), ou reboot. Comme pour /bin, /sbin peut être un lien vers /usr/sbin.
  • /etc (Etcetera) : Ce répertoire est crucial car il héberge les fichiers de configuration de l'ensemble du système et des applications installées. On y trouve par exemple /etc/passwd (informations utilisateurs), /etc/fstab (montage des systèmes de fichiers), ou les configurations de votre serveur web. Il ne contient généralement pas de fichiers binaires.
  • /dev (Devices) : Linux traite les périphériques matériels (disques durs, souris, claviers, terminaux, etc.) comme des fichiers spéciaux. Le répertoire /dev contient ces fichiers de périphériques. Par exemple, /dev/sda pourrait représenter votre premier disque dur.
  • /proc (Processes) : C'est un système de fichiers virtuel qui fournit des informations sur les processus en cours d'exécution et sur le noyau. Les "fichiers" dans /proc ne sont pas stockés sur le disque mais générés dynamiquement par le noyau lorsque vous y accédez.
  • /var (Variable files) : Contient des fichiers dont le contenu est susceptible de changer fréquemment pendant le fonctionnement normal du système. On y trouve les logs (/var/log), les fichiers temporaires qui doivent persister entre les redémarrages (/var/tmp), les données des serveurs (comme les sites web dans /var/www), les files d'attente d'impression (/var/spool/cups), etc.
  • /tmp (Temporary files) : Destiné aux fichiers temporaires créés par les utilisateurs et les programmes. Le contenu de /tmp est souvent effacé lors du redémarrage du système.

Les répertoires utilisateurs et logiciels : /home et /usr

Deux autres répertoires de premier niveau méritent une attention particulière en raison de leur rôle central :

  • /home : C'est ici que les répertoires personnels des utilisateurs sont créés. Pour chaque utilisateur (sauf root), un sous-répertoire portant son nom est généralement créé sous /home (par exemple, /home/utilisateur1, /home/marie). C'est dans cet espace que les utilisateurs stockent leurs documents, leurs fichiers de configuration personnels (souvent des fichiers cachés commençant par un point, comme .bashrc), leurs téléchargements, etc. C'est l'équivalent du dossier "Utilisateurs" ou "Documents and Settings" sur d'autres systèmes.
  • /usr (Unix System Resources) : Ce répertoire est l'un des plus volumineux, car il contient la majorité des logiciels utilisateurs, des bibliothèques partagées, de la documentation et des fichiers d'en-tête pour le développement. Sa structure interne est elle-même une mini-arborescence :
    • /usr/bin : Contient la plupart des commandes exécutables par les utilisateurs qui ne sont pas essentielles au démarrage du système (contrairement à /bin).
    • /usr/sbin : Similaire à /usr/bin, mais pour les commandes d'administration non essentielles au démarrage.
    • /usr/lib ou /usr/lib64 : Bibliothèques pour les programmes dans /usr/bin et /usr/sbin.
    • /usr/local : Traditionnellement utilisé pour les logiciels compilés localement à partir des sources (par l'administrateur système), afin de ne pas interférer avec les logiciels installés par le gestionnaire de paquets de la distribution. Il possède sa propre hiérarchie (/usr/local/bin, /usr/local/lib, etc.).
    • /usr/share : Données partagées indépendantes de l'architecture, comme la documentation (/usr/share/doc), les pages de manuel (/usr/share/man), les icônes, etc.
    • /usr/include : Fichiers d'en-tête C/C++ pour la compilation de logiciels.

Autres répertoires importants et la flexibilité de Linux

D'autres répertoires existent également à la racine, bien que leur usage puisse être moins fréquent pour un utilisateur débutant :

  • /boot : Contient les fichiers nécessaires au démarrage du système, y compris le noyau Linux lui-même et le chargeur d'amorçage (GRUB). Il est crucial pour le démarrage du système.
  • /lib, /lib32, /lib64, /libx32 : Contiennent les bibliothèques partagées essentielles requises par les programmes dans /bin et /sbin, ainsi que par le noyau lui-même. Le nom exact peut varier en fonction de l'architecture du système. Souvent, ce sont des liens symboliques vers des sous-répertoires de /usr/lib.
  • /mnt (Mount) : Historiquement, un point de montage temporaire générique pour les systèmes de fichiers montés manuellement (comme une clé USB).
  • /media : Un point de montage plus moderne pour les médias amovibles (clés USB, CD-ROM, disques externes) qui sont souvent montés automatiquement ici par le système.
  • /opt (Optional) : Destiné à l'installation de paquets logiciels "optionnels" ou tiers, souvent propriétaires ou qui ne suivent pas la structure standard. Chaque application s'installe généralement dans son propre sous-répertoire (ex: /opt/mon_logiciel).
  • /root : Le répertoire personnel de l'utilisateur root (superutilisateur). Il n'est pas situé dans /home pour des raisons de sécurité et pour qu'il soit accessible même si la partition /home (si elle est séparée) n'est pas montée.
  • /srv (Service data) : Contient des données spécifiques aux services fournis par le système. Par exemple, si votre machine héberge des données pour un serveur FTP, elles pourraient être dans /srv/ftp.
  • /sys : Comme /proc, c'est un système de fichiers virtuel qui expose des informations sur les périphériques, les pilotes et certains aspects du noyau.

Comprendre cette structure n'est pas seulement une question de savoir où les choses se trouvent. Cela vous aide à comprendre la philosophie d'organisation de Linux, à anticiper les impacts de certaines commandes, et à gérer votre système de manière plus informée. Au fur et à mesure de votre apprentissage, vous vous familiariserez de plus en plus avec ces emplacements et leur signification.