GNU/Linux >> Tutoriales Linux >  >> Linux

¿Dónde hay un buen lugar permanente para instalar scripts bash personalizados?

Solución 1:

(Nota:~ se traduce como /home/user en esta publicación)

Personalmente, puse todos mis scripts de sistema personalizados en /usr/local/bin y todos mis scripts bash personales en ~/bin . Muy pocos programas que instalo se ubican en /usr/local/bin directorio por lo que no está muy abarrotado y ya estaba en el $PATH variable en la mayoría de mis máquinas.

Para agregar /usr/local/bin a la ruta de su sistema (si aún no está allí) agregue esto a /etc/profile :

PATH=$PATH:/usr/local/bin
export PATH

Para agregar ~/bin a la ruta de su usuario agregue esto a ~/.bash_profile :

PATH=$PATH:$HOME/bin
export PATH

A veces, el .bash_profile predeterminado El archivo tendrá una declaración if que agrega automáticamente ~/bin a $PATH si existe, cree el ~/bin y abre una nueva terminal para ver si la tuya ya hace esto.

Solución 2:

/usr/local/ es realmente el lugar correcto, mientras que /opt es realmente para aplicaciones de terceros; "/opt está reservado para la instalación de paquetes de software de aplicación complementarios". Esto es parte del estándar de jerarquía del sistema de archivos.

Consulte http://www.pathname.com/fhs/pub/fhs-2.3.html para obtener información sobre /opt.

Para /usr/local/, es para "uso del administrador del sistema". Simplemente no se olvide de las cosas allí, documéntelo.

Solución 3:

Históricamente usarías algo como /opt. Cualquier cosa está bien siempre que se actualice en $PATH para los usuarios que se supone que deben tenerlo (por lo tanto, cualquier cosa en /home es una mala idea).

Solución 4:

/usr/share/clojure parece un lugar común para colocar los archivos binarios y las bibliotecas de clojure; no sé por qué, parece natural para /usr/local/share/clojure — entonces creando un site el subdirectorio debajo de este para estos scripts bash parece estar bien.

El punto general es que tiene más sentido organizar los scripts por función, no tener todos los scripts bash en el mismo lugar.

Solución 5:

/usr/local , creo que hay cierta confusión en el significado de "local".

Tal como lo entiendo, "local" no significa "originado en/desde la máquina local" sino, más simplemente, "específico de la máquina local", que puede o no originarse en/desde la máquina local.


Linux
  1. Manejo de errores en scripts Bash

  2. ¿Compartir variables entre múltiples scripts de shell?

  3. Usando el comando de suspensión de Linux en Bash Scripts

  4. Uso del comando Linux Basename en Bash Scripts

  5. Cómo hacer eco de una nueva línea en Bash Shell Scripts

Cómo crear documentos con scripts Bash

Cómo usar el comando echo en Bash Scripts en Linux

Cómo instalar Linux Bash Shell en Windows 10

Usando el comando Dirname de Linux en Bash Scripts

Bash Beginner Series #3:Pasando Argumentos a Bash Scripts

Aprenda secuencias de comandos Bash multihilo con GNU Parallel