Filesystem Hierachy Standard (FHS)

Ce chapitre se focalise sur la structure du système de fichiers sous Linux. On identifiera les différents emplacements d’un système Linux, l’emplacement courant et comment naviguer à travers des chemins relatifs ou absolus.

https://fr.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

1. La structure du système de fichier

Un système de fichiers est similaire à une arborescence, avec une racine qui se scinde en branches et sous-branches, soit en répertoires et sous-répertoires.

On commence par le tronc principal, la racine (root) : /. C’est un peu comme le C:\ sous DOS, sauf que C:\ est également le premier périphérique de stockage, alors que la racine peut correspondre à n’importe quel disque (partition) de votre système (point de montage).

La racine contient différents répertoires et sous-répertoires contenant eux-mêmes des fichiers.

2. La commande tree

La commande tree liste le contenu de répertoires sous forme d’arborescence.

sudo yum install -y tree

Par exemple sous Centos 7, l’arborescence à partir de la racine :

tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

20 directories, 0 files

2. Partition racine

Les répertoires suivants peuvent être montés sur d’autres partitions que la celle de la racine :

  • /boot
  • /home
  • /root
  • /tmp
  • /usr
  • /usr/local
  • /opt
  • /var

Les répertoires /dev, /bin, /sbin, /etc et /lib doivent être montés sur la partition racine.

De plus, la racine doit contenir un répertoire /proc vide. Il est utilisé par le noyau pour informer sur le statut du système d’exploitation (processus, statistiques d’utilisation de la mémoire, etc.).

3. Contenu du système de fichier

  • /bin et /sbin : contiennent les binaires nécessaires au démarrage et les commandes essentielles
  • /dev : fichiers périphériques ou fichiers spécifiques
  • /etc : fichiers et répertoires de configuration spécifiques à la machine
  • /lib et /lib64: bibliothèques partagées pour les binaires de /bin et /sbin. Contient également les modules du noyau.
  • /mnt ou /media : points de montage pour les systèmes de fichiers externes
  • /proc : informations du noyau. En lecture seule sauf pour /proc/sys.
  • /boot : contient le noyau Linux, le System.map (carte des symboles du noyau) et les chargeurs d’amorçage secondaires.
  • /home (facultatif) : répertoires utilisateurs, avec, en général, une copie du contenu de /etc/skel.
  • /root : répertoire de l’utilisateur root.
  • /sys : export d’information du noyau, à la manière de /proc.
  • /tmp : fichiers temporaires.
  • /usr : User Specific Ressource. Contenu essentiellement statique et partageable. /usr est composé de sous-répertoires bin, sbin, lib et autres qui contiennent des programmes et bibliothèques de votre système non essentielles ni nécessaires au démarrage.
  • lost+found : est un dossier spécial de récupération des données du système de fichiers.
$ tree -L 1 /usr
/usr
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── local
├── sbin
├── share
├── src
└── tmp -> ../var/tmp

12 directories, 0 files
  • /usr/local ou /opt : programmes et bibliothèques supplémentaires. En général, c’est dans ces répertoires que l’on place les programmes qui ne font pas partie des paquets des distributions.
  • /var : données variables comme les spool ou les journaux. Les sous-répertoires peuvent être soit partageables (comme /var/spool/mail) soit non partageables (comme /var/log).
  • /var/www, /var/ftp ou /srv : pages web ou fichiers ftp anonymes.

4. Chemins relatifs et absolus

On peut accéder à un répertoire ou un fichier en donnant son chemin complet, qui commence à la racine (/), ou en donnant son chemin relatif partant du répertoire courant.

Chemin absolu :

  • indépendant du répertoire de travail de l’utilisateur
  • commence par /

Chemin relatif :

  • dépend de l’endroit où se trouve l’utilisateur
  • ne commence pas par /

5. Se déplacer dans le système de fichiers

Comme pour tout système de fichiers structuré, un certain nombre d’outils aident à parcourir le système. Les deux commandes suivantes sont des commandes internes du shell :

  • pwd : (Print Working Directory) affiche le répertoire actuel en chemin absolu
  • cd : la commande pour changer de répertoire (Change Directory)

6. Emplacements

  • L’emplacement courant est représenté par un point .
  • L’emplacement parent est représenté par deux points ..
  • Le répertoire utilisateur courant est représenté par le tild ~

7. Exercices

  • Aller dans le répertoire /etc/
  • Revenir dans le répertoire personnel Téléchargements
  • Aller dans /etc/default de manière relative
  • Revenir rapidement dans son répertoire personnel
  • Se placer dans le répertoire Téléchargements