Certification LPI : 19 dossiers essentiels pour comprendre le système des fichiers sous Linux

Dans ce nouvel article, nous verrons ensemble la structure du système de fichiers dans les distributions Linux, quels sont les principaux répertoires et leurs descriptions, à connaitre si tu débutes sous Linux et quelles sont les commandes qui tu dois connaitre pour effectuer des recherches sous Linux.

Si tu t’intéresses à la certification Linux LPI, tu trouveras dans cet article des réponses à certaines questions auxquelles tu seras confronté le jour de l’examen.

Sur presque tous les systèmes Linux, les fichiers et les dossiers sont organisés d’une manière spécifique selon la norme de la hiérarchie du système de fichiers, appelée en anglais Filesystem Hierarchy Standard ou FHS.

 

Cela permet aux logiciels et aux utilisateurs de trouver ce qu’ils recherchent de manière prévisible. A la base de la hiérarchie, où le reste de la structure est défini, se trouve la racine, aussi appelée « root » représentée avec une barre oblique (/).

Penses à un arbre disposant d’une racine qui est « root » et d’un tronc qui contiennent des feuilles qui sont les fichiers, les dossiers ou les applications.

Le « root » prend en charge toute la structure du système de fichiers et il n’y a qu’un « root » sur un système Linux.

En raison de cette structure unifiée, les dossiers individuels peuvent être déplacés vers différents disques ou volumes pour permettre une gestion plus granulaire de l’espace de stockage tout en conservant des références uniformes et prévisibles.

Dans la norme relative à la hiérarchie du système de fichiers, un certain nombre de dossiers et de sous-dossiers se connectent à partir de la racine, chacun dans un but spécifique.

 

Le dossier « /bin » contient des binaires ou des programmes que le système doit utiliser, même en mode mono-utilisateur, qui sont nécessaires à son démarrage. Cela inclut le shell, des outils comme ls, cat, ou cp et d’autres composants critiques réservés aux administrateurs qui fonctionnent avec le système d’exploitation.

 

Le dossier « /boot » contient le noyau et le chargeur d’amorçage dont le système a besoin pour démarrer.

 

Le dossier « /dev » contient des fichiers faisant référence aux périphériques du système, y compris des disques, des périphériques virtuels, etc.

 

Les fichiers de configuration pour les logiciels et les outils sont conservés dans le dossier « /etc », certains au niveau de base et d’autres dans des sous-dossiers plus spécifiques sous le chemin etc.

 

Les dossiers de base des utilisateurs où sont conservés tous leurs fichiers personnels se trouvent dans le dossier « /home » alors que le dossier « /lib » stocke les bibliothèques associées aux principaux fichiers binaires du système.

 

Le support amovible comme la clé USB est montée dans le dossier « media » tandis que d’autres supports, tels que les disques durs et les montages réseau, sont généralement montés dans le dossier « /mnt ».

 

Les paquets facultatifs, généralement des logiciels créés ou installés par l’utilisateur et qui ne sont pas requis pour le fonctionnement du système, sont stockés dans le dossier « /opt ».

 

Le dossier « /proc » qui contient des informations sur le noyau et les processus s’exécutant sur le système sous forme de fichiers permettant aux logiciels et aux utilisateurs d’observer directement les différents paramètres du noyau et les paramètres du processus. Plusieurs commandes sont lues à partir du système de fichiers « /proc » afin d’afficher des informations sur l’activité du système.

 

Plutôt que de stocker ses fichiers dans le dossier « /home », les documents personnels de « root » sont stockés dans le dossier « /root ».

 

Le dossier « /run » stocke des informations sur les processus en cours d’exécution tels que les fichiers de verrouillage et les fichiers d’ID de processus, ainsi que d’autres informations pertinentes pour le système telles qu’elles s’exécutent comme le message du jour et si un redémarrage est requis.

 

Le dossier « /sbin » contient les fichiers systèmes binaires, les commandes que tu utiliseras pour gérer presque tous les aspects du système, en partant des commandes qui te permettront de créer des fichiers, des documents sur les disques jusqu’à la gestion de la connexion réseau et d’autres activités.

 

Le dossier « /srv » est dédié pour stocker les informations des différents  logiciels client/serveur comme FTP, NFS, ou autre que tu installeras sur ta machine. Bien sûr, les fichiers que tu partages, n’ont pas besoin d’être stockés ici, mais la norme le fournit au cas où cela serait nécessaire.

 

Le dossier « /sys » contient des fichiers qui listent certains aspects du système, des listes de disques, des périphériques, des informations sur le système de fichiers, etc.

 

Les informations temporaires doivent être stockées dans le dossier « /tmp ». Parce que ce dossier peut être effacé de temps en temps, toute information que tu veux sauvegarder doit aller ailleurs. Mais, pendant que l’information est au cours d’exécution, « /tmp » fournit un espace pour cela. Cela peut être utile car les autorisations sur le dossier « /tmp » sont définies de sorte que les programmes peuvent y mettre des informations. Si tu souhaites placer ses informations ailleurs, tu dois t’assurer que le programme ait les bons droits pour y accéder. Au lieu de cela, le système nous donne un espace où nous n’avons pas à nous en préoccuper.

 

Le dossier « /usr » contient des outils et des utilitaires qui sont nécessaires au fonctionnement minimal du système. En dessous, se trouvent divers autres sous-dossiers à des fins spécifiques, y compris différents types de binaires système et utilisateur dans « usr/bin », « usr/local » et « usr/sbin ».

 

Enfin, le dossier « /var » contient des fichiers qui peuvent varier mais ne sont pas considérés comme temporaires. Il y a aussi une série de sous-dossiers à des fins particulières, comme les journaux système, les boites de messagerie, la base de données, etc.

 

Bien que le système et les divers logiciels sachent où chercher certains fichiers, l’environnement shell quant à lui, ne le sait pas, et tu dois donc lui indiquer où chercher les programmes que l’utilisateur pourrait utiliser. Quand je parle d’environnement shell, ce sont des commandes tapées via la ligne de commande. Sur cette ligne de commande, comme nous le verrons plus loin, tu as la possibilité de taper le chemin complet d’un programme, mais c’est un peu ennuyeux. Ainsi, l’environnement a un ensemble de variables appelé PATH, qui est une liste d’endroits à regarder quand un utilisateur tape une commande.

 

Je peux voir le chemin actuel avec « echo $PATH ». Le shell cherchera les fichiers dans les dossiers listés ici qui sont séparés par des deux-points. Tes  chemins peuvent être différents des miens, mais généralement il y a quelques dossiers communs comme « /bin » et « /sbin » permettant aux commandes de base de fonctionner sans avoir à utiliser le chemin complet.

 

certification linux variable environnement PATH

 

Tu as la possibilité d’ajouter des répertoires de façon temporaire ou définitive à cette variable PATH. Je te montrerais plus tard comment modifier ce variable d’environnement

Cela peut prendre un peu de temps pour savoir où trouver les fichiers que tu cherches, en particulier les fichiers binaires car, comme nous l’avons vu, ils peuvent être à trois ou quatre endroits. Il est donc utile de connaître quelques commandes qui te montreront où se trouvent les fichiers.

 

La première, qui fonctionne pour les fichiers et les dossiers répertoriés dans la variable PATH, s’appelle « which ».

Imaginons que tu souhaiterais savoir dans quel répertoire se trouve la commande « ls », pour cela, tu dois entrer la commande « which ls ».

 

certification linux emplacement cmd ls

 

Maintenant, si tu recherches un fichier qui se trouve en dehors de la variable PATH, tu as ta disposition, deux commandes à savoir « locate » et « find ».

La commande « locate » utilise une base de données générée périodiquement pour rechercher presque instantanément un fichier tandis que la commande « find » recherche sur le disque les fichiers correspondant à un modèle donné. Regardons les deux.

 

La commande « Locate » est une commande très rapide mais les résultats obtenus peuvent être parfois biaisé, parce que le processus qui alimente les informations dans sa base de données s’exécute quotidiennement. Mais, une fois que cette information est disponible, la recherche avec « locate » est extrêmement rapide, ce qui la rend particulièrement utile sur les gros volumes de stockage comme une bibliothèque multimédia ou le partage de fichiers d’un département.

Si tu souhaites par exemple voir tous les fichiers ayant pour extension « .h » sur ton système, il suffit d’entrer la commande « locate *.h ».

 

certification linux locate fichier h

 

Il devrait y avoir un tas dans les sources du noyau. Et, ils sont là. C’était rapide, bien que si l’un de ces fichiers devait être supprimé, ou si nous en ajoutions de nouveaux, l’emplacement ne le connaîtrait pas avant demain.

Concernant la commande « find », pour l’utiliser tu as besoin de lui le répertoire ou dossier dans lequel ta recherche sera effectuée donc elle va vérifier fichier par fichier, si l’un d’entre eux correspond au terme recherché. Dans ce cas, le processus est très lent comme tu l’aurais remarqué mais les résultats sont plus à jour.

Utilisons la commande « find » pour rechercher les mêmes fichiers .h, pour cela, je tape «  find / -name * .h ».

 

certification linux find fichier h

 

Nous allons entrer dans l’utilisation plus avancée de la commande « find » plus tard.

Se familiariser avec les emplacements standards des différents types de fichiers peut t’aider à mieux naviguer dans un système inconnu, à apporter des modifications aux logiciels que tu n’as pas encore rencontrés et à concevoir des stratégies de sauvegarde.

De plus, la norme FHS nous aide à organiser les fichiers, les répertoires dans les emplacements bien dédiés plutôt que de les éparpiller partout.

 

Partage cette compétence et laisse des commentaires au besoin :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *