Curso de Programaci贸n en Bash Shell

Curso de Programaci贸n en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Ejecutar nuestro script con un nombre 煤nico

5/43
Recursos

Aportes 40

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

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 鈥済鈥 para grupo o una 鈥渙鈥 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

Permisos -> numero_de_representaci贸n

鈥 -> 0
鈥搙 -> 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.

Otra forma de ejecutar un archivo .sh es ingresar 鈥渟h鈥 al principio del script.

sh example.sh

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!

Hola compa帽eros, si quieren profundizar un poco sobre la expresi贸n de la primera l铆nea (#!/bin/bash)鈥 es conocido como el shebang, y denota que el archivo est谩 pensado para ser ejecutado por un int茅rprete, es decir, un programa adicional que leer谩 l铆nea a l铆nea y tratar谩 de ejecutarla.

As铆 mismo funcionar谩 para scripts de Python, de Shell, entre otros, como dato curioso, si se omite esa l铆nea es posible que igualmente las l铆neas se ejecuten pero no con Bash, sino con Shell (una versi贸n m谩s vieja).

Aqu铆 pueden leer m谩s al respecto, Saludos!! https://bash.cyberciti.biz/guide/Shebang

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>

chmod - change file mode bits

La forma m谩s simple de dar los permisos de ejecuci贸n al usuario:

<chmod u+x file.sh>

Aqui entendi mejor la clase de permisos 馃槂

Correccion menor: en el minuto 6:57 escribiste mal el nombre del archivo es 1_utilityPostgres no 1_utitilyPostgres

type -a, para mostrar todas las opciones relacionadas a un comando. type -t, para mostrar el tipo de archivo.

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

Otra alternativa para ejecutar un comando es usar souce

source mi_script.sh

Nota: no es obligatorio guardar los script con sufijo .sh

Cuando no hay manual y no hay info acerca de un comando como en el caso de type, la ultima opci贸n (y a veces mas recomendable) es la de --help. En este caso se usa de la siguiente manera:

type --help

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 cd

Ctrl+L equivale a hacer un clear de la pantall

Excelente Clase

Ya que ** info type** y man type no muestran informaci贸n, se puede utilizar el siguiente

type --help

me gusta la presentaci贸n personal del profe y su dominio del tema,
como siempre platzi con lo mejor

el profesor tiene un gran dominio sobre el tema y explica muy bien.

  • 426 (lectura, escritura, ejecuci贸n)
  • chmod (change mode) para cambiar permisos en un archivo
  • chmod +x FILENAME para agregar ejecuci贸n a todos los usuarios y grupos
  • bash FILENAME o ./FILENAME para ejecutar un bash script
si quieres saber la ayuda de `type` ``` help type ``` el `help` muestra la ayuda de las funciones integradas. Pero hay que aclarar que solo funciona en bash ya que help a su vez es una funci贸n integrada de bash

chmod en octal
La representaci贸n octal de chmod es muy sencilla

Lectura tiene el valor de 4
Escritura tiene el valor de 2
Ejecuci贸n tiene el valor de 1

Muy buena clase.

Recuerden que est谩 una forma m谩s humanizada para cambiar los permisos <a quien>+(quitas)-(o pones)<qu茅 permiso>.
Por ejemplo si solo quieres agregar al usuario permisos de ejecuci贸n pondr铆as

chmod u+x 1_utilityProgress.sh

u = usuario, g=grupo, o=todos los demas, w=escritura, r=lectura, x=escritura

Nunca asignes todos los permisos a todod (777) es una vulnerabilidad muy grave!!!

Para visualizar informaci贸n respecto al comando 鈥渢ype鈥 se puede escribir el comando:

<type --help> 

Obligado para llegar aqui primero realizar el curso de comandos basicos Linux!

super profe!

Lo de los permisos esta demasiado bien explicado, hasta que al fin logre entenderlos por completo

Los comandos se pueden clasificar en categor铆as de acuerdo a su procedencia. Algunos vienen incorporados en la shell, mientras que otros provienen de un paquete que hayamos instalado. Tambi茅n existe la posibilidad de que un comando sea en realidad un alias de otro comando con sus opciones.
.
identificar lo que menciono es la funci贸n de type

Conceptos claros. Muy buena explicaci贸n.

Recomiendo bastante que vean el curso de linea de comandos les va a ayudar mucho a poder entender la terminal, aunque el maestro de esta clase explica bastante bien

genial

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

En la shell pueden poner

type --help

para tener mas informacion

Formas de ejecuci贸n

# Se utiliza para debugging
bash miScript.sh

# Se utiliza para producci贸n
./ miScript.sh

Tambi茅n se puede ejecutar de la siguiente forma:
. 1_utilityPostgres.sh

En caso de que alguien este usando WSL y no reciba el

Operation not permitted

Solo agregen el poderoso:

sudo

Para ejecutat el .sh solo hay q digitar el nombre y extensi贸n del archivo,especificando su ubicaci贸n. Lo que pasa con el ./ es que se usa por que en este caso el profesor est盲 ubicado en el mismo directorio donde esta el .sh, y esto se indica justamente asi: ./

Si por ejemplo estuviera ubicado por fuera del directorio shellCourses, un nivel arriba, entonces el comando se ejecutaria asi: shellCourses/1_utilityPostgres.sh

#!/bin/bash
echo 鈥渂elleza mayonesa鈥