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