📝 SIMULADOR DE EXAMEN — 15 preguntas · sin pistas
⏱ 45:00
Cambiar la duración genera un examen nuevo.
1 Encontrar el PID correcto 📡 N2 Opción múltiple
Dado que hay múltiples procesos apache2 en ejecución (proceso padre e hijos worker), ¿qué comando obtiene el PID del proceso padre principal de apache2?
2 Corregir bucle until 🧩 N2 Corregir
Este bucle until tiene 2 errores. Corrígelos:
#!/bin/bash N=0 until [ $N -ge 3 ; do echo "N vale $N" N=$((N+1))
3 Configuración de red con ip 🌐 N2 Completar
Configura temporalmente la interfaz eth0:
1. Asignar la IP 10.0.0.5/24
2. Levantar la interfaz
3. Añadir la ruta por defecto por la puerta de enlace 10.0.0.1
# Asignar IP a eth0 ip addr add ___ dev eth0 # Activar interfaz ip link set eth0 ___ # Añadir ruta por defecto ip route add default via ___
4 Corregir if/elif con errores lógicos 🔄 N2 Corregir
El script tiene 4 errores (sintaxis y lógica). Corrígelos todos:
#!/bin/bash EDAD=$1 if [ $EDAD -lt 0 ] then echo "Edad no válida" elif [ $EDAD -lt 18 ] echo "Menor de edad" elif [ $EDAD -gt 17 ] && [ $EDAD -lt 65]; then echo "Adulto" else echo "Jubilado" fi
5 Corregir if numérico: = vs -eq y fi 🧩 N2 Corregir
Este script tiene 3 errores (comparación numérica, cierre y comillas). Corrígelos:
#!/bin/bash INTENTOS=$1 if [ $INTENTOS = 3 ]; then echo "Cuenta bloqueada" elif [ "$INTENTOS" -gt 3 ]; then echo "Demasiados intentos" else echo "Intentos restantes"
6 Combinado: función + bucle + condicional 🧩 N3 Escribir código
Escribe un script que:
1. Defina una función clasificar que reciba un número ($1) y, con if, imprima si es par o impar (usa $(( $1 % 2 )))
2. Recorra con for los números del 1 al 5
3. Llame a clasificar con cada número
7 journalctl — logs del sistema con systemd 📋 N2 Completar
Completa los comandos con journalctl:
1. Ver los logs del servicio apache2
2. Ver logs desde el último arranque del sistema
3. Seguir los logs en tiempo real con prioridad error o superior
# Logs de un servicio concreto journalctl ___ apache2 # Desde el último arranque journalctl ___ # En tiempo real, solo errores journalctl ___ -p err
8 case a if/elif — gestor de paquetes 🧩 N3 Transformar
Transforma este case a if/elif/else. No uses case ni esac:
#!/bin/bash ACCION=$1 PAQUETE=$2 case "$ACCION" in install) apt install "$PAQUETE" ;; remove) apt remove "$PAQUETE" ;; update) apt update ;; *) echo "Accion no soportada" ;; esac
9 Ficheros de log importantes 📋 N2 Opción múltiple
¿En qué fichero de log encontrarías registros de intentos de login fallidos y actividad de SSH?
10 if/elif a case — control de servicio 🧩 N2 Transformar
Transforma este if/elif/else a case. No uses if ni elif:
#!/bin/bash ACCION=$1 if [ "$ACCION" = "start" ]; then systemctl start nginx elif [ "$ACCION" = "stop" ]; then systemctl stop nginx elif [ "$ACCION" = "restart" ]; then systemctl restart nginx elif [ "$ACCION" = "status" ]; then systemctl status nginx else echo "Uso: $0 {start|stop|restart|status}" fi
11 Corregir if: corchetes y then en elif 🧩 N2 Corregir
Este script tiene 3 errores. Encuéntralos y corrígelos:
#!/bin/bash EDAD=$1 if [ "$EDAD" -lt 18 ]; then echo "Menor" elif [ "$EDAD" -ge 18 ] && [ "$EDAD" -lt 65] echo "Adulto" else echo "Jubilado" fi
12 if/elif a case — días de la semana 🧩 N2 Transformar
Convierte este if/elif/else a case equivalente:
#!/bin/bash DIA=$1 if [ "$DIA" = "sabado" ]; then echo "Fin de semana" elif [ "$DIA" = "domingo" ]; then echo "Fin de semana" else echo "Dia laborable" fi
13 Jobs, fg y bg ⚙️ N2 Opción múltiple
Ejecutas sleep 100 y presionas Ctrl+Z. La terminal muestra:
[1]+  Stopped                 sleep 100
¿Qué comando usarías para reanudar ese proceso en segundo plano?
14 Modificar el PATH temporalmente 📂 N2 Completar
Completa el comando para añadir /opt/miapp/bin al principio del PATH actual (tiene prioridad sobre los existentes), exportarlo y verificar el resultado:
#!/bin/bash # Añadir /opt/miapp/bin al principio del PATH export PATH=___:$PATH # Verificar el PATH resultante echo $PATH
15 Bucle for con rango 🖥️ N2 Completar
Completa el script para que muestre los números del 1 al 10, uno por línea, usando un bucle for con sintaxis de rango.
#!/bin/bash for i in ___ do echo $i done
✕ Salir