5 votos

linux + ejecutar algún script, sin el "./" + alias

Tengo una máquina Linux y tengo un script llamado load_info y el script se encuentra en /var

Me gustaría ser capaz de ejecutar la load_info script desde otro directorio sin tener que anteponer el comando "./"

Por ejemplo, si yo estaba en /root quiero ser capaz de escribir load_info (sin ./) y este debe ejecutar el /var/load_info script.

Entonces, ¿cómo puedo hacer para que si me cd /root, me puede escribir load_info y hacer que se ejecute el archivo /var/load_info secuencia de comandos.

6voto

GarnerCX Puntos 93

Usted necesita tener la ubicación de la secuencia de comandos en una variable de entorno llamada PATHde acceso.

Las variables de entorno son normales como las variables que se utilizan en su cáscara, excepto que son persistentes a lo largo de su sesión en sesión. Además, si uno de ellos para ser cargado en su entorno cuando se inicia la sesión, siempre y disponible todo el tiempo.

La PATHde la variable de ayuda a la shell encontrar los comandos que usted introduzca. Su valor es una lista de directorios que se busca en la shell cada vez que introduzca un comando. Los nombres de directorios separados por dos puntos.

Si usted está utilizando el bash shell (el más común shell que se usa en Linux), entonces usted puede ver lo que los directorios en la PATHde la variable escribiendo echo $PATH en el símbolo del sistema.

Vamos a decir que el load_info script en un directorio llamado /var. Usted puede añadir este directorio a la PATHde la variable escribiendo:

PATH=$PATH:"/var"

Para hacer de este un cambio permanente en la PATHde la variable, puede agregar esto a tres archivos diferentes dependiendo de cuál es el efecto que desea.

  • Si se agrega a la /etc/profile archivo, puede hacer que el directorio disponible para todos los usuarios que inicien sesión en el sistema.

  • Usted puede agregar la PATHde acceso de la modificación de su propia .bash_profile archivo en su directorio de inicio, y esto sólo se aplica a usted cuando usted se conecta.

  • Usted puede también agregar el CAMINO de la modificación a la .bashrc archivo archivo en su directorio de inicio, el cual tendría un efecto similar a la adición de a .bash_profile, salvo que el .bashrc archivo se carga cada vez que se inicie una nueva shell.

También vale la pena mencionar que /var probablemente no es el mejor lugar para una secuencia de comandos de todos modos. /usr/local/bin sería mejor. Retirar el heredero(7) el hombre de la página con man 7 heir para obtener más información sobre lo que los archivos donde debe ir.

2voto

Crippeoblade Puntos 1301

El shell buscará en las rutas de acceso en la $PATH variable de entorno para el tipo de comando si no se completa (e. g. vi en lugar de /usr/bin/vi). Usted puede agregar fácilmente otro camino a su $PATH variable añadiendo una línea en su ~/.profile o ~/.bashrc:

export PATH="$PATH:/path/to/your/scripts"

Como una especie de mejores prácticas también debe guardar la secuencia de comandos en /usr/local/bin o /usr/local/sbin, ver aquí(7).

2voto

quanta Puntos 31979

Hay algunas maneras de hacer esto: (que se ejecuta como root)

  1. Cree un enlace simbólico a la /usr/bin

    # ln -s /var/load_info /usr/bin/load_info
    
  2. Añadir a la global PATH variable de entorno:

    # echo "export PATH=$PATH:/var" >> /etc/profile
    

0voto

vekva Puntos 9

En OS X (construido en Unix) que podría hacerlo de esta manera:

  1. pico .perfil

  2. Añadir esta línea: -alias scriptname="~/Path-to-script/./scriptname" -Salida de pico y guardar.

  3. . .perfil

Como se ve aquí: http://rmcaps.tumblr.com/post/11635645690/help-whats-my-ip-updated

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: