Tengo un archivo script.sh y el tipo de este archivo es shellscript. Quiero hacer este archivo como archivo de aplicación / x-ejecutable. ¿Cómo puedo hacerlo?
Tengo un archivo script.sh y el tipo de este archivo es shellscript. Quiero hacer este archivo como archivo de aplicación / x-ejecutable. ¿Cómo puedo hacerlo?
Respuestas:
Puede marcar el archivo como ejecutable:
chmod +x filename.sh
Luego puede ejecutarlo así:
./filename.sh
Si desea utilizar un comando diferente para iniciarlo, puede agregar un alias:
gedit ~/.bashrc
Agregue esto al final del archivo:
alias <new name>='/home/<full path to script>/filename.sh'
Abra una nueva sesión de terminal o escriba source ~/.bashrc
su terminal para aplicar. Luego, simplemente use el nuevo nombre para iniciar el script.
./filename.sh
y no solo filename.sh
?
filename
y no./filename
./filename.sh
especifica un archivo en el directorio actual y el uso filename.sh
especifica un archivo en el directorio actual o en cualquier directorio de PATH. El primer uso elimina cualquier incertidumbre sobre a qué archivo se accede. En este caso, está intentando ejecutar el script con bash u otro intérprete (en virtud de asumir #!/bin/bash
como primera línea en su script) simplemente ingresando el nombre del archivo. Este uso requiere que se especifique el directorio. Alternativamente, puede probar bash filename.sh
cuál parece funcionar con un directorio no especificado.
Hay dos formas de hacer que un archivo sea ejecutable:
Método GUI:
Vaya a la pestaña de permisos, luego marque la casilla `Ejecutar: [] Permitir ejecutar el archivo como programa.
Método de terminal / comando:
Puedes usar:
cd /to/my/required/directory
Entonces corre
chmod +x filename.extension
O simplemente ejecuta:
chmod +x /path/to/your/filename.extension
chmod
también tiene algunas opciones más avanzadas:
Los espacios son para mostrar que está dividido: - rwx --- ---
El primer conjunto de ---
es Usuario. El segundo es Grupo y el último es Otro (cualquier otra persona)
r significa lectura, w para escritura yx para eXecute.
Entonces, para permitir que todos lo lean, pero solo el Grupo para ejecutarlo y el Usuario para leerlo y escribirlo (pero por alguna razón no ejecutarlo) sería:
-rw- rx- r--
Pero esto se agregaría al comando como:
chmod +rw-rx-r-- /path/to/file.extension
chmod
También puede hacer esto en números. Está basado en binario (creo que es 1,2 y 4)
Entonces hay estos números:
Ejecutar por usuario es 100
. Ejecutar por grupo es 010
. Ejecutar por otro es 001
Escribir por usuario es 200
. Escribir por grupo es 020
. Escribir por otro es 002
.
Leído por el usuario es 400
. Leer por grupo es 040
. Leer por otro es 004
.
Luego los sumas para obtener la combinación deseada.
Entonces, para permitir que todos lo lean, pero solo Group para ejecutarlo y User para escribirlo (pero por alguna razón no ejecutar) sería:
400 + 040 + 004
y 010
y200
Eso suma 600 + 050 + 004 = 654.
Entonces podría ejecutar el comando.
chmod +654 /path/to/file.extension
para configurarlo
Y para configurar todos los permisos, puede escribir:
chmod +rwxrwxrwx /path/to/file.extension
O (esto es un poco más fácil de escribir, pero más difícil de recordar cada uno):
chmod +777 /path/to/file.extension
Finalmente, puedes hacer:
chmod -777 /path/to/file.extension
Para quitar todos los permisos de todos.
Y:
chmod +300 /path/to/file.extension
Para agregar lectura y escritura para el usuario, sin afectar ningún otro permiso (por ejemplo, permisos de ejecución).
Este sitio web tiene una pequeña casilla de verificación de cuadrícula muy útil, en la que puede marcar las opciones que desee y le da el comando:
Sin embargo, no todas las combinaciones posibles son razonables de usar; Los principales que se utilizan son los siguientes:
755 - Owner
tiene todo, Group
y Other
puede leer y ejecutar
700 - Owner
tiene todo
644 - Owner
puede leer y escribir, Group
y Other
puede leer
600 - Owner
puede leer y escribir
Y, si está utilizando grupos de usuarios no triviales:
775 - Owner
puede leer y escribir, Group
y Other
puede leer
770 - Owner
y Group
tiene todo, y Other
puede leer y ejecutar
750: Owner
tiene todo y Group
puede leer y ejecutar
664 - Owner
y Group
puede leer y escribir, y Other
solo puede leer
660 - Owner
y Group
puede leer y escribir
640 - Owner
puede leer y escribir, y Group
puede leer
777 y 666 rara vez se usan, excepto en / tmp.
¡Gracias Ilmari Karonen por señalar los de uso común!