La hiérarchie du système de fichiers

De Wiki de la communauté Mandriva.


Lorsque l'on fait ses débuts dans le monde de Linux, il est parfois difficile de comprendre comment s'organise la hiérarchie du système de fichiers de Linux (ou FHS, soit Filesystem Hierarchy Standard), c'est-à-dire l'organisation de l'arborescence des répertoires. Nous allons donc vous aider à vous y retrouver.


Sommaire

Comprendre la hiérarchie du système de fichiers de Mandriva Linux pour apprendre à se repérer

La première chose à dire, c'est que l'arborescence d'un système UNIX comme Linux, est centralisée. Mais qu'entendons-nous par centralisée ? Contrairement à un système Windows, où les partitions correspondent à des lettres de lecteurs, et où chaque lecteur possède ses répertoires, sous Linux, tout répertoire ou sous-répertoire est contenu dans la racine (root en anglais) de l'arborescence. Cette racine est notée "/". La première barre oblique (slash) des répertoires /usr/local/bin, /home/user, /root, /dev, /usr/share/doc/… correspond donc à l'idée que ces répertoires sont attachés à la racine "/". Pour ce qui est des partitions et des disques amovibles, ils sont montés (mount en anglais) dans un répertoire qui est rattaché à la racine de l'arborescence. Par exemple, une partition (hdb1...) pourra être montée sur le répertoire /usr. Ainsi, /usr/hdb1/ correspondra au contenu de la partition. Le répertoire /usr peut aussi contenir un répertoire dans lequel une autre partition (hdb2...) est montée. On peut donc avoir une partition montée sur /usr/hdb1 et une autre sur /usr/local/hdb2. De même, les périphériques amovibles sont montés dans des répertoires (classiquement /mnt/cdrom ou /media/cdrom pour un lecteur de CD-ROM).

Où se trouvent les applications ?

On entend par application, tout fichier pouvant être exécuté. Ainsi, une application peut être un simple programme en ligne de commande comme grep, un script perl ou encore une application graphique comme Firefox. Typiquement, les applications se trouvent dans les répertoires /bin, /sbin, /usr/bin, /usr/sbin.

Pourquoi autant de répertoires différents (sachant que l'on peut en avoir couramment d'autres) ? Pour une question de sécurité et d'organisation. Ainsi on trouvera essentiellement dans le répertoire /bin, des applications en ligne utiles pour l'exécution des scripts shell comme les scripts de démarrage (scripts qui gèrent le lancement des différents éléments de votre ordinateur lorsque vous démarrez votre Linux), ou encore pour la maintenance d'un système.

  • /sbin quant à lui, regroupe les applications de base en ligne de commande permettant de configurer le système, comme la commande mount pour monter une partition, fdisk pour créer, supprimer ou formater une partition, ifconfig qui permet de configurer le réseau. En général, seul l'utilisateur root peut exécuter les applications dans /sbin ("s" comme "super" faisant référence au "super utilisateur" : root).

Les utilisateurs avancés qui installent par eux-mêmes des applications (qu'elles soient précompilées ou compilées par leur soin) les placent parfois dans le répertoire /opt (dont certains vont jusqu'à faire une partition autonome).

Où se trouvent les fichiers de données ?

Chaque application est indissociable de son lot de fichiers de données. Par exemple, un logiciel comme GCompris (logiciel éducatif) contient des images, des sons, et des fichiers textes qui lui sont propres et dont gcompris a besoin pour son bon fonctionnement. Ces fichiers de données sont placés dans /usr/share/nom de l'application. On peut aussi les trouver dans /usr/local/share ou /opt/share si l'application est installée dans /usr/local/bin ou /opt/bin. Ainsi, les fonds d'écran installés par le rpm wallpapers sont placés dans /usr/share/wallpapers.

Où se trouvent les fichiers de configuration ?

Les fichiers de configuration diffèrent des fichiers de données par le fait qu'ils peuvent être modifiés par les utilisateurs. De manière générale, les fichiers de configuration sont placés dans /etc (editing text config) pour les applications système ou serveur et dans le répertoire utilisateur pour les applications classiques. Ainsi les fichiers de configuration d'un serveur Apache (application serveur) se trouvent dans /etc/httpd/ et les fichiers de configuration de KDE se trouvent dans ~/.kde où ~ représente le dossier personnel.

Vous trouverez notamment dans ce répertoire :

  • le répertoire /etc/X11 qui contient les fichiers de configuration du serveur graphique X.
  • les répertoires /etc/rc*.d qui contiennent les scripts de démarrage, mais aussi bien d'autres répertoires qui relèvent d'une étude plus approfondie.
  • les fichiers de configuration du réseau, comme /etc/hostname qui recueille le nom de votre machine.
  • le fichier etc/hosts, qui définit la correspondance entre les adresses IP de votre machine et leur nom d'hôtes, avec les fichiers /etc/hosts.allow et /etc/hosts.deny qui, respectivement permettent et interdisent l'accès du système à certaines machines selon l'adresse IP que vous avez spécifiée.
  • le fichier de configuration du chargeur de démarrage Lilo (lilo.conf).
  • le fichier permettant d'exécuter des tâches périodiques (le logiciel Cron ou Anacron) dans le répertoire /etc/anacrontab.
  • le fichier /etc/passwd qui contient les mots de passe, comptes utilisateurs, etc. fichier vital, donc.
  • le fichier /etc/modules.conf qui regroupe les différents paramètres de chargement des modules du noyau.
  • les fichiers /etc/fstab et /etc/mtab qui se chargent de regrouper les divers systèmes de fichiers que le noyau Linux est susceptible de gérer pour pouvoir les monter (les partitions Windows, les divers périphériques, etc.). Des explications sur ces fichiers de configurations sont disponibles ici : fstab et mtab.

Où se trouvent les bibliothèques (library en anglais) ?

La plupart des programmes possèdent des fonctionnalités identiques, comme par exemple ouvrir un fichier. Cela veut dire que la majorité des programmes capables d'ouvrir un fichier ont une partie qui est commune : la partie permettant d'ouvrir un fichier. Pour éviter cette redondance, on fait souvent appel à une bibliothèque. Au lieu qu'un exécutable ne contienne toutes les fonctionnalités de l'application, on va découper le programme et mettre ce qui peut être commun (ou réutilisé) dans une bibliothèque. Au lancement de l'exécutable, on fera donc appel aux fonctionnalités présentes dans les bibliothèques appelées par le programme. Ainsi, une même bibliothèque peut être utilisée par plusieurs programmes (c'est le but recherché). Les avantages sont un gain de place, et la possibilité de corriger un bogue présent dans un ensemble de logiciels si ce bogue appartient à une bibliothèque. L'inconvénient est que si une bibliothèque est supprimée par mégarde, l'ensemble des logiciels qui y faisaient appel ne pourront plus fonctionner. Les bibliothèques se trouvent en général dans /lib, /usr/lib, /usr/local/lib, /opt/lib.

Les principaux répertoires

Comme nous venons de le voir, la hiérarchie du système de fichiers de Linux Mandriva est très différente de celle de Windows et DOS. Toute l'arborescence du système dépend du répertoire principal, le répertoire racine (/). Les différents sous-répertoires à la racine du répertoire racine (autrement dit les principaux répertoires) sont les suivants.

Le répertoire /bin/

Le répertoire /bin/ (binary = exécutables binaires) contient les applications ordinaires (en mode mono-utilisateur), c'est-à-dire les fichiers exécutables régulièrement installés par Mandriva et susceptibles d'être utilisés par tous les utilisateurs de la machine.

Le répertoire /boot/

Comme son nom l'indique (boot = amorce, initialisation, lancement du système), le répertoire /boot/ contient les fichiers de démarrage du système, le fameux « noyau linux » (kernel). On y trouve aussi les fichiers du chargeur de démarrage Grub (le fichier de config de Grub est : /boot/grub/menu.lst). Il est utile que ce répertoire soit sur une partition distincte de / (une petite partition de 50 Mo est très largement suffisante), si vous souhaitez par la suite installer plusieurs distributions Linux en même temps. Ce partitionnement n'est pas réalisé lors de l'installation initiale si vous optez pour « partitionnement automatique ».

Le répertoire /dev/

Le répertoire /dev/ (device = périphérique) contient les points d'entrées vers les gestionnaires de périphériques physiques. Sous Linux, en effet, tous les périphériques sont représentés par un fichier et sont placés dans le répertoire /dev. Une souris pourra être représentée par /dev/mouse, une carte son par /dev/snd...


Le répertoire /etc/

Le répertoire /etc/ (Editing Text Config = fichier de configuration) contient les fichiers de configuration et les scripts de démarrage du système.

  • /etc/rc.d/ : stocke les scripts de démarrage et de contrôle des services ;
  • /etc/skel/ : stocke les fichiers destinés à être copié dans le répertoire de l'utilisateur, lors de la création du compte de celui-ci ;
  • /etc/sysconfig/ : stocke les fichiers de configuration des périphériques, etc.

Le répertoire /home/

Le répertoire /home/ (home = chez soi) contient les répertoires personnels (données, paramétrages et dossiers des différents utilisateurs ordinaires). Il correspond dans une certaine mesure au répertoire Documents and Settings des systèmes Windows. Ce répertoire peut faire l'objet d'une partition distincte de /.

Par défaut, le répertoire personnel d'un utilisateur porte le nom de cet utilisateur. Par exemple, si sur une machine nous trouvons trois utilisateurs, alice, rachid et charles, leurs répertoires personnels seront respectivement nommés /home/alice/, /home/rachid/ et /home/charles/.

Au moment de l'installation du système, il est souhaitable d'installer le répertoire /home sur une partition distincte de celle qui abrite le répertoire général du système /. C'est d'ailleurs ce qui vous est proposé par défaut : vous n'aurez qu'à vous donner la peine d'accepter (si vous voulez plus de détails là-dessus, consultez la page Partitionner). Résultat, si vous crashez votre Mandriva et que vous devez la réinstaller, pas de frayeur comme sous Windows !! Avec Mandriva, installez, réinstallez sans perdre une miette de vos données personnelles, comptes de messageries, courriels et mots de passe de votre courrielleur préféré ! Ouf, vous êtes sous Mandriva Linux !

Le répertoire /initrd/

Le répertoire /initrd/ contient ? ? ?

Le répertoire /lib/

Le répertoire /lib/ (library = bibliothèque) contient les bibliothèques, c'est-à-dire les fichiers de commandes communes utilisés par les exécutables (concerne principalement les programmes de démarrage).

Le répertoire /lib64/

Le répertoire /lib64/ (library = bibliothèque) contient les bibliothèques pour 64 bits.

Le répertoire /lost+found/

Le répertoire /lost+found/ (lost, found = perdu, trouvé), créé automatiquement à chaque démarrage du système, est destiné à stocker les fichiers récupérés suite à un incident sur le système (après une coupure intempestive de l'alimentation, par exemple). En l'absence d'incident, ce répertoire, en toute logique, devrait rester vide.

Le répertoire /media/

Le répertoire /media/ contient les sources d'origine de stockage de fichiers et programmes (périphériques installés ou montés). En cas de double boot avec Windows, le répertoire /media contiendra le ou les disques utilisés par Windows.

Le répertoire /mnt/

Le répertoire /mnt/ (mount = montage) est l'ancien répertoire virtuel dans lequel se situaient généralement les périphériques installés (cf. /media). Il s'agit d'un répertoire vide, ou contenant une série de répertoires vides prédéfinis, réservé au montage de systèmes de fichiers tiers (montage de périphériques en mode bloc).

Le répertoire /opt/

Le répertoire /opt/ (optional = optionnel) contient les installations de logiciels et de scripts effectuées "à la main", c'est-à-dire non installées par Mandriva.

Le répertoire /proc/

Le répertoire /proc/ contient un système de fichiers virtuels représentant l'état du système en cours d'exécution. Ces fichiers affichent des informations en temps réel sur le noyau, la mémoire vive et les processus.

Le répertoire /root/

Le répertoire /root/ (root = racine) contient le répertoire personnel du super-utilisateur (administrateur). Comme ce n'est pas un utilisateur comme les autres, son répertoire est placé directement dans la racine.

  • Voir l'article Root

Le répertoire /sbin/

Le répertoire /sbin/ (static binary) contient les applications réservées au super-utilisateur, c'est-à-dire les exécutifs système.

Le répertoire /sys/

Le répertoire /sys/ contient les commandes système ? ? ?

Le répertoire /tmp

Le répertoire /tmp/ (temp = temporaire) contient les fichiers temporaires utilisés par le système. C'est l'équivalent du temp windowsien.

Le répertoire /usr/

Le répertoire /usr/ (Unix System Ressources = ressources du système Unix) contient les ressources du système (données utilisées par les applications, et que les utilisateurs peuvent se partager). Il regroupe différents programmes (qui ne sont ni dans /bin, ni dans /sbin) ainsi que de la documentation et les sources de ces logiciels.

Le répertoire /var/

Le répertoire /var/ (variable) contient les données variables du système (journaux, files d'attente pour l'impression, messages...) Il s'agit de fichiers susceptibles de changer fréquemment.