paso - scripts linux ejercicios resueltos
¿Directorio estándar de Unix para poner ejecutables o scripts personalizados? (3)
Si tengo un script o programas de shell personalizados, que creé o descargué de la web, y quiero poder ejecutar esto desde la CLI, ¿existe la ubicación estándar para poner esto en la estructura de directorios de Linux / Unix?
/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?
Normalmente lo pongo debajo de mi carpeta ~ / bin y lo pongo en PATH, pero no parece limpio. Y cada vez que descargué un nuevo programa, tengo que ponerlo nuevamente en la RUTA.
Bueno, yo usaría ~/bin (mientras que no soy root), pero con respecto a $PATH siempre puedes hacer
export PATH=".:${PATH}"
# or
export PATH="${PATH}:."
De esta manera, el directorio de trabajo real siempre estará en su $PATH . Aunque tiene algunos problemas de seguridad ... especialmente con scripts descargados.
Esto puede variar ligeramente dependiendo del sabor de Unix. Estoy asumiendo Linux aquí (aunque esto podría aplicarse a OSX). De acuerdo con el Estándar de jerarquía del sistema de archivos (FHS) (enlace obtenido del grupo de trabajo Base de Linux estándar ):
La jerarquía
/usr/localdebe ser utilizada por el administrador del sistema al instalar el software localmente. Debe evitar sobrescribirse cuando se actualiza el software del sistema. Se puede usar para programas y datos que se pueden compartir entre un grupo de hosts, pero que no se encuentran en/usr.El software instalado localmente debe colocarse en
/usr/locallugar de/usrmenos que se lo instale para reemplazar o actualizar el software en/usr.
/usr/local/bin menudo está en la ruta de forma predeterminada.
Tenga en cuenta que solo debe colocar el ejecutable o un enlace en /usr/local/bin , el resto puede tener que ir en /usr/local/lib o /usr/local/share .
El árbol /opt también podría ser sensato:
/optestá reservado para la instalación de paquetes de software de aplicaciones complementarias.Un paquete que se instalará en / opt debe ubicar sus archivos estáticos en un árbol de directorio
/opt/<package>/opt/<provider>separado, donde<package>es un nombre que describe el paquete de software y<provider>es el Nombre registrado de LANANA del proveedor.[...]
Los directorios / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib y / opt / man están reservados para uso del administrador del sistema local. Los paquetes pueden proporcionar archivos "frontales" destinados a ser ubicados (vinculando o copiando) estos directorios reservados por el administrador del sistema local, pero deben funcionar normalmente en ausencia de estos directorios reservados.
(Puede crear su propio enlace desde /opt/your-package/bin/executable en /opt/bin , y poner /opt/bin en la PATH si aún no está allí).
/usr/local/bin existe precisamente para este propósito, para la instalación de todo el sistema. Para su uso privado, ~/bin es el estándar de facto.
Si desea mantener cada binario en su propio subdirectorio, puede hacerlo y agregar un enlace simbólico a un directorio que ya esté en su PATH . Así por ejemplo
curl -o $HOME/downloads/fnord http://fnord.example.com/script.exe
ln -s $HOME/downloads/fnord $HOME/bin/
siempre que $HOME/bin esté en su PATH . (Hay herramientas como stow que hacen esto, y mucho más, detrás de escena para ti).