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

218

J'ai six répertoires avec des fichiers de commandes. Ce 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ù devrais-je les ajouter?

Connexes:

posée Keelan 14.06.2013 - 09:13
la source

2 réponses

288

Pour cela, consultez la norme de hiérarchie du système de fichiers (FHS) pour Linux .

  • /bin : pour les fichiers binaires utilisables avant le montage de la partition /usr . 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 aux binaires comme cat , ls , etc.

  • /sbin : Identique, mais pour les scripts avec les privilèges superutilisateur (root) requis .

  • /usr/bin : identique au premier, mais pour les binaires généraux à l’échelle du système .

  • /usr/sbin : comme ci-dessus, mais pour les scripts avec les privilèges 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 ou /usr/local/sbin pour les scripts disponibles à l'échelle du système. Le chemin local signifie qu’il n’est pas géré par les paquets du système (c’est une erreur ). pour les paquets Debian / Ubuntu).

Pour les scripts définis par l'utilisateur , utilisez ~/bin (un dossier bin personnel dans votre répertoire personnel).

Le FHS indique /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/ .

    
réponse donnée gertvdijk 14.06.2013 - 09:17
la source
2

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

Répertoires système pour les binaires

man hier (hiérarchie) répertorie tous les répertoires. Pour obtenir celles qui sont destinées 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ù placer vos propres scripts?

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

Pour vos propres scripts d’ID utilisateur, 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 configuré automatiquement par ~/.profile . Voir: Comment ajouter / home / nom d'utilisateur / bin à $ PATH?

Ce que je sais, je ne sais pas

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

Je pense que 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é.

    
réponse donnée WinEunuuchs2Unix 12.06.2018 - 01:44
la source

Lire d'autres questions sur les étiquettes