GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar un script .sh desde cualquier ruta en una terminal?

Debe copiar o vincular el script en un directorio que se encuentra en $PATH. Normalmente /usr/bin y /usr/local/bin/ están en la ruta, por lo que son buenas ubicaciones para vincular o copiar el script.

ln -s /path/to/your/script /usr/local/bin

Si no eres root, necesitarás sudo ese comando o ejecutarlo como usuario root.


Una opción es simplemente escribir la ruta al script:

~/Desktop/script

Esto funciona bien, pero se vuelve un poco difícil de manejar.

Esto es lo que PATH la variable de entorno es para. Y es lo que $HOME/bin es para.

  1. Cree usted mismo un directorio $HOME/bin . Pon todos tus scripts ejecutables en él (hazlos ejecutables con chmod +x script si es necesario). De esta manera, hay un lugar para buscar los scripts que desea ejecutar.
  2. Agregar $HOME/bin a tu PATH . Pongo el mío al frente:PATH="$HOME/bin:$PATH , pero puedes ponerlo en la parte de atrás si lo prefieres.
  3. Actualiza tu .profile o .bash_profile (o posiblemente .bashrc ) archivo para configurar PATH . Sin embargo, tenga cuidado con un PATH en continuo crecimiento.

Como señaló tripleee, una vez que el comando está instalado en un directorio en PATH , ya no escribes ./script , pero solo script . Esto es exactamente como escribes ls y no /bin/ls , etc. Una vez que el programa está instalado en un directorio en su PATH , es (para muchos propósitos) indistinguible de un comando proporcionado por el sistema.

Tengo alrededor de 500 scripts y programas en mi $HOME/bin directorio.

Tenga en cuenta que esto no requiere ningún privilegio especial. Si tiene acceso de administrador a su máquina y cree que otros usuarios pueden encontrar útiles sus comandos, puede instalar los scripts/programas en uno de los directorios proporcionados por el sistema en su PATH . Sin embargo, generalmente es mejor no agregar programas a ninguno de:

  • /bin
  • /usr/bin
  • /sbin
  • /usr/sbin

A menudo/normalmente hay /usr/local/bin que es un lugar adecuado para comandos ampliamente utilizados que no proporciona el sistema.

Sería mejor usar chmod a+x,go-w script; sus guiones no deben ser escribibles por otras personas. Incluso podría simplemente usar chmod 555 script o chmod 755 script . Tiendo a mantener mis scripts no escribibles. De esa manera, tengo que pasar por un proceso de cambio formal con el sistema de control de versiones. Significa que hay menos peligro de cambios descontrolados.


Linux
  1. ¿Cómo ejecutar “find -exec {};?

  2. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  3. ¿Cómo ejecutar un script?

  4. ¿Cómo puedo ejecutar una función desde un script en la línea de comandos?

  5. ¿Cómo crear un archivo en Linux desde la ventana de terminal?

Cómo ejecutar un script Bash {7 métodos}

Cómo ejecutar un script de Python en PHP

Cómo ejecutar un script Bash

¿Cómo instalo un script para que se ejecute en cualquier lugar desde la línea de comandos?

Cómo ejecutar un script de shell al inicio

Ejecute un script de shell en la nueva terminal desde la terminal actual