Ejecutar nuestro script con un nombre único
Clase 5 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Clase 5 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Ingeborg Muñoz Carnot
Eleiny Bello
Elmer Padilla Espinoza
Esteban Blanco Ortuno
Joaquin Logiudice
Esteban Blanco Ortuno
Oscar Ricardo Aranda
Josue Israel Rojas Vilca
Diego Andrés Beltrán Garavito
Elmer Padilla Espinoza
Mònica Mateu
Carlos Morán
franklyn Valdez
Manuel Durán
Cristobal Nyram
Emma Juliana Gachancipa Castelblanco
Manuel Durán
Juan Camilo Alvarez Jurado
YULISSA RESTREPO ARANGO
Juan David Cajamarca Acuña
KEPLER GARCIA
Stanley Melgar
Francisco Lopez Campos
Claudio Piña
Miguel Ramírez
Sergioluis Mendiola
Alfonso Adame Rueda
Marco Antonio Toscano Freire
Juan Pablo Jiménez Esclusa
Julio Cardenas
DAVID EDUARDO BAEZ SANCHEZ
Edwin García
Erick Saravia
Rafael Flores Valdez
Como menciona el profesor, el comando chmod +x es la forma rápida de dejar un archivo con permisos de ejecución. Si tienes problemas de memoria quizás sea el opción más fácil, en lugar de usar el típico chmod 7XX o similar.
Agregar permisos de lectura: chmod +r
Agregar permisos de escritura: chmod +w archivo
Quitar permisos de lectura: chmod -r archivo
Quitar permisos de escritura: chmod -w archivo
Quitar permisos de ejecución: chmod -x archivo
En caso de querer cambiar los permisos del grupo y otros ( el comando es similar al ejemplo anterior, sin embargo esta vez se agregar una “g” para grupo o una “o” para otros)
chmod g+w archivo
chmod g-wx archivo
chmod o+w archivo
chmod o-wx archivo
por último para cambiar para todos: chmod ugo+rwx (dará permisos de lectura, escritura y ejecucón a todos) , esto es equivalente a chmod 777
muchas gracias!! =) buen aporte
Excelentes datos Dark, gracias.
Permisos -> numero_de_representación
— -> 0 –x -> 1 -w- -> 2 -wx -> 3 r-- -> 4 r-x -> 5 rw- -> 6 rwx -> 7
r: permiso de lectura w: permiso de escritura x: permiso de ejecucion
propietario grupo todos owner group anyone rwx rwx rwx
Los tipos de permisos más comunes, o su combinación, son los siguiente:
666 ( RW / RW / RW) Esta opción permite que todos los usuarios puedan leer y escribir en un archivo.
777 ( RWX / RWX /RWX) Esta opción permite que todos los usuarios puedan leer, escribir y ejecutar en el archivo o carpeta
755 (RWX / RW / RW) Con este permiso el propietario del archivo puede leer, escribir y ejecutar en el archivo mientras que los demás leer y escribir en el archivo mas no ejecutar.
644 (RW / R / R)
Con este permiso el propietario puede leer y escribir en el archivo mientras los demás solo pueden leer.
700 (RWX /—) Con este permiso el propietario tiene el control total del archivo mientras que los demás usuarios no tendrán acceso de ningún tipo al archivo.
Una corrección: 755 sería (RWX / RX / RX) y no (RWX / RW / RW) El equivalente a (RWX/RW/RW) es 766
Gracias por la corrección
Otra forma de ejecutar un archivo .sh es ingresar "sh" al principio del script.
sh example.sh
Gracias por el aporte un comando sencillo para ejecutar el script
Buen aporte Diego, gracias.
De momento contentísima por haber encontrado este curso. Estoy cursando online el grado superior de desarrollo de apps y nunca entendí la forma de hacer un Script. De momento, aquí, en pocos minutos ya aprendí mas que en un mes. Gracias Marco!
Permisos sobre los archivos:
4 - permisos de lectura 2 - permisos de escritura 1 - permisos de ejecución
7 = 4 + 2 + 1, por lo tanto se tendrían permisos de lectura, escritura y ejecución.
6 = 4 + 2, permisos de lectura y ejecición
4 = 4 , permisos de lectura
Ejemplo de permisos de un archivo. -rw-rw-r-- significa que en un archivo el owner tiene permisos de lectura y escritura, el grupo tiene permisos de lectura y escritura, y los demás usuarios tienen permisos de lectura.
Si querémos darles permisos de ejecución al owner de ese archivo
chmod 764 <filename>
el profesor tiene un gran dominio sobre el tema y explica muy bien.
hola! eres un bot?
x2
chmod - change file mode bits
La forma más simple de dar los permisos de ejecución al usuario:
<chmod u+x file.sh>
totalmente:
[ugoa] + [rwx]
donde primero va el grupo u = user, g = group, o = others, a = all
y despues los permisos: r = Read, w = write, x = execute.
fuente: "man chmod" (leer mas, ver menos videos)
Varias formas de ejecutar un script:
- ./script.sh - . script.sh - bash script.sh - source script.sh
Aunque el comando type no posee entradas de man o info, se puede ver su ayuda empleando type --help
Buenísimo! 🙌
Tenemos un par de opciones con las cuales podemos ejecutar los scripts bash que creemos:
$ bash script.sh, algo más común para la parte del debug.$ ./script.sh, enfocado más a la ejecución de scripts en producción.Con el comando type, podemos buscar la ruta absoluta y los aliases de un comando. De esta manera, podemos asegurarnos de que el nombre de nuestro script no está siendo utilizado por ningún otro comando.
En ciertas ocasiones, un comando no tiene una definición sino varias; para poder estar al tanto de esto, podemos ejecutar el comando con la bandera -a y así nos mostrará todas las definiciones del comando.
Si por otro lado, deseamos también ver el tipo de archivo (pues, podemos tener quizás dos archivos con nombres iguales, pero con diferente connotación), podemos utilizar la bandera -t.
Ejemplos:
$ type ls$ type cd$ type -a ls$ type -t cdque son los "aliases" de un comando?
La numeración al momento de cambiar los permisos vienen de la notación octal :
Aqui entendi mejor la clase de permisos :)
en la clase el profe escribe
chmod +x archivo
cuidado con eso, le da permisos de ejecución al dueño, al grupo y a otros usuarios.
debería ser chmod u+x archivo.txt
el u hace referencia a usuario, puede ser g de group y o de others
otros ejemplos
chmod ug+r archivo.txt chmod go-x archivo.txt
Yo he estado utilzando:
chmod 755 file.sh
¿Consideras adecuado utilizar con numeración el tema de los permisos?
Quizas esto le ayude a quienes les gusta el sistema octal:
| R | W | X | Significado | Resultado |
|---|---|---|---|---|
| 0 | 0 | 0 | Ningún permiso. | 0 |
| 0 | 0 | 1 | Permiso de ejecución. | 1 |
| 0 | 1 | 0 | Permiso de escritura. | 2 |
| 0 | 1 | 1 | Permiso de escritura y ejecución. | 3 |
| 1 | 0 | 0 | Permiso de lectura. | 4 |
| 1 | 0 | 1 | Permiso de lectura y ejecución. | 5 |
| 1 | 1 | 0 | Permiso de lectura y escritura. | 6 |
| 1 | 1 | 1 | Permiso de lectura, escritura y ejecución. | 7 |
Con el comando chmod se pueden cambiar los permisos de los archivos de dos formas, una es usando los símbolos (rwx) y otra es con el sistema octal.
¿Cómo cambiar los permisos de un archivo (chmod)?
Es bastante sencillo cambiar los permisos de forma simbólica. Para esto, hay que escribir después del comando chmod el símbolo del usuario, luego el operador y por último el permiso que quieres agregar o quitar.
Uso de la forma simbólica
chmod [simboloDelUsuario][operador][permiso][archivoParaCambiarSusPermisos]
| Owner (u) | Group (g) | World (o) |
|---|
| Operador | Función |
|---|---|
| + | Añade un permiso. |
| - | Quita un permiso. |
| = | Asigna un permiso. |
| Supongamos que queremos añadirle permiso de escritura al grupo, entonces tenemos que escribir lo siguiente: |
chmod g+w ejemplo.txt
Puedes cambiar varios permisos de varios usuarios al mismo tiempo, por ejemplo, si quisieras agregar el permiso de escritura y ejecución al grupo y a otros, sería así:
chmod go+wx [archivo]
Y si quieres permisos diferentes para cada usuario, solo sepáralos por comas:
chmod u+r,g=w [archivo]
En ese comando se le añadió el permiso de lectura al dueño y de escritura al grupo. ¡No agregues espacio en las comas o provocarás un error!
Uso de forma en octales
También puedes cambiar los permisos usando su forma octal, por ejemplo el conjunto de permisos rwxr-xr-x en su forma octal es 755.
chmod 755
me gusta la presentación personal del profe y su dominio del tema,
como siempre platzi con lo mejor
Gracias Alfonso
Ya que ** info type** y man type no muestran información, se puede utilizar el siguiente
type --help
Correccion menor: en el minuto 6:57 escribiste mal el nombre del archivo es 1_utilityPostgres no 1_utitilyPostgres
Entendido y funcionado
ls -l chmod u+x 1_utilityPostgres. sh ./1_utilityPostgres.sh bash 1_utilityPostgres.sh type -a ls type 1_utilityPostgres.sh type -a cd
Para agregarle ejecución solo al owner usando símbolos en lugar de números
sudo chmod u+x 1_utilityPostgres.sh
Dejo este script que hice para evitar estar dando permisos a cada script que hacia en el curso, asi solo le daba permisos al primero, y al ejecutarlo le paso el nuevo script
# !/bin/bash chmod +x $1 ./$1
Ejemplo de uso ./exec.sh myScript
#!/bin/bash #Script que pide un parametro para cambiar el permiso del archivo que se le pasa y hacerlo ejecutable chmod +x $1 echo "El archivo $1 ahora tiene permisos de ejecucion" sleep 2 ls -lhtr $1 ./$1
Saludos ***