UNIX - Les fichiers


Introduction aux fichiers Unix

Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/».

Types de fichiers

Les systèmes UNIX définissent différents types de fichiers :
  • Les fichiers physiques, enregistrés sur le disque dur. Il s'agit du fichier au sens où on l'entend généralement ;
  • Les répertoires sont des fichiers (noeuds) de l'arborescence pouvant contenir des fichiers ou d'autres répertoires. Un répertoire contient à minima un répertoire parent (noté ..), correspondant au répertoire de plus haut niveau, et un répertoire courant (noté .), c'est-à-dire lui-même ;
  • Les liens sont des fichiers spéciaux permettant d'associer plusieurs noms (liens) à un seul et même fichier. Ce dispositif permet d'avoir plusieurs instances d'un même fichier en plusieurs endroits de l'arborescence sans nécessiter de copie, ce qui permet notamment d'assurer un maximum de cohérence et d'économiser de l'espace disque. On distingue deux types de liens :
    • Les liens symboliques représentant des pointeurs virtuels (raccourcis) vers des fichiers réels. En cas de suppression du lien symbolique le fichier pointé n'est pas supprimé. Les liens symboliques sont créées à l'aide de la commande ln -s selon la syntaxe suivante :
      ln -s nom-du-fichier-reel nom-du-lien-symbolique
    • Les liens physiques (aussi appelées liens durs ou en anglais hardlinks) représentent un nom alternatif pour un fichier. Ainsi, lorsqu'un fichier possède deux liens physiques, la suppression de l'un ou l'autre de ces liens n'entraine pas la suppression du fichier. Plus exactement, tant qu'il subsiste au minimum un lien physique, le fichier n'est pas effacé. En contrepartie lorsque l'ensemble des liens physiques d'un même fichier est supprimé le fichier l'est aussi. Il faut noter toutefois qu'il n'est possible de créer des liens physiques qu'au sein d'un seul et même système de fichiers. Les liens physiques sont créées à l'aide de la commande ln (sans l'option -n) selon la syntaxe suivante :
      ln nom-du-fichier-reel nom-du-lien-physique
  • Les fichiers virtuels n'ayant pas de réelle existence physique car ils n'existent qu'en mémoire. Ces fichiers, situés notamment dans le répertoire /proc contiennent des informations sur le système (processeur, m&eazcute;moire, disques durs, processus, etc.) ;
  • Les fichiers de périphériques, situés dans le répertoire /dev/, correspondent aux périphériques du système. Cette notion peut être déroutant pour un nouvel utilisateur dans un premier temps.

Notion de point de montage

Les fichiers d'un système UNIX sont organisés dans une arborescence unique. Il est toutefois possible d'avoir plusieurs partitions grâce à un mécanisme appelé montage, permettant de raccorder une partition à un répertoire de l'arborescence principale. Ainsi le fait de monter une partition dans le répertoire/mnt/partition rendra l'ensemble des fichiers de la partition accessible à partir de ce répertoire, appelé «point de montage».

La hiérarchie des fichiers sous Unix

Pour assurer la compatibilité et la portabilité, les systèmes UNIX respectent la norme FHS (File Hierarchy Standard). La hiérarchie de base d'un système Unix est la suivante :
/la racine, elle contient les répertoires principaux
/binContient les exécutables essentiels au système, employés par tous les utilisateurs.
/bootContient les fichiers de chargement du noyau, dont le chargeur d'amorce.
/devContient les points d'entrée des périphériques.
/etcContient les fichiers de configuration nécessaires à l'administation du système (fichiers passwd, group, inittab, ld.so.conf, lilo.conf, ...).
/etc/X11contient les fichiers spécifiques à la configuration de X (contient XF86Config par exemple)
/homeContient les répertoires personnels des utilisateurs. Dans la mesure où les répertoires situés sous /home sont destinés à accueillir les fichiers des utilisateurs du système, il est conseillé de dédier une partition spécifique au répertoire /boot afin de limiter les dégats en cas de saturation de l'espace disque.
/libContient les bibliothèques standards partagées entre les différentes application du système.
/mntPermet d'accueillir les points de montage des partitions temporaires (cd-rom, disquette, ...).
/procRegroupe un ensemble de fichiers virtuels permettant d'obtenir des informations sur le système ou les processus en cours d'exécution.
/rootRépertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres répertoires personnels car il se trouve sur la partition racine, afin de pouvoir être chargé au démarrage, avant le montage de la partition /home.
/sbinContient les exécutables système essentiels (par exemple la commande adduser).
/tmpcontient les fichiers temporaires
/usrHiérarchie secondaire
/usr/X11R6ce répertoire est réservé au système X version 11 release 6
/usr/X386utilisé avant par X version 5, c'est un lien symbolique vers /usr/X11R6
/usr/bincontient la majorité des fichiers binaires et commandes utilisateurs
/usr/includecontient les fichiers d'en-tête pour les programmes C et C++
/usr/libcontient la plupart des bibliothèques partagées du système
/usr/localcontient les données relatives aux programmes installés sur la machine locale par le root
/usr/local/binBinaires des programmes locaux
/usr/local/includeFichiers d'en-tête C et C++ locaux
/usr/local/libBibliothèques partagées locales
/usr/local/sbinbinaires système locaux
/usr/local/sharehiérarchie indépendante
/usr/local/srcFichiers sources locaux
/usr/sbincontient les fichiers bianires non essentiels au système réservés à l'administrateur système
/usr/shareréservé aux données non dépendantes de l'architecture
/usr/srccontient des fichiers de code source
/varcontient des données versatiles telles que les fichiers de bases de données, les fichiers journaux (logs), les fichiers du spouleur d'impression ou bien les mails en attente.