Si tengo un script o programas de shell personalizados, que creé yo mismo o descargué de la web, y quiero poder ejecutarlo 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 en mi carpeta ~ / bin y lo pongo en PATH, pero no parece limpio. Y cada vez que descargo un nuevo programa, tengo que volver a ponerlo en el PATH.
man hier
.~/bin
es una buena ubicación para sus scripts de shell propiedad del usuario.Respuestas:
/usr/local/bin
existe precisamente para este propósito, para la instalación en todo el sistema. Para su propio 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 ejemplocurl -o $HOME/downloads/fnord http://fnord.example.com/script.exe ln -s $HOME/downloads/fnord $HOME/bin/
proporcionado
$HOME/bin
está en suPATH
. (Hay herramientas como lasstow
que hacen esto, y mucho más, detrás de escena para usted).fuente
bin
es para todo tipo de ejecutables, scripts o binarios adecuados. Si los quiere bajo control de versión directo, poner todo subin
control de versiones es sin duda una opción; aunque más comúnmente, tiene un proyecto separado para cada uno, o al menos cada grupo distinto. Cuando lance una nueva versión, instálela en la suyabin
. O si te tomas en serio la comida para perros y / o tienes muy pocas sorpresas en tu vida, coloca un enlace simbólico a tu versión de desarrollo en tubin
.Esto puede variar ligeramente según el tipo de Unix. Estoy asumiendo Linux aquí (aunque esto podría aplicarse a OSX). Según el estándar de jerarquía del sistema de archivos (FHS) (enlace obtenido del grupo de trabajo de la base estándar de Linux ):
/usr/local/bin
suele estar en la ruta de forma predeterminada.Tenga en cuenta que solo debe colocar el ejecutable o un enlace a él
/usr/local/bin
, el resto puede tener que ingresar/usr/local/lib
o/usr/local/share
.El
/opt
árbol también podría ser sensato:(Puede crear su propio enlace desde
/opt/your-package/bin/executable
hacia/opt/bin
y poner/opt/bin
elPATH
si aún no está allí).fuente