GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre /bin et /usr/bin

Quoi? pas de /bin/ n'est pas un lien symbolique vers /usr/bin sur tout système compatible FHS. Notez qu'il existe encore des Unix et des Linux populaires qui ignorent cela - par exemple, /bin et /sbin sont liés symboliquement à /usr/bin sur Arch Linux (le raisonnement étant que vous n'avez pas besoin de /bin pour le mode de secours/mono-utilisateur, puisque vous n'auriez qu'à démarrer un CD live).

/bin

contient des commandes qui peuvent être utilisées à la fois par l'administrateur système et par les utilisateurs, mais qui sont nécessaires lorsqu'aucun autre système de fichiers n'est monté (par exemple en mode mono-utilisateur). Il peut également contenir des commandes utilisées indirectement par des scripts

/usr/bin/

Il s'agit du répertoire principal des commandes exécutables sur le système.

essentiellement, /bin contient les exécutables requis par le système pour les réparations d'urgence, le démarrage et le mode mono-utilisateur. /usr/bin contient tous les fichiers binaires qui ne sont pas requis.

Je noterai qu'ils peuvent être sur des disques/partitions séparés, /bin doit être sur le même disque que / . /usr/bin peut être sur un autre disque - bien que notez que cette configuration a été en quelque sorte cassée pendant un certain temps (c'est pourquoi, par exemple, systemd avertit de cette configuration au démarrage).

Pour une exactitude totale, certains unices peuvent ignorer FHS, car je pense qu'il ne s'agit que d'une norme Linux, je ne suis pas au courant qu'il ait encore été inclus dans SUS, Posix ou toute autre norme UNIX, même si cela devrait être à mon humble avis. Cela fait partie de la norme LSB.


Mise à jour :Pour un peu d'histoire et la vraie raison pour laquelle il y a /usr , lisez ceci :http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. Aussi ceci.

/sbin - Fichiers binaires nécessaires au démarrage, à la réparation de bas niveau du système ou à la maintenance (niveau d'exécution 1 ou S)

/bin - Fichiers binaires nécessaires au fonctionnement normal/standard du système à n'importe quel niveau d'exécution.

/usr/bin - Fichiers binaires d'application/distribution destinés à être accessibles par les utilisateurs connectés localement

/usr/sbin - Les binaires d'application/distribution qui prennent en charge ou configurent des éléments dans /sbin.

/usr/share/bin - Fichiers binaires ou scripts d'application/distribution destinés à être accessibles via le Web, c'est-à-dire les applications Web Apache

*local* - Les binaires ne faisant pas partie d'une distribution ; compilé localement ou installé manuellement. Il n'y a généralement jamais de /local/bin mais toujours un /usr/local/bin et /usr/local/share/bin .


Une sorte de "mise à jour" sur ce problème :

Récemment, certaines distributions Linux fusionnent /bin en /usr/bin et connexe /lib en /usr/lib . Parfois aussi (/usr)/sbin à /usr/bin (Arch Linux).Alors /usr devrait être disponible en même temps que / .

La distinction entre les deux hiérarchies est désormais considérée comme une complexité inutile. L'idée était autrefois de n'avoir que /bin disponible au démarrage, mais le fait d'avoir un disque virtuel initial le rend obsolète.

Je sais que Fedora Linux (2011) et Arch Linux (2012) vont dans cette direction et Solaris le fait depuis longtemps (> 15 ans).

  • freedesktop :TheCaseForTheUsrMerge
  • Fedora :fonctionnalité UsrMove
  • arch :fusionner /bin, /sbin, /lib dans /usr/bin et /usr/lib

Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. /usr/bin Vs /usr/local/bin Sous Linux ?

  3. Différence étrange entre Pwd et /bin/pwd ?

  4. La différence entre /opt et /usr/local ?

  5. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Quelle est la différence entre /sbin/nologin et /bin/false ?

Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

#!/bin/sh vs #!/bin/bash pour une portabilité maximale