Usuario anónimo
Diferencias entre /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
Tengo seis directorios con archivos de comandos. Estos son /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
y /usr/local/sbin
.
¿Cuáles son las diferencias entre estos? Si escribo mis propios scripts, ¿dónde debo añadirlos?
Relacionado:
290
2
Para ello, consulte el Filesystem Hierarchy Standard (FHS) for Linux.
/bin
: Para binarios utilizables antes de montar la partición/usr
. Esto se utiliza para binarios triviales utilizados en la etapa de arranque muy temprana o aquellos que necesita tener disponibles en el arranque en modo monopuesto. Piensa en binarios comocat
,ls
, etc./sbin
: Lo mismo, pero para binarios con privilegios de superusuario (root) requeridos./usr/bin
: Igual que el primero, pero para binarios generales del sistema./usr/sbin
: Igual que el primero, pero para binarios con privilegios de superusuario (root) requeridos.Si escribo mis propios scripts, ¿dónde debo añadirlos?
En ninguno de los anteriores. Debe utilizar
/usr/local/bin
o/usr/local/sbin
para los scripts disponibles en todo el sistema. La rutalocal
significa que no está gestionada por los paquetes del sistema (esto es un error para los paquetes de Debian/Ubuntu).Para scripts de usuario, utilice
~/bin
(una carpeta bin personal en su directorio personal).El FHS dice que para
/usr/local
:Jerarquía terciaria para datos locales, específicos de este host. Normalmente tiene otros subdirectorios, por ejemplo,
bin/
,lib/
,share/
.Yo mismo tuve una pregunta similar hace más de un año: https://askubuntu.com/questions/830074/best-directory-to-place-my-bash-scripts
Directorios del sistema para los binarios
man hier
(jerarquía) lista todos los directorios. Para obtener los que son solo para binarios usa:¿Dónde poner tus propios scripts?
Para que todos los usuarios puedan acceder a tus scripts puedes ponerlos en
/usr/local/bin
. Ten en cuenta que necesitas accesosudo
para añadir/cambiar archivos aquí. Ver: https://askubuntu.com/questions/195652/is-there-a-standard-place-for-placing-custom-linux-scriptsPara sus propios scripts de identificación de usuario póngalos en
/home/su_nombre/bin
. Tenga en cuenta que tiene que crear este directorio primero y relanzar el terminal para obtener la ruta automáticamente configurada por~/.profile
. Ver: https://askubuntu.com/questions/402353/how-to-add-home-username-bin-to-path?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qaLo que sé que no sé
Estoy contemplando tomar algunos de mis scripts bash más complejos en Ask Ubuntu y configurarlos con scripts de instalación en
github
. Aquí hay algunos ejemplos:Creo que los scripts deberían ser instalados en
/usr/bin
que está en el $PATH, pero no estoy seguro del lugar apropiado todavía.