Sous Linux, les différents emplacements, généralement bien entretenus, reflètent une certaine logique. Par exemple.:
/bin contient les outils (programmes) les plus élémentaires
/sbin contient les programmes d'administration les plus basiques
Les deux contiennent les commandes élémentaires utilisées par le démarrage et le dépannage fondamental. Et ici, vous voyez la première différence. Certains programmes ne sont pas destinés à être utilisés par des utilisateurs réguliers.
Ensuite, jetez un œil /usr/bin. Vous devriez trouver ici un plus grand choix de commandes (programmes), généralement plus de 1000 d'entre elles. Ce sont des outils standard, mais pas aussi essentiels que ceux de /binet /sbin.
/usr/bincontient les commandes, tandis que les fichiers de configuration résident ailleurs. Cela sépare à la fois les entités fonctionnelles (programmes) et leur configuration et d'autres fichiers, mais en termes de fonctionnalités utilisateur, cela est pratique, car le fait de ne pas mélanger les commandes avec quoi que ce soit d'autre permet la simple utilisation de la PATHvariable pointant vers les exécutables. Il introduit également la clarté. Tout ce qui est devrait être exécutable.
Jetez un oeil à mon PATH,
$ echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/home/tomas/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
Il y a exactement six emplacements contenant les commandes que je peux appeler directement (c'est-à-dire non pas par leurs chemins, mais par les noms de leurs exécutables).
/home/tomas/bin est mon répertoire privé dans mon dossier personnel pour mes exécutables privés.
/usr/local/bin J'expliquerai séparément ci-dessous.
/usr/bin est décrit ci-dessus.
/bin est également décrit ci-dessus.
/usr/local/gamesest une combinaison de /usr/local(à expliquer ci-dessous) et de jeux
/usr/gamessont des jeux. Ne pas mélanger avec les exécutables utilitaires, ils ont leurs emplacements séparés.
Maintenant /usr/local/bin. Celui-ci est quelque peu glissant et a déjà été expliqué ici: Qu'est-ce que / usr / local / bin? . Pour le comprendre, vous devez savoir que le dossier /usrpeut être partagé par de nombreuses machines et monté à partir d'un emplacement net. Les commandes ne sont pas nécessaires au démarrage, comme indiqué précédemment, contrairement à celles de /bin, donc l'emplacement peut être monté dans les étapes ultérieures du processus de démarrage. Il peut également être monté en lecture seule. /usr/local/bin, d'autre part, est destiné aux programmes installés localement et doit être accessible en écriture. Ainsi, alors que de nombreuses machines réseau peuvent partager le /usrrépertoire général , chacune d'elles aura sa propre version /usr/localmontée dans le commun /usr.
Enfin, jetez un œil à PATHmon utilisateur root:
# echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
Il contient ceux-ci:
/usr/local/sbin, qui contient les commandes d'administration du type /usr/local
/usr/local/bin, qui sont les mêmes que ceux que l'utilisateur ordinaire peut utiliser. Encore une fois, leur type peut être décrit comme /usr/local.
/usr/sbin sont les utilitaires d'administration non essentiels.
/usr/bin sont l'administration non essentielle et les utilitaires utilisateur réguliers.
/sbin sont les outils d'administration essentiels.
/bin sont les outils essentiels de l'administrateur et de l'utilisateur régulier.