Saltar al contenido principal

Quiz Módulo 6 - Scripting Shell

Instrucciones​

Este quiz contiene 30 preguntas de opción múltiple para validar su comprensión del Módulo 6.

Consejo: Responda cada pregunta antes de revelar la respuesta. Las respuestas están ocultas justo después de cada pregunta.


Pregunta 1​

¿Cuál es el shebang estándar para un script Bash?

Ver explicación

Respuesta correcta: #!/bin/bash

Explicación: El shebang #!/bin/bash indica que el script debe ejecutarse con Bash. Debe estar en la primera línea del script. Ejemplo: #!/bin/bash seguido de una línea en blanco y luego el código.


Pregunta 2​

¿Cómo hacer que un script sea ejecutable?

Ver explicación

Respuesta correcta: chmod +x script.sh

Explicación: chmod +x script.sh agrega el permiso de ejecución al script. Luego se puede ejecutar con ./script.sh o bash script.sh. chmod 755 script.sh hace lo mismo.


Pregunta 3​

¿Cómo declarar una variable en Bash?

Ver explicación

Respuesta correcta: var="valor"

Explicación: En Bash, se declara una variable con `var="valor"` (sin espacios alrededor del `=`). Para usar la variable: `$var` o `${var}`. Para mostrarla: `echo $var`.


Pregunta 4​

¿Qué comando permite programar una tarea recurrente en Linux?

Ver explicación

Respuesta correcta: cron

Explicación: cron es el demonio que ejecuta las tareas programadas. crontab es el comando para gestionar las tareas cron. Las tareas se definen en archivos crontab con una sintaxis especial.


Pregunta 5​

¿Qué comando permite editar las tareas cron de un usuario?

Ver explicación

Respuesta correcta: crontab -e

Explicación: crontab -e abre el editor para modificar las tareas cron del usuario actual. crontab -l lista las tareas, crontab -r elimina todas las tareas. Las tareas se almacenan en /var/spool/cron/crontabs/username.


Pregunta 6​

¿Cuál es la sintaxis correcta de una línea crontab?

Ver explicación

Respuesta correcta: minuto hora día mes día-semana comando

Explicación: Formato crontab: minuto hora día mes día-semana comando. Ejemplos: 0 * * * * (cada hora), 0 0 * * * (medianoche cada día), */5 * * * * (cada 5 minutos). Los días de la semana: 0-7 (0 y 7 = domingo).


Pregunta 7​

¿Qué sintaxis de crontab ejecuta una tarea cada hora?

Ver explicación

Respuesta correcta: 0 * * * *

Explicación: 0 * * * * significa: minuto 0 de cada hora, cada día, cada mes, cada día de la semana = cada hora en el minuto 0. 0 0 * * * = medianoche cada día. * * * * * = cada minuto.


Pregunta 8​

¿Qué sintaxis de crontab ejecuta una tarea todos los días a medianoche?

Ver explicación

Respuesta correcta: 0 0 * * *

Explicación: 0 0 * * * significa: minuto 0, hora 0 (medianoche), cada día, cada mes, cada día de la semana = todos los días a medianoche. Es muy común para respaldos diarios.


Pregunta 9​

¿Qué comando lista las tareas cron de un usuario?

Ver explicación

Respuesta correcta: crontab -l

Explicación: crontab -l lista las tareas cron del usuario actual. crontab -l -u username lista las tareas de otro usuario (requiere root). crontab -e edita, crontab -r elimina todas las tareas.


Pregunta 10​

¿Qué estructura de control permite ejecutar código condicional en Bash?

Ver explicación

Respuesta correcta: if-then-else

Explicación: La estructura if-then-else permite ejecutar código condicional. Sintaxis: if [ condición ]; then comandos; else comandos; fi. Ejemplo: if [ $var -eq 10 ]; then echo "Igual"; fi.


Pregunta 11​

¿Qué bucle permite iterar sobre una lista en Bash?

Ver explicación

Respuesta correcta: for

Explicación: El bucle for permite iterar sobre una lista. Sintaxis: for var in lista; do comandos; done o for ((i=1; i<=10; i++)); do comandos; done. Ejemplo: for file in *.txt; do echo $file; done.


Pregunta 12​

¿Qué bucle ejecuta código mientras una condición sea verdadera?

Ver explicación

Respuesta correcta: while

Explicación: El bucle while ejecuta código mientras una condición sea verdadera. Sintaxis: while [ condición ]; do comandos; done. until hace lo contrario (mientras la condición sea falsa). ¡Cuidado con los bucles infinitos!


Pregunta 13​

¿Qué variable contiene el código de retorno del último comando?

Ver explicación

Respuesta correcta: $?

Explicación: $? contiene el código de retorno del último comando. 0 = éxito, distinto de cero = error. Ejemplo: command; if [ $? -eq 0 ]; then echo "Éxito"; fi. También se puede usar directamente: if command; then ....


Pregunta 14​

¿Qué variable contiene el número de argumentos pasados al script?

Ver explicación

Respuesta correcta: $#

Explicación: $# contiene el número de argumentos pasados al script. $1, $2, etc. contienen los argumentos individuales. $0 contiene el nombre del script. $@ contiene todos los argumentos.


Pregunta 15​

¿Qué variable contiene el primer argumento pasado al script?

Ver explicación

Respuesta correcta: $1

Explicación: $1 contiene el primer argumento, $2 el segundo, etc. $0 contiene el nombre del script. $@ contiene todos los argumentos. Ejemplo: ./script.sh arg1 arg2 → $1="arg1", $2="arg2".


Pregunta 16​

¿Qué comando permite crear una función en Bash?

Ver explicación

Respuesta correcta: function_name() seguido de comandos entre llaves

Explicación: Sintaxis para crear una función: `function_name() { comandos; }` (con llaves alrededor de los comandos). También se puede usar `function function_name { comandos; }`. Para llamar: `function_name` o `function_name arg1 arg2`. Nota: Las llaves son necesarias para delimitar el cuerpo de la función.


Pregunta 17​

¿Qué archivo contiene las tareas cron del sistema (para todos los usuarios)?

Ver explicación

Respuesta correcta: /etc/crontab

Explicación: /etc/crontab contiene las tareas cron del sistema. Formato similar pero con un campo de usuario: minuto hora día mes día-semana usuario comando. Los directorios /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, etc. también contienen tareas del sistema.


Pregunta 18​

¿Qué directorio contiene los scripts ejecutados diariamente por cron?

Ver explicación

Respuesta correcta: /etc/cron.daily

Explicación: /etc/cron.daily/ contiene los scripts ejecutados diariamente. Similar: /etc/cron.hourly/, /etc/cron.weekly/, /etc/cron.monthly/. Estos scripts son ejecutados por anacron o run-parts.


Pregunta 19​

¿Qué comando permite probar si un archivo existe en Bash?

Ver explicación

Respuesta correcta: [ -f archivo ] o test -f archivo

Explicación: [ -f archivo ] prueba si un archivo existe y es un archivo regular. Otras pruebas: [ -d archivo ] (directorio), [ -e archivo ] (existe), [ -r archivo ] (legible), [ -w archivo ] (editable), [ -x archivo ] (ejecutable).


Pregunta 20​

¿Qué comando permite leer una entrada de usuario en un script Bash?

Ver explicación

Respuesta correcta: read

Explicación: read variable lee una línea desde la entrada estándar y la almacena en la variable. Ejemplos: read name, read -p "Ingrese su nombre: " name (con prompt), read -s password (oculta la entrada).


Pregunta 21​

¿Qué estructura permite hacer una selección múltiple en Bash?

Ver explicación

Respuesta correcta: case-esac

Explicación: case permite hacer una selección múltiple. Sintaxis: case $var in patrón1) comandos;; patrón2) comandos;; *) comandos;; esac. Más legible que varios if-elif para muchas opciones.


Pregunta 22​

¿Qué sintaxis de crontab ejecuta una tarea cada 5 minutos?

Ver explicación

Respuesta correcta: */5 * * * *

Explicación: */5 * * * * significa cada 5 minutos. El */5 significa "todos los valores divisibles por 5". 5 * * * * = solo en el minuto 5 de cada hora. 5,10,15 * * * * = en los minutos 5, 10 y 15.


Pregunta 23​

¿Qué variable contiene el PID del proceso actual?

Ver explicación

Respuesta correcta: $$

Explicación: $$ contiene el PID del proceso shell actual. Útil para crear archivos temporales únicos: tempfile="/tmp/script.$$". $PPID contiene el PID del proceso padre.


Pregunta 24​

¿Qué comando permite redirigir la salida de error a un archivo?

Ver explicación

Respuesta correcta: command 2> error.log

Explicación: 2> redirige la salida de error (stderr, descriptor de archivo 2). > redirige la salida estándar (stdout, descriptor de archivo 1). 2>&1 redirige stderr a stdout. &> redirige ambos a un archivo.


Pregunta 25​

¿Qué comando permite redirigir tanto la salida estándar como la de error a un archivo?

Ver explicación

Respuesta correcta: command &> file o command > file 2>&1

Explicación: command &> file redirige stdout y stderr al archivo. Equivalente a command > file 2>&1. El orden es importante: 2>&1 debe ir después de > file para redirigir stderr al mismo lugar que stdout.


Pregunta 26​

¿Qué comando permite crear un arreglo (array) en Bash?

Ver explicación

Respuesta correcta: array=(1 2 3)

Explicación: Sintaxis para crear un arreglo: `array=(1 2 3)` o `array=("uno" "dos" "tres")`. Para acceder: `${array[0]}`, `${array[1]}`, etc. `${array[@]}` contiene todos los elementos. `${#array[@]}` = número de elementos.


Pregunta 27​

¿Qué sintaxis de crontab ejecuta una tarea todos los lunes a las 9:00?

Ver explicación

Respuesta correcta: 0 9 * * 1

Explicación: 0 9 * * 1 = minuto 0, hora 9, cada día, cada mes, lunes (1). Los días de la semana: 0 o 7 = domingo, 1 = lunes, 2 = martes, ..., 6 = sábado.


Pregunta 28​

¿Qué comando permite salir de una función con un valor de retorno?

Ver explicación

Respuesta correcta: return

Explicación: return sale de una función con un código de retorno. return 0 = éxito, return 1 = error. exit sale de todo el script. break sale de un bucle. return sin argumento retorna el código del último comando.


Pregunta 29​

¿Qué comando permite salir de un script con un código de retorno?

Ver explicación

Respuesta correcta: exit

Explicación: exit sale del script con un código de retorno. exit 0 = éxito, exit 1 (u otro distinto de cero) = error. Si no se especifica código, usa el código del último comando. return solo funciona en funciones.


Pregunta 30​

¿Qué comando permite ver los logs de las tareas cron en Ubuntu 24.04?

Ver explicación

Respuesta correcta: journalctl -u cron o grep CRON /var/log/syslog

Explicación: En Ubuntu 24.04, los logs de cron están en los logs de systemd. journalctl -u cron muestra los logs del servicio cron. También se puede buscar en /var/log/syslog: grep CRON /var/log/syslog. Los logs muestran las ejecuciones y errores de las tareas cron.


Resultado del Quiz​

¡Felicidades por completar el quiz del Módulo 6!

Puntaje:

  • 25-30 respuestas correctas: ¡Excelente! Usted domina el scripting Bash y cron.
  • 20-24 respuestas correctas: ¡Muy bien! Repase los conceptos donde tuvo dificultades.
  • 15-19 respuestas correctas: ¡Bien! Repase los capítulos sobre scripting y cron.
  • Menos de 15: Se recomienda repasar el módulo antes de continuar.

Próximos Pasos​

Ahora que ha validado sus conocimientos:

Módulo 7: Red y Configuración
Laboratorios prácticos: Ponga en práctica scripting y cron con los labs del Módulo 6


Quiz creado el: Diciembre 2024 - Probado en Ubuntu 24.04