Question Différences entre / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


J'ai six répertoires avec des fichiers de commandes. Ceux-ci sont /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin et /usr/local/sbin.

Quelles sont les différences entre celles-ci? Si j'écris mes propres scripts, où dois-je les ajouter?


En relation:


221
2018-06-14 07:13


origine


Question connexe: unix.stackexchange.com/questions/8656/… - Gabriel Staples
@Keelan Votre question est proche d'une question que j'ai posté il y a un an: askubuntu.com/questions/830074/… - WinEunuuchs2Unix


Réponses:


S'il vous plaît se référer à la Norme de hiérarchie des systèmes de fichiers (FHS) pour Linux pour ça.

  • /bin : Pour les binaires utilisables avant le /usr la partition est montée. Ceci est utilisé pour les binaires triviaux utilisés au tout début de la phase de démarrage ou ceux dont vous avez besoin pour démarrer le mode mono-utilisateur. Pensez à des binaires comme cat, ls, etc.

  • /sbin  : Même chose, mais pour les binaires avec privilèges superutilisateur (root) requis.

  • /usr/bin : Comme premier mais pour binaires généraux à l'échelle du système.

  • /usr/sbin : Comme ci-dessus, mais pour les binaires avec les privilèges superutilisateur (root) requis.


Si j'écris mes propres scripts, où dois-je les ajouter?

Aucune de ces réponses. Tu devrais utiliser /usr/local/bin ou /usr/local/sbin pour les scripts disponibles à l'échelle du système. le local chemin signifie qu'il n'est pas géré par les packages du système (ceci est une erreur pour les paquets Debian / Ubuntu).

Pour scripts à portée de l'utilisateur, utilisation ~/bin (un dossier bin personnel dans votre répertoire personnel).

Le FHS dit pour /usr/local:

Hiérarchie tertiaire pour les données locales, spécifique à cet hôte. A généralement d'autres sous-répertoires, par exemple, bin/, lib/, share/.


291
2018-06-14 07:17



so / bin est l'endroit où tous les fichiers principaux sont installés. comme ls, chat, pwd, etc. Donc, / usr / bin est l'endroit où les applications installées par l'utilisateur sont? Quels sont quelques exemples de ce que devrait contenir / usr / bin? - Patoshi パトシ
Est-ce que placer des scripts dans /bin causer des problèmes? J'ai déplacé mes scripts en fonction de votre réponse mais je suis toujours curieux - Rumesh
@RumeshSudhaharan, vous ne devriez pas faire cela, car il est géré par la gestion des paquets. Si un autre package souhaite également utiliser ce chemin, il écrasera votre fichier. Les fichiers dans les packages ne peuvent jamais se chevaucher (du moins pour les dépôts officiels), vous êtes donc plus en sécurité lors de l'installation sur le chemin local. De plus, c'est juste pour votre commodité et votre sécurité. Dans un chemin local, vous ne pouvez pas endommager le système d'une manière aussi néfaste et vous ne pouvez pas remplacer accidentellement un système binaire. - gertvdijk
J'aime l'explication sur la page d'erreur: Severity:Serious Certainty:Certain - cutrightjm
J'ai mis des fichiers dans / usr / local / bin et je peux les exécuter, mais je ne peux pas les éditer, ls -la ne montre rien - M. Reza Nasirloo


J'ai eu une question similaire il y a un an et plus: Meilleur répertoire pour placer mes scripts bash?

Répertoires système pour les binaires

man hier (hiérarchie) liste tous les répertoires. Pour obtenir ceux qui sont destinés aux binaires, utilisez:

$ 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

Où mettre vos propres scripts?

Pour tous les utilisateurs d'accéder à vos scripts, vous pouvez les mettre dans /usr/local/bin. Gardez à l'esprit que vous avez besoin sudo accéder à ajouter / modifier des fichiers ici. Voir: Existe-t-il un emplacement standard pour placer des scripts Linux personnalisés?

Pour vos propres scripts d’identification, placez-les dans /home/YOUR_NAME/bin. Gardez à l'esprit que vous devez d'abord créer ce répertoire et relancer le terminal pour que le chemin soit automatiquement configuré par ~/.profile. Voir: Comment ajouter / home / nom d'utilisateur / bin à $ PATH?


Ce que je sais je ne sais pas

Je envisage de prendre certains de mes scripts bash plus complexes dans Demandez à Ubuntu et les configurer avec des scripts d'installation sur github. Voici quelques exemples:

je pense les scripts doivent être installés dans /usr/bin qui se trouve dans $ PATH, mais je ne suis pas encore sûr de l'endroit approprié.


3
2018-06-11 23:44



J'apprécie votre effort, mais, sauf la partie "Ce que je sais, je ne sais pas", vous avez répété la réponse de gertvdijk. - danzel
@danzel Je pense que l'élément clé est la man hier section à laquelle la réponse de gertvdijk n'a pas répondu. c'est-à-dire que vous pouvez obtenir la structure hiérarchique du répertoire dans la ligne de commande sans avoir à la lire sur le Web (c'est-à-dire ici). - WinEunuuchs2Unix
c'est une information intéressante, je suis d'accord. Mais gertvdijk a déjà mentionné le standard de hiérarchie des systèmes de fichiers (qui man hier est un extrait insuffisant de l’OMI). Cependant, cela peut être mon opinion personnelle. - danzel
@danzel Je reconnais que les sites Web ont une analyse beaucoup plus approfondie que celle de nos disques durs. J'essaie seulement de souligner que l'information est sur nos disques durs sans avoir recours à Internet. Outre le lien wikipedia cité est disparu  /usr/X11R6/bin et /usr/local/bin qui est inclus dans man heir. - WinEunuuchs2Unix