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