• Auteur : Chagab
  • Date : 22 mars 2004 (7 janvier 2005)
  • Licence : Creative Commons BY-NC-ND link_license

L’arborescence des fichiers ...

Difficulté de l’article : 1/5 (un peu long, ne pas se prendre la tête avec ça d’emblée, peut servir de liste de référence en cas de recherche)

Il y a quelque temps, la Mandrake 9.1 fraîchement installée, lorsque j’ai ouvert Konqueror pour la première fois, j’ai découvert que l’installation de Linux avait créé une flopée de catalogues et de fichiers.

Apparemment seul, le « /home » était réservé aux utilisateurs que j’avais définis... Avec un profil utilisateur, j’ai traîné mon Konqueror partout et me suis aperçu qu’il y avait une foultitude de fichiers certains cachés [1], que d’autres ne m’étaient pas accessibles, que nombre d’entre eux semblaient être des fichiers de paramétrage (lisibles), que...

J’ai donc tenté de comprendre comment tout ça était organisé et pourquoi cela l’était ainsi.

Je vous fais donc part de mes recherches, de débutant Linux...

J’ai donc cru comprendre qu’il n’existe pas de norme d’organisation de l’arborescence gérant les fichiers (appelée système de fichiers), mais qu’un standard né de l’histoire est à peu près suivi par les différentes distributions de Linux. L’organisation en place semble être traditionnelle, elle est respectée parce qu’elle fonctionne.

Sur mon PC Linux, il y a donc

/

Dit répertoire racine (« root » en anglais) par analogie, dit-on, aux racines d’un arbre, représentant l’arborescence des répertoires et fichiers qui va se développer à partir de ce point. C’est donc le point de départ de toute la hiérarchie du système de fichiers. Ce répertoire est automatiquement attaché par le système lors de son démarrage (on pourrait dire : monté par le noyau lors du chargement de l’operating system... là, une pause, je m’écoute parler :-) ).

L’ensemble de ce système de fichiers partant de « / » (ou « root ») peut résider sur différents supports permanents de stockage physique (plusieurs disques par exemple) éventuellement découpés en partitions logiques. On peut y adjoindre des espaces de stockage amovibles (disquettes, CD,...), voire d’autres espaces repérés et gérés par d’autres machines en réseau (voire d’autres formes encore qu’on laissera pour la suite...). Ce découpage est complètement transparent pour les utilisateurs du système de fichiers. Les différentes parties peuvent être connectées au démarrage du système ou à la demande, en cours d’utilisation.

/bin

Contient un ensemble de fichiers exécutables représentant les commandes que l’on peut adresser au système. On y trouve aussi des « utilitaires » permettant de travailler sur ou avec ces commandes système. Ce sont tous des fichiers binaires résultant de la compilation de programmes. Ils sont directement exécutables par le système et nécessaires à celui-ci. Tous les utilisateurs peuvent utiliser les commandes de ce répertoire par l’intermédiaire d’une console (j’aime bien Konsole de KDE, c’est si simple de s’en souvenir !).

Une commande est spécifiée par son « nom » auquel est éventuellement associé un certain nombre de paramètres ou d’options.

Exemples de commandes dans /bin

  • bash : « utilitaire » permettant d’enchaîner des commandes contenues dans des fichiers qui les décrivent. C’est ce que l’on appelle le Shell.
  • ls commande permettant de lister le contenu du catalogue courant.

J’ai dit en intro que nous ne parlerions pas do mode ligne mais on fait une petite exception. En mode de connexion « utilisateur », essayez sur votre terminal (X Term ou Konsole, ...) de taper « ls » vous verrez apparaître le contenu du catalogue sur lequel vous êtes positionné. Puis sous cette console tapez « man ls » vous verrez apparaître la documentation liée à cette commande - « ls ». Vous pouvez essayer des options, sur ce catalogue avec un profil utilisateur, c’est sans danger. Pour cette commande, sur mon PC, il y a 483 lignes de documentation. Quelle richesse !!! On quitte man (manuel) en tapant « q ».

  • cd commande permettant de changer de répertoire courant,
  • vi c’est l’éditeur de texte,
  • etc.. (ce n’est pas une commande :-) ).

/boot

Contient un ensemble de fichiers « Noyau » et fichiers de paramétrage nécessaires au démarrage du système. Ces fichiers sont normalement en lecture seule. Nota sous Linux « Noyau et système » sont synonymes.

/dev

Ensemble de répertoires et de fichiers système décrivant les périphériques ce sont des vecteurs de communication entre le système et ses périphériques.

Vous trouverez dans

  • /dev/hda - le premier disque dur IDE du système,
  • /dev/hda1 - la première partition de ce disque.
  • /dev/cdrom - le lecteur de CD-ROM. 
  • /dev/usb/scanner0 - le premier scanner USB.
  • /dev/console - la console du système.

... etc... enfin pas celui qui suit.

/etc

Ce répertoire contient les fichiers de configuration du système utilisés au démarrage de la machine (enfin du PC !), voire au fil de l’eau en cas de besoin (par exemple, la fstab est utilisée pour s’allouer en dynamique des ressources stockées sur des supports amovibles - disquette, CDROM,...).

Par Konqueror (par exemple) vous pouvez aller voir ce que ces fichiers contiennent.

Vous trouverez dans

  • /etc/passwd - la liste des utilisateurs du système, leur identifiant système, pas leur mot de passe en clair, rassurez vous.
  • /etc/group - la liste des groupes du système,
  • /etc/fstab - les définitions et paramètres permettant de s’allouer des fichiers.
  • /etc/lilo.conf - les paramètres d’amorçage du boot permettant par exemple de choisir le système d’exploitation désiré en cas de double, voire multi-boot [2] .
  • /etc/hosts traduction d’adresses IP en noms d’hôte,

... etc...

Vous trouverez dans les sous-répertoires suivants

  • /etc/X11/ - les fichiers de configuration de Xwindow,
  • /etc/rc.d/ - les scripts de démarrage du système,
  • /etc/init.d/ - les scripts de démarrage des différents services (deamons) du systèmes (apache, mysql...),
  • /etc/cron/ - les tâches à mettre automatiquement en machine à une périodicité donnée (daily, hourly, monthly, weekly),
  • /etc/skel/ - les fichiers à recopier dans le répertoire d’un utilisateur qui vient d’être créé.
  • /etc/sysconfig/ - les fichiers de configuration des périphériques.
  • /etc/opt/ - les fichiers de configuration des applications.

/home

Chaque utilisateur possède généralement son propre répertoire. Il contient ses fichiers personnels et les fichiers de configuration qui lui sont propres.

Les répertoires personnels se retrouvent généralement tous au même niveau (exemple : /home/ChaGab pour celui de « ChaGab », /home/Util pour celui de l’utilisateur « Util »).

Lors d’une installation standard, la distribution Mandrake 9.1 (et +) place ce répertoire dans votre disque dur, dans une partition logique indépendante. C’est une excellente solution qui permet :

  • D’éviter que la saturation du « /home » ne perturbe le fonctionnement de l’ensemble du système.
  • De retrouver automatiquement vos données lors d’un rechargement ou d’une mise à jour de votre système.
  • De retrouver automatiquement le paramétrage de vos applications lors d’un changement de version système (si les anciennes versions des applications sont compatibles).

Vous trouverez donc dans votre /home/util (Util c’est votre nom de connexion) des fichiers de configuration de votre profil utilisateur soit :

  • .bashrc - script exécuté à chaque connexion de l’utilisateur. Il permet de définir des alias, d’exécuter des commandes ou de positionner des variables d’environnement,
  • .bash_logout - idem pour la déconnexion,
  • .bash_history - historique des commandes utilisées,
  • GNUstep/, KDE/ - répertoires contenant les fichiers de configuration personnels pour les environnements graphiques WindowMaker et KDE.

...etc...

/lib

Répertoire contenant les bibliothèques partagées utilisées par les programmes du système et les logiciels [3].

  • /lib/modules contient les modules additionnels du noyau.

/mnt

Est le catalogue définissant les « points de montage » des systèmes de fichiers non permanents (CD-ROM, disquettes... ) Ce répertoire contient autant de sous-répertoires que de systèmes de périphériques amovibles disponibles sur votre configuration. Vous pouvez trouver sur Framasoft.net, Linux, Jose..., Je comprends le système [4] .

/proc

Ce répertoire représente le point de montage du pseudo système de fichiers du noyau. Ce dernier contient des fichiers permettant d’accéder aux informations sur le matériel, la configuration du noyau et sur les processus en cours d’exécution. [5] .

On retrouvera donc un répertoire par processus actif

Chacun porte le numéro du processus (PID) il est constitué des fichiers suivants :

  • cmdline contient la ligne de commande qui a créé le processus,
  • status contient des informations sur l’état du processus (en attente, en exécution, propriétaire... ),
  • exe est un lien vers le fichier exécutable utilisé par le processus...

Dans le répertoire /proc, on retrouve des fichiers contenants des informations générales sur le système. Comme :

  • uptime donnant le temps de fonctionnement du système,
  • stat donnant diverses statistiques sur l’utilisation des ressources du système (CPU, mémoire... ),
  • meminfo donnant un récapitulatif de l’utilisation de la mémoire.
  • cpuinfo donnant une description des CPU du système...

/var

Répertoire contenant toutes les données variables du système, celles pouvant être modifiées à tout moment lors d’un fonctionnement courant du système ou des applications qu’il supporte.

Vous trouverez dans les sous-répertoires suivants

  • /var/opt/ - les données variables des applications.
  • /var/log/ - les fichiers de traçant le fonctionnement du système.
  • /var/spool/ - les données en attente de traitement.

C’est un ensemble de files d’attentes, interfaces entre le système ou les applications et les diverses formes de sorties d’informations (travaux d’impression en cours, mails, fax en attente d’émission, travaux programmés en attente d’exécution, ...). Le répertoire spool est organisé en sous répertoires par type d’informations stockées (impression -lpd-, courriers -mail-, de forums -news-, etc ... ).

  • /var/locks/ contient les verrous sur les ressources système non partageables à un instant « t ». Par l’intermédiaires de fichiers présents dans ce répertoire, on verrouille l’accès d’une ressource (modem, imprimante, fax, ...) pendant son usage par un programme, rendant de ce fait cet usage temporairement exclusif.
  • /var/cache/ - les données de résultats intermédiaires des applications.
  • /var/catman contient les fichiers d’aide mis en forme. Ce répertoire contient les pages de manuel mises en forme pour un accès plus rapide lors d’une deuxième utilisation.
  • /var/lib - des fichiers de configuration,
  • /var/lock - les fichiers de verrous des applications,
  • /var/run - les fichiers contenant les "PID" des processus du système en cours.

/usr

Répertoire contenant les fichiers du système partageables en réseau et en lecture seule. Le répertoire /usr contient de nombreux sous-répertoires. On retrouve presque la même organisation que sous la racine, mais le contenu est destiné aux utilisateurs plus qu’au système lui-même.

La structure de /usr est la suivante

  • /usr/X11R6/ - ensembles de répertoires et fichiers permettant d’utiliser les capacités d’affichageement Xwindow.
  • /usr/bin/ contient les commandes utilisateurs supplémentaires du système,
  • /usr/doc/ contient les documentations en ligne,
  • /usr/etc/ contient la configuration des commandes utilisateurs,
  • /usr/games/ contient les (éventuels) jeux,
  • /usr/include/ - les fichiers de ce répertoire sont utilisés pour réaliser des programmes dans les langages de programmation C et C++.
  • /usr/lib/ - ensemble de bibliothèques partagées utilisées par tous les programmes.
  • /usr/local/ contient les outils installés en dehors du contexte de la distribution.
  • /usr/man/ contient les fichiers des pages du manuel en ligne,
  • /usr/sbin/ contient les commandes d’administration supplémentaires. Ces commandes ne sont normalement utilisées que par l’administrateur système.
  • /usr/share/ contient les fichiers de configuration partagés,
  • /usr/src/ Si vous l’avez demandé à l’installation ou si votre distribution le fait de manière automatique, ce répertoire contient exclusivement le code source du noyau et des applications dépendantes de la distribution que vous utilisez.

/opt

Répertoire contenant les applications complémentaires (dites : add-on) n’appartenant pas à la distribution installée.

/tmp

Ce répertoire permet de stocker des données temporaires. Il dispose généralement de droits d’accès particuliers permettant à chaque utilisateur d’y créer des fichiers sans pouvoir consulter les fichiers des autres utilisateurs.

En conclusion

Voilà ce qui est installé sur votre disque dur (et parfois même ailleurs).

Grâce à cette organisation, à la gestion des permissions d’accès aux informations, à d’autres outils de gestion et de contrôle (voir sur Framasoft "Linux, j’ose... Le système, Je pige !", la page sur la gestion des dépendances) et enfin à la rigueur des programmeurs la stabilité du système Linux est correctement assurée.

[1] Pour faire apparaître les fichiers cachés sous Konqueror : dans affichage, cocher -voir les fichiers cachés-

[2] Pour des explications sur le démarrage d’un PC sur le site framasoft voir http://www.framasoft.net/article2427.html .

[3] Sur Framasoft on parle de la gestion des bibliothèques à http://www.framasoft.net/article2460.html .

[4] Une explication simple sur le concept du monter-demonter http://www.framasoft.net/article2451.html (enfin je l’espère :-) ).

[5] Vous pouvez trouver sur ce site à http://www.framasoft.net/article2428.html « Linux un systéme multi-tâches » des explications sur ce concept.

Commentaires

<< Poster un message >>
:: question :: précision :: avis :: commentaire :: bug ::

L’arborescence des fichiers ... , le 27 juillet 2012 par nmrk.n (0 rép.)

Bonjour,

Il parait qu’il va y avoir du nouveau dans /usr ?

nmrk.n

-----> http://www.mageialinux-online.org/f...

Répondre à ce message

L’arborescence des fichiers ... , le 29 mars 2008 par McCoy (1 rép.)

Bonjour,

Je vient de remarquer que mon répertoire /proc est plein... il fait 2Go et 0o de dispo...

Est ce normal ? Ou est ce que je doit m’inquiéter ? Et dans ce cas, qu’est ce que je peux faire ?

Merci d’avance pour votre aide. Cordialement, Bertrand

L’arborescence des fichiers ... , le 29 mars 2008 par Gabriel

Qu’il reste 0 octets de libre, oui, qu’il soit rempli à 2go, je n’en sait rien, chez moi c’est 500mo.

Répondre à ce message

L’arborescence des fichiers ... , le 29 avril 2007 par SpotZup (0 rép.)

Super article très instructif, je suis tout débutant sur linux et je me demandais justement l’utilité de chacun de ces fichiers :)

Répondre à ce message

L’arborescence des fichiers ... , le 13 avril 2007 par Quantum (0 rép.)

Un site avec une explication « imagée » de l’arborescence Linux, grâce à laquelle j’ai enfin capté le comment du pourquoi, habitué à Win... mais ça reste fragile pour l’instant é_è

Répondre à ce message

> L’arborescence des fichiers ... , le 15 juin 2004 par soupaloignon (1 rép.)

Utilisateur depuis a peine 1 semaine de la mandrake, j’étais un peu perturbé par la difference d’organisation ent win et linux. Je suis ravi d’avoir pu consulter ce mémo sur l’organisation des fichiers. Bravo encore à son auteur

-----> Bravo !! ))

> L’arborescence des fichiers ... , le 15 juin 2004

merci, et rassure toi, je suis parfois encore perturbé !

cordialement

Répondre à ce message

> L’arborescence des fichiers, Quoi, Où... Pourquoi ? , le 23 mars 2004 (0 rép.)

Pour approfondir l’exploration du système de fichiers, je vous conseille de consulter le FHS (Filesystem Hierarchy Standard).

-----> Filesystem Hierarchy Standard

Répondre à ce message

Informations complémentaires

Faire un don ? (défiscalisé)

Faire un DON

Aidez-nous à atteindre notre objectif de 800 donateurs récurrents pour assurer notre pérennité et notre développement ! (nous n’y sommes plus très loin).

Je soutiens Framasoft pour 10€/mois

Informations générales

Juste une image

Emily Emily
Creative Commons BY-SA