3 votos

Ejecutar un script de bash nombre

Soy nuevo en bash scripting y de hecho uno para mi VPN llamado myvpn.sh En lugar de hacer ./myvpn.sh , sólo quiero escribir myvpn en la terminal y se va a ejecutar desde cualquier directorio. Intentado buscar en Google pero sin suerte (probablemente googlear algo malo).

Es posible hacer por un aficionado o no corresponder a ningún conocimiento avanzado?

3voto

sks-15 Puntos 19

Usted puede hacer alias de la ruta de acceso de la secuencia de comandos. En primer lugar, hacer su comando ejecutable mediante el uso de chmod:

chmod u+x myvpn.sh

donde u+x solo da el usuario(usted) el permiso para ejecutar la secuencia de comandos.

A continuación, hacer una alias en su .bashrc a hacerla persistente:

alias myvpn='/path/to/your/script'

Ahora usted puede simplemente escriba myvpn desde cualquier lugar a ejecutar la secuencia de comandos.

2voto

FloT Puntos 172

Hola y bienvenidos a Pedir Ubuntu.
Que suerte, tu pregunta no se requieren conocimientos avanzados en todo!

1) Localizar las carpetas donde ejecutable se encuentra

Se puede ejecutar con sólo su nombre, un archivo binario debe estar en uno de los directorios presentes en la variable de entorno PATH.

El directorio predeterminado para el usuario de los archivos ejecutables en Ubuntu es $HOME/bin. Si no existe, se puede crear manualmente y se añadirá automáticamente en su variable de entorno PATH. $HOME es una variable de entorno que contiene la ruta de acceso a su directorio de inicio del usuario, lo que significa que este "bin" de la carpeta se creará en la misma carpeta como "Documentos", "Imágenes", "Música"...*

Saber lo que usted tiene en su variable de entorno PATH, la forma más sencilla es abrir una terminal y escriba echo $PATH, según lo sugerido por el vanadio. También puede ver todas las variables de entorno con env.

Usted debe obtener algo como (además de otras variables si se utiliza env): PATH=/home/datam/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Las carpetas están separados por ":" signo.

Cada vez que usted escriba un comando en la terminal, el sistema operativo se ve en estos directorios hasta que encuentra un archivo ejecutable correspondiente!

Aquí se puede ver que hay una carpeta en tu directorio home, es decir, accesibles sin sudo: $HOME/.local/bin

Si ha agregado un bin carpeta manualmente, entonces la verás en tu camino (después de cerrar la sesión y volver a iniciarla).

Que es donde el archivo debe ser!

2) Hacer el archivo ejecutable

Así que asegúrese de que su archivo es ejecutable por el usuario, es decir, tiene x permiso de "u" (gráficamente con clic derecho- > propiedades -> permisos dependiendo de su distribución, en la línea de comandos con ls -l desde la carpeta donde el archivo está). Modificar la secuencia de comandos para agregar #!/bin/bash en su primera línea, si no lo ha hecho.

3) Mover el archivo a la carpeta de la derecha

Ahora, mover o copiar el archivo en $HOME/bin

Trabajo realizado :) ahora puede ejecutar desde terminal, simplemente escribiendo el nombre del archivo!

4) Cambie el nombre del archivo (opcional)

Si el nombre de archivo de la secuencia de comandos es "myvpn.sh" escribirá "myvpn.sh" en la terminal para invocarlo. Así que si usted desea llamar a la secuencia de comandos con sólo "myvpn", usted tiene que cambiar el nombre de tu archivo.

1voto

StrabagISS_Krall Puntos 181

Usted puede mover su script /usr/local/bin y hacerlo ejecutable con chmod 0750 myvpn.sh. Esto debería permitir ejecutar el script simplemente escribiendo su nombre. Sólo en el caso, asegúrese de que su guión comienza con #!/bin/bash.

1voto

vanadium Puntos 316

Con el fin de ser capaz de ejecutar el script simplemente escribiendo su nombre, el script debe residir en una carpeta que se muestra en su ruta de búsqueda. El comando echo $PATH aparecerá una lista de los actuales rutas de búsqueda. Cuando escriba el nombre de un archivo ejecutable, el sistema busca las carpetas que aparecen en la variable PATH para encontrar un archivo ejecutable con el nombre escrito.

Si quieres que tu script a estar disponible para todos los usuarios, que tendrá lugar en una de las carpetas en las carpetas del sistema. Para eso, se necesitan privilegios de administrador.

Si usted es el único usuario que necesita para utilizar la secuencia de comandos, a continuación, crear un bin carpeta dentro de tu carpeta de inicio (es decir, la carpeta que contiene también Documents, Pictures etc). A continuación, salir y regresar. Ubuntu está configurado automáticamente para incluir su local bin carpeta de la RUTA. Después de esto, usted será capaz de ejecutar cualquier archivo ejecutable que usted pone en su local bin carpeta escribiendo el nombre del archivo.

Un detalle: si desea escribir myvpn a ejecutar el script personalizado, entonces usted también necesitará un nombre como que: por lo tanto, cambiar el nombre de myvpn.sh a myvpn. También no se olvide de hacer el script ejecutable. Después de mover la secuencia de comandos para su local bin carpeta, el siguiente comando para hacerlo ejecutable:

chmod +x ~/bin/myscript

También puede utilizar los archivos (nautilus) para hacer el script ejecutable: haga clic en la secuencia de comandos, seleccione "Propiedades" y vaya a la pestaña "Permisos".

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: