Diferencias entre / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin

220

Tengo seis directorios con archivos de comando. Estos son /bin , /sbin , /usr/bin , /usr/sbin , /usr/local/bin y /usr/local/sbin .

¿Cuáles son las diferencias entre estos? Si estoy escribiendo mis propios scripts, ¿dónde los debería agregar?

Relacionado:

pregunta Keelan 14.06.2013 - 09:13

2 respuestas

289

Consulte el Estándar de jerarquía del sistema de archivos (FHS) para Linux para obtenerlo.

  • /bin : para binarios que se pueden usar antes de montar la partición /usr . Esto se utiliza para los binarios triviales utilizados en la etapa de inicio más temprana o los que debe tener disponibles para iniciar el modo de usuario único. Piensa en binarios como cat , ls , etc.

  • /sbin : Igual, pero para los scripts con superuser (root) se requieren privilegios .

  • /usr/bin : Igual que el primero, pero para binarios generales del sistema .

  • /usr/sbin : igual que el anterior, pero para los scripts con privilegios de superusuario (raíz) necesarios.

  

si estoy escribiendo mis propios scripts, ¿dónde debería agregarlos?

Ninguno de los anteriores. Debería usar /usr/local/bin o /usr/local/sbin para scripts disponibles en todo el sistema. La ruta local significa que no está gestionada por los paquetes del sistema (esto es un error para paquetes Debian / Ubuntu).

Para scripts de ámbito de usuario , use ~/bin (una carpeta bin personal en su directorio de inicio).

La FHS dice que para /usr/local :

  

Jerarquía terciaria para datos locales, específica para este host . Normalmente tiene subdirectorios adicionales, por ejemplo, bin/ , lib/ , share/ .

    
respondido por el gertvdijk 14.06.2013 - 09:17
3

Tuve una pregunta similar hace un año o más: El mejor directorio para colocar mi scripts bash?

Directorios del sistema para binarios

man hier (jerarquía) enumera todos los directorios. Para obtener los que son solo para binarios, use:

$ 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

¿Dónde colocar tus propios scripts?

Para que todos los usuarios accedan a sus scripts, puede ponerlos en /usr/local/bin . Tenga en cuenta que necesita sudo acceso para agregar / cambiar archivos aquí. Consulte: ¿Existe un lugar estándar para colocar scripts de Linux personalizados? ?

Para sus propios scripts de ID de usuario, colóquelos en /home/YOUR_NAME/bin . Tenga en cuenta que primero tiene que crear este directorio y volver a iniciar el terminal para configurar la ruta automáticamente en ~/.profile . Consulte: Cómo agregar / home / username / bin a $ PATH?

Lo que sé que no sé

Estoy considerando tomar algunos de mis scripts bash más complejos en Ask Ubuntu y configurarlos con los scripts de instalación en github . Aquí hay algunos ejemplos:

Creo que los scripts deben estar instalados en /usr/bin que está en $ PATH, pero todavía no estoy seguro de cuál es el lugar adecuado.

    
respondido por el WinEunuuchs2Unix 12.06.2018 - 01:44

Lea otras preguntas en las etiquetas