Différences entre bin, sbin
Notes › _DIFFUSION › Linux cli scripts
Différences entre /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
1. Vue d’ensemble
Toutes les saveurs Linux suivent un FHS spécifique (Filesystem Hierarchy Standard). La Fondation Linux maintient FHS. En général, tout dans le système d’exploitation Linux est un fichier. Cependant, tous les fichiers ne sont pas stockés au même endroit, car chacun sert un but unique.
Dans ce tutoriel, nous allons d’abord comprendre la structure de répertoire des systèmes Linux. Ensuite, nous apprendrons le but de différents chemins tels que /bin, /sbin, /usr/bin, et autres.
En outre, notons que nous pouvons utiliser des mots comme montage et répertoire impliquant la même signification, car les points de montage sont des répertoires qui servent de points d’accès pour les fichiers ou les répertoires.
2. Mise en page du répertoire
Toutes les distributions Linux ont plus ou moins la même mise en page de répertoire. Un répertoire est une fonction de catalogage pour la maintenance de fichiers. Les fichiers peuvent résider sur différents appareils physiques ou virtuels. Il existe de nombreux répertoires et sous-répertoires.
Pour clarifier, regardons quelques-uns des niveaux de haut niveau brièvement:
- /root – répertoire parent, accessible à root
- /bin – c’est là que résident tous les types de binaires
- /boot – fichiers importants nécessaires lors du démarrage tels que les fichiers du noyau, les fichiers bootloader
- /etc – fichiers de configuration de programmes, couramment_.conf_
- /dev – fichiers d’accès aux périphériques tels que les terminaux
- /opt – logiciels optionnels installés par des utilisateurs individuels
- /lib – bibliothèques essentielles pour les binaires sur le système
- /mnt – systèmes de fichiers montés
- /var – des données en constante évolution telles que les fichiers journaux
Les fichiers sont stockés dans ces répertoires ou sous-répertoires de ceux-ci. Cependant, dans cet article, nous allons nous concentrer sur le répertoire /bin, où nous stockons des fichiers binaires.
Notamment, nous voyons qu’il y a plus d’un sous-répertoire monté pour les binaires. Nous allons constamment faire la lumière sur chacun d’entre eux.
3. Répertoires binaires
Dans l’ensemble, un fichier binaire est une séquence de bits, c’est-à-dire de zéros et ceux-là, qui encodent des informations. L’un des types de fichiers binaires les plus courants est un objet exécutable. Nous pouvons aussi appeler cela un programme informatique. D’autres types de fichiers binaires sont les archives, les images, les fichiers audio et vidéo, et d’autres.
Certains fichiers exécutables peuvent être essentiels au système d’exploitation, mais certains sont des ajouts et des extras. En fonction de leur utilisation, le système d’exploitation les stocke dans différents répertoires. Plongeons-nous dans l’utilisation de différents répertoires où nous stockons les binaires et les comprenons.
3.1. /bin
Le répertoire /bin contient des binaires essentiels au système d’exploitation.
Par exemple, les programmes comme ls, le chat et d’autres sont des programmes essentiels. Après les démarrages du système d’exploitation, nous avons besoin de tels programmes pour effectuer des opérations Linux de base en mode utilisateur unique. Les utilisateurs du système normal devraient éviter de jouer avec ces fichiers, car cela peut entraîner des perturbations de certaines fonctions de base du système d’exploitation.
Voyons comment /bin directory listing ressemble:
1
2
3
4
5
$ ls /bin
chmod dash df expr ksh ln mv pwd rmdir stty test zsh
bash cp date echo hostname launchctl ls pax realpath sh sync unlink
cat csh dd ed kill link mkdir ps rm sleep tcsh wait4path
...
Ce sont quelques fichiers typiques qui existent dans le répertoire /bin.
3.2. /sbin
Le nom /sbin signifie système binaire. Il est distinct de /bin d’une manière très infime.
Pour la plupart, le répertoire /sbin stocke les binaires requis par le système d’exploitation pour la gestion du système. Les binaires stockés dans /sbin incluent ifconfig, fdisk, init, shutdown, systemd et similaire_._ Ceux-ci nécessitent des privilèges root pour s’exécuter. Pour cette raison, les utilisateurs normaux du système ne devraient pas fonctionner avec ceux-ci.
Voyons un extrait de /sbin directory list:
1
2
3
4
5
$ ls /sbin/
dmesg fdisk fstyp_udf ifconfig init
mknod mount_ftp ping route reboot
shutdown systemd
...
Ici, nous voyons quelques fichiers courants pour /sbin.
3.3. /usr/bin
Le répertoire /usr peut stocker tous les fichiers en lecture seule qui peuvent être partagés entre les utilisateurs. Lorsque les utilisateurs normaux installent un logiciel sur le système, les binaires vont généralement à /usr/bin et aux bibliothèques – à /usr/lib. Nous n’avons pas besoin de ces binaires pour le démarrage ou la réparation du système. En substance, les utilisateurs normaux utilisent ces programmes et fichiers exécutables. Les programmes comme diff, du et scp sont quelques exemples courants de binaires qui vont dans /usr/bin.
L’extrait ci-dessous indique exactement le chemin où ces programmes sont situés dans le système:
1
2
3
4
5
6
$ which diff
/usr/bin/diff
$ which du
/usr/bin/du
$ which scp
/usr/bin/scp
Notamment, ce sont principalement des outils et tous sont dans le répertoire /usr/bin.
3.4. /usr/sbin
Encore une fois, le sous-répertoire /sbin sous /usr n’est pas pour tous les utilisateurs. Les binaires stockés dans /usr/sbin sont des programmes exécutables, principalement utilisés par les administrateurs système, généralement des superutilisateurs. Ces programmes nécessitent des autorisations root. En d’autres termes, les utilisateurs normaux n’interfèrent généralement pas avec le contenu de /usr/sbin. Pour ce chemin, des programmes comme sshd, chown, iostat sont quelques exemples courants:
1
2
3
4
5
6
$ which sshd
/usr/sbin/sshd
$ which chown
/usr/sbin/chown
$ which iostat
/usr/sbin/iostat
Nous voyons quelques binaires importants dans le chemin /usr/sbin.
3.5. /usr/local/bin
Il existe un sous-répertoire appelé /local à l’intérieur du répertoire /usr, spécifiquement pour stocker les binaires locaux. Ces binaires sont locaux aux utilisateurs du système et les packages système ne les gèrent pas. Certaines distributions Linux mettent à jour les paquets automatiquement. Mais dans ce cas, de tels binaires locaux ne seront pas mis à jour. Les utilisateurs peuvent installer des programmes dans cet emplacement sans aucune hésitation qu’ils seront remplacés.
Les programmes tels que wget, python3_python3 et _git sont quelques exemples courants de paquets d’utilisateurs locaux:
1
2
3
4
5
6
$ which wget
/usr/local/bin/wget
$ which python3
/usr/local/bin/python3
$ which git
/usr/local/bin/git
Comme prévu, ce sont tous des outils de userland.
3.6. /usr/local/sbin
Les binaires installés localement pour les administrateurs système résident dans le chemin /usr/local/sbin. Seules les autorisations d’utilisateur le distinguent du /usr/local/bin. En particulier, les utilisateurs autres que l’administrateur système ne doivent pas installer et stocker de programmes dans le répertoire /usr/local/bin. Les services publics comme WiresharkWireshark et Nmap sont des résidents communs de cette voie.
Voyons un exemple de _/sbin_liste de répertoires /sbin:
1
2
$ ls /usr/local/sbin/
nmap wireshark
Ainsi, chaque répertoire /bin ou sous-répertoire joue un rôle unique dans la mise en page d’un système Linux.
4. Définitions du système
Lorsque l’on discute de systèmes de fichiers, il est important que nous voyions la hiérarchie du système de fichiers. Sur le système Linux, nous pouvons vérifier la disposition détaillée des systèmes de fichiers en utilisant le hier de commande. Il décrit tous les principaux répertoires et sous-répertoires par défaut, tels que /bin, /dev, /etc, /usr, /var, et autres.
De plus, la pour est livrée avec toutes les distributions Linux par défaut, telle qu’elle est définie par la norme de hiérarchie du système de fichiers:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2
/bin This directory contains executable programs which are needed in single user
mode and to bring the system up or repair it.
/sbin Like /bin, this directory holds commands needed to boot the system, but
which are usually not executed by normal users.
/usr/X11R6/bin
Binaries which belong to the X-Window system; often, there is a symbolic
link from the more traditional /usr/bin/X11 to here.
/usr/bin
This is the primary directory for executable programs. Most programs exe‐
cuted by normal users which are not needed for booting or for repairing the
/usr/local/bin
Binaries for programs local to the site.
/usr/local/sbin
Locally installed programs for system administration.
/usr/sbin
This directory contains program binaries for system administration which
are not essential for the boot process, for mounting /usr, or for system
Dans ce cas, nous listons la documentation hiérarchique et la filtrons via des expressions régulières étendues pour ne lister que les répertoires binaires et les deux premières lignes de leur description.
En substance, les informations ci-dessus montrent comment divers fichiers sont stockés à différents endroits et ces emplacements servent un but unique. De même, cela aide lorsque nous écrivons un programme et que nous voulons l’exécuter à partir de plusieurs emplacements.
5. Conclusion
Pour résumer, nous avons différents types de binaires, et chacun est stocké sous des sous-répertoires spécifiques.
Dans cet article, nous avons d’abord examiné la mise en page du répertoire. Ensuite, nous avons appris comment les fichiers binaires sont stockés. Enfin, nous avons étudié l’intention derrière les répertoires de fichiers binaires sur un système Linux.