Différences entre bin, sbin

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.