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?
command-line
executable
Ziyaddin Sadigov
fuente
fuente
Respuestas:
Puede marcar el archivo como ejecutable:
Luego puede ejecutarlo así:
Si desea utilizar un comando diferente para iniciarlo, puede agregar un alias:
Agregue esto al final del archivo:
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.fuente
./filename.sh
y no solofilename.sh
?filename
y no./filename
./filename.sh
especifica un archivo en el directorio actual y el usofilename.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 probarbash 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 es010
. Ejecutar por otro es 001Escribir por usuario es
200
. Escribir por grupo es020
. Escribir por otro es002
.Leído por el usuario es
400
. Leer por grupo es040
. Leer por otro es004
.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
y010
y200
Eso suma 600 + 050 + 004 = 654.
Entonces podría ejecutar el comando.
chmod +654 /path/to/file.extension
para configurarloY 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
yOther
puede leer y ejecutar700 -
Owner
tiene todo644 -
Owner
puede leer y escribir,Group
yOther
puede leer600 -
Owner
puede leer y escribirY, si está utilizando grupos de usuarios no triviales:
775 -
Owner
puede leer y escribir,Group
yOther
puede leer770 -
Owner
yGroup
tiene todo, yOther
puede leer y ejecutar750:
Owner
tiene todo yGroup
puede leer y ejecutar664 -
Owner
yGroup
puede leer y escribir, yOther
solo puede leer660 -
Owner
yGroup
puede leer y escribir640 -
Owner
puede leer y escribir, yGroup
puede leer777 y 666 rara vez se usan, excepto en / tmp.
¡Gracias Ilmari Karonen por señalar los de uso común!
fuente
Correr:
Para hacerlo no ejecutable, ejecute:
Por ejemplo, creé el
.sh
archivo:Después de escribir un código en el editor vi, saldré del editor vi:
fuente