Page précédente Page suivante Table des matières

2. La structure des répertoires

Contrairement à MS-DOS, Unix voit ses disques comme une unique arborescence. Une partition contient la racine du système de fichier, qu'on note / (et non c:\ comme sous MS-DOS). D'autres partitions, des disquettes, des CD-ROM, etc., peuvent être "montés" dans des répertoires. Par exemple, sur la machine que j'utilise en ce moment, le contenu du CD-ROM est accessible dans le répertoire /mnt/cdrom. Une fois les différents systèmes de fichiers montés, leur utilisation est transparente, sauf dans quelques cas particuliers: impossibilité d'écrire sur un CD-ROM... Bien souvent, sur les systèmes importants, les utilisateurs ne savent même pas dans quelle machine se trouve le disque dur qu'ils utilisent.

La structure "standard" des répertoires est décrite par le FHS (Filesystem Hierarchy Standard) auquel la plupart des distributions Linux essaient de se conformer.

Les principaux répertoires sont:

/bin :

contient les commandes de base (sous Unix, presque toutes les commandes sont "externes", et non intégrées au shell comme sous DOS).

/boot :

contient les informations nécessaires au démarrage de la machine.

/dev :

contient les fichiers spéciaux correspondant aux périphériques.

/etc :

la plupart des fichiers de configuration.

/home :

contient les répertoires personnels des utilisateurs. Par exemple, l'utilisateur toto a généralement pour répertoire /home/toto.

/lib :

contient les principales bibliothèques partagées (équivalent des DLL de Windows).

/lost+found :

quand un disque crashe pour une raison ou pour une autre, on utilise le programme fsck pour réparer (équivalent de scandisk); c'est là qu'il dépose les fragments de fichiers perdus.

/mnt :

les répertoires utilisés pour monter temporairement un système de fichiers (disquette, CD-ROM...).

/opt :

c'est la qu'on installe les logiciels commerciaux.

/proc :

un répertoire factice, dont les fichiers contiennent des infos sur l'état du système et des processus en cours d'exécution.

/root :

le répertoire de l'administrateur système. Il n'est pas sous /home pour des raisons que je détaillerai plus loin.

/sbin :

les commandes de base nécessaires a l'administration système (vérification et réparation des disques, mise en place du réseau...).

/tmp :

les fichiers temporaires.

/usr :

les logiciels installés avec le système.

/usr/X11R6 :

X-Window.

/usr/bin :

les exécutables.

/usr/dict :

les dictionnaires (pour les correcteurs d'orthographe et les craqueurs de mots de passe).

/usr/doc :

la doc.

/usr/etc :

des fichiers de config.

/usr/games :

les jeux.

/usr/include :

les fichiers d'en-tête pour la programmation.

/usr/info :

la doc au format GNU info.

/usr/lib :

les DLL non vitales.

/usr/local :

une sous-hiérarchie qui contient des logiciels compilés sur place à partir des sources. Organisation similaire à /usr.

/usr/man :

le manuel en ligne. Les fichiers sont compressés.

/usr/sbin :

principalement les serveurs réseau.

/usr/share :

des fichiers de données.

/usr/spool :

généralement un lien symbolique vers /var/spool.

/usr/src :

les sources de certains logiciels, principalement le noyau de Linux.

/var :

des données fréquemment réécrites.

/var/catman :

les pages du manuel décompressées (ça se fait à la demande).

/var/lib :

des bases de données, des fichiers de config...

/var/local :

complète /usr/local de la même façon que /var complète /usr.

/var/lock :

des fichiers qui servent à marquer l'utilisation de certaines ressources. Par exemple, quand un logiciel se sert du modem, il crée un fichier ici pour le signaler.

/var/log :

le journal du système.

/var/run :

principalement des infos sur les serveurs en fonctionnement.

/var/spool :

les spools: tout ce qui est "de passage" en attendant d'être utilisé par un logiciel. Ca inclut entre autres le mail, les news, les files d'attente des imprimantes...

/var/tmp :

des fichiers temporaires.

Une petite explication des structures assez similaires de /, /usr et /usr/local. Il est assez fréquent que /usr soit stocké sur un disque distinct de /, voire sur une autre machine. Donc / contient de quoi monter /usr, y compris à travers le réseau, et de quoi réparer si quelque chose foire. La même remarque s'applique a /home; c'est pourquoi le répertoire de l'administrateur est /root et non /home/root. De plus, comme /usr peut être monté en réseau, il peut être partagé entre plusieurs machines; c'est pourquoi les fichiers de config et de données sont dans /var.

Quant à /usr/local, il est séparé de /usr car si /usr est facilement récupérable en cas de pépin (au pire, on réinstalle tout), /usr/local est beaucoup plus difficile à reconstruire: il faut récupérer les sources des logiciels et les recompiler.

Enfin, /opt a une structure totalement différente: chaque logiciel y a son propre répertoire. On pourra par exemple avoir une hiérarchie du style:

  /opt ---+
    +- /opt/Office40
    +- /opt/netscape
    +- /opt/kde
    +- /opt/gnome
    |
Généralement, chaque répertoire de /opt possède au moins les sous-répertoires bin et etc, qui contiennent respectivement les exécutables et les fichiers de config:
  /opt ---+- /opt/gnome --+- /opt/gnome/bin
    |   +- /opt/gnome/etc
    |   |
    |


Page précédente Page suivante Table des matières