Tengo algunos scripts de bash muy simples que combiné para cosas que hago regularmente. Una de ellas es ejecutar duplicidad para hacer mis tareas de respaldo. Nada inteligente, solo un montón de si ... entonces declaraciones realmente. Como esto debe ejecutarse como sudo, ¿sería una buena práctica poner mi script en / usr / bin (u otra ubicación en PATH), conocido como root.root y chmod a 700?
15
git
para controlar las versiones de sus scripts, coloque copias locales de los repositorios de git en algún lugar que le guste~
y luego enlace simbólicamente los scripts~/bin
.git
comogithub
en las nubes?/usr/local/bin
. De lo contrario, yo diría que sólo hay que poner en~/bin
. Sus propios scripts en ambos directorios deben estar seguros cuando actualice.~/bin
es el mejor lugar para la mayoría de los scripts, ya que no tiene que usarlossudo
para editarlos como lo hace cuando están almacenados/usr/local/bin
.Respuestas:
Guardo mis propios scripts en
/opt/scripts
.Si su script debe ser ejecutable por cada usuario del sistema, puede crear un enlace simbólico a
/usr/bin
.Si solo root debe ejecutar el script, puede crear un enlace simbólico a
/usr/sbin
.Comando para agregar un enlace simbólico en
/usr/bin/
:Puede ejecutar el script, porque
/usr/bin/
está en su RUTA por defecto.fuente
/usr/bin
como objetivo para el script de shell de usuario / local, sea/usr/local/bin
(o/opt/bin
) según el Estándar de Jerarquía del Sistema de Archivos - Wiki de Debian para evitar conflictos (la mayoría de las veces, desea que los scripts proporcionados por Ubuntu tengan prioridad)./usr/local/bin
anula/usr/bin
, ya que viene más adelante en el camino. Esto es a propósito, ya que el sistema no coloca archivos allí, por lo que puede colocar archivos allí, que DEBERÍAN anular los proporcionados por el sistema.Si ningún otro usuario que no sea usted usa estos scripts:
Entonces puedes mantenerlos adentro
/home/$USER/bin
. Cree labin
carpeta si no está allí y mueva los archivos allí. La carpeta bin en su hogar se agregará automáticamente a la variable de entorno PATH. El código está en.profile
:Consulte ¿Cómo agregar / home / username / bin a $ PATH?
O en algunos sistemas puede estar en
.bashrc
:Gracias, élder Geek
Si estos scripts deben ser utilizados por otros usuarios:
Entonces,
/usr/local/bin
o/opt/bin
son buenas opciones. Consulte ¿Existe un lugar estándar para colocar scripts de Linux personalizados?Espero que esto ayude
fuente
Tengo un directorio que uso para la recopilación rápida de mis herramientas locales o cosas que implemento en varias computadoras
/usr/local/apollo
. Hay ramas fuera de este directorio paraflags
,bin
ylogs
.Para las aplicaciones que descargo e instalo fuera de los
apt-get
repositorios predeterminados, se colocan en/opt/
un directorio por el nombre de la aplicación, con un subdirectorio más para la versión específica de la aplicación. De esta manera, mi versión compilada de una aplicación comovlc
oeclipse
no conflicto con la versión distribuida.Mi uso de
/opt
es la forma en que está básicamente diseñado oficialmente.Por cierto, los directorios
/usr/local/bin
,/usr/local/apollo
y/opt
sobrevive a una nueva instalación de la versión del sistema operativo se sobrescriben.fuente
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Me gusta el hecho de/usr/local/bin
que ya está en el camino una cosa menos para recordar. Me gusta su método/opt/program/version
, puedo usarlo para las cosas del kernel que obtengo y compilar como EnhanceIO, donde cambian las cosas entre las versiones del kernel. ¿Es/apollo
un aterrizaje lunar favorito personal o tiene significado de Ubuntu?/usr/local/bin
yusr/local/sbin
tal que este último se destruye durante las actualizaciones?/usr/local
directorios, pero no pone nada en ninguno de ellos. Esos directorios son poblados por el usuario. Muchos programas de origen fuera de los repositorios le dan al usuario la opción de seleccionar dónde quiere que vaya la instalación. Los valores predeterminados en los archivos de configuración son/usr/local/bin
. Entonces, debido a lo común que es usar esos directorios, se incluyen en la ruta del usuario de forma predeterminada. Por defecto, el sistema busca~/bin
y agrega a la ruta si existe.~/bin
durante la instalación o cada arranque? ¿Cuál es la diferencia entresbin
ybin
? Parecen coexistir, debe haber cuasi-reglas que elijas según el tipo de programa, ¿verdad?~/bin
ruta ... no se agrega durante la instalación. El sistema lo busca en cada inicio de sesión y lo agrega a $ PATH si existe durante el inicio de sesión. Mira las dos últimas líneas de tu~/.profile
configuración.