scripts script resueltos paso pasar parametros hacer español ejercicios ejemplos ejecutar como comandos linux shell unix command-line directory-structure

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/local debe 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/local lugar de /usr menos 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:

/opt está 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).