Salut tout le monde ! Je suis de retour avec le nouveau blog, Aujourd'hui, je vais discuter du système de fichiers Linux. Avez-vous déjà vu différents répertoires dans vos systèmes Linux et vous vous demandez pourquoi ils existent. Pourquoi ne pouvons-nous pas avoir un seul répertoire et tout y conserver ?
Introduction au système de fichiers Linux
Linux File System est une méthode d'organisation et de stockage de diverses informations d'une manière qu'il peut facilement gérer. Toutes les données du système Unix sont gérées par des fichiers. Ces fichiers sont organisés en répertoires. Une combinaison de ces fichiers et dossiers crée un système de fichiers.
Comme vous pouvez le voir dans le diagramme ci-dessus une représentation des répertoires, vous obtiendrez dans chaque système Linux/Unix.
Pourquoi avons-nous besoin du système de fichiers linux ?
Supposons que vous travaillez sur un projet qui se trouve dans un répertoire, cela nécessite plusieurs fichiers et dossiers :
- Fichiers binaires
- Fichiers de configuration
- Fichiers journaux
- Fichiers de données
- Fichiers de métadonnées pendant l'exécution
- Bibliothèques
Vous gardez tout dans un seul répertoire, alors il ressemblera à l'image ci-dessus. Si un autre logiciel vient dans l'image qui a ses propres fichiers de configuration.
Cela ne sera pas facile de tout gérer et conduira au chaos et il n'est pas nécessaire que tout le monde suive la même convention si une nouvelle personne entre dans l'image alors il gérera ses fichiers à sa façon ce qui rendra difficile de comprendre la hiérarchie des systèmes de fichiers.
Pour éviter cette situation, le créateur d'Unix a suivi une philosophie "Convention over Configuration". En utilisant cela, tout le monde sera sur la même page et suivra la même convention, ce qui facilitera la compréhension de la hiérarchie pour tout le monde.
Selon cette philosophie, le même type de fichiers sera conservé dans le même répertoire et ressemblera à quelque chose comme suit :
- Fichiers binaires - - - - - - - - - - - - - - - - - /bin
- Fichiers de configuration - - - - - - - - - - - - - - - - - /etc
- Fichiers journaux - - - - - - - - - - - - - - - - - /log
- Fichiers de données - - - - - - - - - - - - - - - - - /var
- Fichiers de métadonnées pendant l'exécution - - - - - - - - /tmp
- Bibliothèques - - - - - - - - - - - - - - - - - - - /lib
Discutons de quelques répertoires importants qui jouent un rôle majeur dans le système de fichiers Linux/Unix :
- / (barre oblique) : C'est le répertoire racine du système de fichiers global, il se trouve au sommet de la hiérarchie du système de fichiers, ce qui signifie que tous les fichiers et dossiers s'y trouvent.
- /bin : Il signifie "binaires" et contient toutes les opérations de base (par exemple cp, ls, mkdir etc ) sans lesquelles vous ne pouvez rien faire dans votre OS. Ce répertoire se compose de tous les binaires créés par le compilateur C et les scripts shell.
- /etc : Ce répertoire contient tous les fichiers de configuration sur l'ensemble du système. Il se compose de divers services ou démons fonctionnant sur l'OS. Il s'assure que tout fonctionne comme vous le souhaitez.
- /var : Il signifie "variable". Il contient des fichiers dans lesquels le système écrit des données pendant la durée de son fonctionnement. Parmi les différents sous-répertoires de /var se trouvent /var/cache (contient les données en cache des programmes d'application), /var/games (contient les données variables relatives aux jeux dans /usr), /var/lib (contient les bibliothèques de données et fichiers dynamiques), /var/lock (contient les fichiers de verrouillage créés par les programmes pour indiquer qu'ils utilisent un fichier ou un périphérique particulier), /var/log (contient les fichiers journaux), /var/run (contient les PIDs et autres informations système valides jusqu'au redémarrage du système) et /var/spool (contient le courrier, les news et les files d'attente d'impression.
- /lib : Contient les bibliothèques système et certains fichiers critiques tels que les modules du noyau ou les pilotes de périphériques.
- /mnt : Signifie "mount". Contient les points de montage du système de fichiers. Ceux-ci sont utilisés, par exemple, si le système utilise plusieurs disques durs ou partitions de disque dur. Il est aussi souvent utilisé pour les systèmes de fichiers distants (réseau), les lecteurs CD-ROM/DVD, etc.
- /proc : Si vous naviguez vers /proc La première chose que vous remarquerez est qu'il y a des fichiers familiers, puis un tas de répertoires numérotés. Les répertoires numérotés représentent des processus, mieux connus sous le nom de PIDs, et en leur sein, une commande qui les occupe. Les fichiers contiennent des informations système telles que la mémoire (meminfo), les informations CPU (cpuinfo) et les systèmes de fichiers disponibles.
- /opt : Ce répertoire est réservé à tous les logiciels et modules complémentaires qui ne font pas partie de l'installation par défaut.
- /usr : Ce répertoire contenant les répertoires personnels des utilisateurs, son utilisation a changé. Il contient maintenant des exécutables, des bibliothèques et des ressources partagées qui ne sont pas critiques pour le système, comme le système X Window, KDE, Perl, etc. Cependant, sur certains systèmes Unix, certains comptes utilisateurs peuvent encore avoir un répertoire personnel qui est un sous-répertoire direct de /usr, le répertoire /usr/bin stocke tous les programmes binaires distribués avec le système d'exploitation ne résidant pas dans /bin, /sbin ou (rarement) /etc./usr/include Stocke les headers de développement utilisés dans le système. Les fichiers d'en-tête sont principalement utilisés par la directive #include dans le langage de programmation C/C+++./usr/lib Stocke les bibliothèques et fichiers de données nécessaires aux programmes stockés dans /usr ou ailleurs.
Voici quelques confusions de base beaucoup de gens sont confrontés à trouver la différence entre certains types de répertoires similaires, nous allons discuter de certains.
/bin vs /usr/bin vs /sbin vs /usr/local/bin
Cela pourrait devenir presque clair quand j'ai expliqué la signification de /usr dans le paragraphe ci-dessus. Comme les concepteurs Unix avaient prévu que /usr serait le répertoire local des utilisateurs individuels, il contenait tous les sous-répertoires comme /usr/bin, /usr/sbin, /usr/local/bin. Mais la question reste la même : en quoi le contenu est-il différent ?
/usr/bin :
- /usr/bin est un répertoire standard sur les systèmes d'exploitation de type Unix qui contient la plupart des fichiers exécutables qui ne sont pas nécessaires pour démarrer ou réparer le système.
- Quelques-uns des plus couramment utilisés sont awk, clear, diff, du, env, file, file, find, free, gzip, less, locate, man, sudo, tail, telnet, time, top, vim, wc, which, and zip.
/usr/sbin :
- Le répertoire /usr/sbin contient des utilitaires système non vitaux qui sont utilisés après le démarrage.
- Ceci contraste avec le répertoire /sbin, dont le contenu inclut les utilitaires système vitaux qui sont nécessaires avant que le répertoire /usr ne soit monté (c'est à dire, attaché logiquement au système de fichiers principal).
- Quelques-uns des programmes les plus familiers dans /usr/sbin sont adduser, chroot, groupadd, et userdel.
- Il contient également quelques démons, qui sont des programmes qui s'exécutent silencieusement en arrière-plan, plutôt que sous le contrôle direct d'un utilisateur, attendant qu'ils soient activés par un événement ou une condition particulière, comme crond et sshd.
J'espère que ce blog clarifiera le but de ces répertoires afin que vous compreniez mieux le système de fichiers Linux.
source :
https://medium.com/@mansi_74608/file-system-of-linux-33d347b8fc48