402 votes

Differences between /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

J'ai six répertoires avec des fichiers de commande. Ce sont /bin , /sbin , /usr/bin , /usr/sbin , /usr/local/bin y /usr/local/sbin .

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


En rapport :

474voto

RN. Points 559

Veuillez vous référer à la Norme de hiérarchie des systèmes de fichiers (FHS) pour Linux pour ça.

  • /bin : Pour les binaires utilisables avant la /usr est montée. Ceci est utilisé pour les binaires triviaux utilisés au tout début du démarrage ou ceux que vous devez avoir à disposition lors du démarrage en mode mono-utilisateur. Pensez à des binaires comme cat , ls など。

  • /sbin : Idem, mais pour les binaires avec privilèges de superutilisateur (root) requis .

  • /usr/bin : Identique au premier, mais pour binaires généraux pour tout le système .

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


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

Aucune de ces réponses. Vous devez utiliser /usr/local/bin o /usr/local/sbin pour les scripts disponibles à l'échelle du système. Le site local signifie qu'il n'est pas géré par les paquets du système (il s'agit de une erreur pour les paquets Debian/Ubuntu).

Pour scripts adaptés à l'utilisateur utiliser ~/bin (un dossier de poubelle personnel dans votre répertoire personnel).

Le FHS dit que pour /usr/local :

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

29voto

WinEunuuchs2Unix Points 91128

Je me suis moi-même posé une question similaire il y a plus d'un an : Meilleur répertoire pour placer mes bash scripts ?

Répertoires système pour les binaires

man hier (hiérarchie) liste tous les répertoires. Pour obtenir ceux qui ne concernent que les 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 que tous les utilisateurs puissent accéder à vos scripts, vous pouvez les mettre dans /usr/local/bin . Gardez à l'esprit que vous devez sudo accès pour ajouter / modifier des fichiers ici. Voir : Existe-t-il un endroit standard pour placer des scripts Linux personnalisés ?

Pour votre propre ID utilisateur scripts mettez-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 défini par ~/.profile . Voir : Comment ajouter /home/username/bin à $PATH ?


Ce que je sais, je ne le sais pas

J'envisage de prendre certains de mes scripts bash les plus complexes en Demandez à Ubuntu et les configurer avec install scripts sur github . Voici quelques exemples :

I pensez à les scripts devraient être installés dans /usr/bin qui est dans le $PATH, mais je ne suis pas encore sûr de l'endroit approprié.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X