# Syllabus — Dominio de la Terminal de Comandos

> **Versión:** 1.0  
> **Fecha:** 2026-06-01  
> **Basado en:** `course.brief.md`, `course.plan.md`, `.courseconductor/profile.md`  
> **Duración total estimada:** 32–40 horas (8 unidades, ~4–5 horas por unidad)

---

## Estructura General

| Fase | Unidades | Enfoque | Horas estimadas |
|------|----------|---------|-----------------|
| **Fase 1 — Fundación** | 1, 2, 3, 4 | El estudiante *hace* cosas en la terminal sin necesitar entender el funcionamiento interno | 16–20 h |
| **Fase 2 — Comprensión** | 5, 6 | El estudiante *entiende* cómo funciona lo que ya sabe hacer | 10–12 h |
| **Fase 3 — Proyección** | 7, 8 | El estudiante *extiende* y *consolida* su dominio | 6–8 h |

**Ritmo sugerido:**
- **Intensivo (8 semanas):** 1 unidad por semana (~4–5 h/semana).
- **Extendido (16 semanas):** 1 sesión por semana (~2–2.5 h/semana), cada unidad en 2 sesiones.

---

## Unidad 1 — Introducción y Motivación Profesional

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Explicar** por qué la terminal es una habilidad profesional valiosa en tecnología, datos, ingeniería e investigación.
2. **Distinguir** entre terminal, shell, consola y sistema operativo.
3. **Ejecutar** su primer comando en la terminal y comprender la estructura básica `comando [opciones] [argumentos]`.
4. **Instalar y verificar** WSL2 (Windows) o confirmar la terminal nativa (Linux/macOS).
5. **Crear** el directorio de trabajo del curso `~/terminal-course/`.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **1.1 — ¿Por qué la terminal?** | 60 min | El costo de evitar la terminal. Escenarios reales: automatización, acceso remoto, debugging, pipelines de datos. Mitos y miedos comunes. La terminal como superpoder profesional. |
| **1.2 — Conceptos fundamentales** | 45 min | ¿Qué es una terminal? ¿Qué es una shell? Diferencia entre terminal, shell, consola y sistema operativo. La familia Unix: Linux, macOS y WSL. |
| **1.3 — Tu primer comando** | 45 min | Estructura de un comando. El prompt `$`. `echo`, `date`, `whoami`, `uname`. El manual: `man` y `--help`. |
| **1.4 — Instalación y verificación** | 90 min | **Ruta A — Windows:** Requisitos de WSL2, instalación de Ubuntu desde Microsoft Store, configuración inicial. **Ruta B — macOS:** Terminal nativa, verificación de Bash/ZSH. **Ruta C — Linux:** Terminal ya lista. Primera práctica: crear `~/terminal-course/`. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Comprensión conceptual | Cuestionario breve: diferencias entre terminal, shell, consola, SO | 20 % |
| Ejecución de comandos | Captura de `echo`, `date`, `whoami`, `uname` funcionando | 20 % |
| Instalación funcional | WSL funcionando (Windows) o terminal nativa verificada (Linux/macOS) | 30 % |
| Práctica final | Directorio `~/terminal-course/` creado y verificado con `ls -la` | 30 % |

### Práctica acumulativa — "Prepara tu estación de trabajo"

Instalar/configurar la terminal, ejecutar comandos de verificación, crear `~/terminal-course/` como espacio de trabajo del curso.

---

## Unidad 2 — Comandos Básicos y Navegación

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Navegar** el sistema de archivos usando `pwd`, `cd` y rutas absolutas/relativas.
2. **Listar** contenido de directorios con `ls` y sus opciones más útiles (`-l`, `-a`, `-h`, `-t`).
3. **Crear, copiar, mover, renombrar y eliminar** archivos y directorios con `mkdir`, `cp`, `mv`, `rm`.
4. **Distinguir** entre rutas absolutas (`/home/usuario/...`) y relativas (`../docs/...`).
5. **Organizar** una estructura de proyecto profesional desde la terminal.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **2.1 — El sistema de archivos** | 60 min | `pwd`: ¿dónde estoy?. `ls`: listar archivos (`-l`, `-a`, `-h`, `-t`). `cd`: moverse entre directorios. Rutas absolutas vs relativas. Atajos: `.`, `..`, `~`, `-`. |
| **2.2 — Manipular archivos** | 60 min | `mkdir -p` para crear jerarquías. `touch` para crear archivos vacíos. `cp` para copiar (`-r`, `-i`). `mv` para mover y renombrar. `rm` para eliminar (`-i`, `-r`, `-f`). Precaución con `rm -rf`. |
| **2.3 — Práctica guiada** | 60 min | Caso de uso: "Organiza los archivos de tu proyecto". Crear estructura `datos/`, `scripts/`, `docs/`, `backups/`, `logs/`. Copiar archivos de ejemplo. Mover archivos entre directorios. Renombrar archivos. Proteger archivos importantes con `-i`. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Navegación fluida | Ejercicio de `cd` con rutas absolutas y relativas verificado | 25 % |
| Manipulación básica | Crear, copiar, mover y eliminar archivos en ejercicios guiados | 25 % |
| Comprensión de rutas | Identificar ruta absoluta vs relativa en ejercicios | 20 % |
| Práctica final | Estructura de proyecto `~/terminal-course/` con subdirectorios y archivos | 30 % |

### Práctica acumulativa — "Organiza tu proyecto"

Dentro de `~/terminal-course/`, crear la estructura completa del curso. Copiar archivos de ejemplo. Mover y renombrar. Verificar con `ls -R`.

---

## Unidad 3 — Manipulación de Archivos de Texto

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Visualizar** archivos de texto con `cat`, `less`, `head` y `tail`.
2. **Explorar y procesar** contenido con `wc`, `sort`, `uniq` y `diff`.
3. **Combinar** archivos usando `cat` y el operador `>`.
4. **Editar** archivos de texto directamente en la terminal usando Nano.
5. **Conocer** los modos básicos de Vim (insertar, guardar, salir).

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **3.1 — Ver y explorar** | 60 min | `cat`: mostrar archivos completos. `less`: navegación interactiva (flechas, `/buscar`, `q`). `head` y `tail`: primeras/últimas líneas (`-n`, `-f` para logs en vivo). |
| **3.2 — Procesar y analizar texto** | 60 min | `wc`: contar líneas, palabras, caracteres. `sort`: ordenar líneas (`-n`, `-h`, `-r`). `uniq`: líneas únicas (`-c`, `-d`). `diff`: comparar archivos. |
| **3.3 — Editores en terminal** | 60 min | **Nano:** abrir, editar, guardar (`Ctrl+O`), salir (`Ctrl+X`). **Vim:** modos (normal, inserción, visual), `:wq`, `:q!`, `i`, `Esc`. Mini-guía de supervivencia Vim. |
| **3.4 — Notebook ejecutable** | 30 min | Laboratorio interactivo: crear `datos.csv` y `notas.txt` con Nano, explorarlos con `cat`, `head`, `tail`, `wc`, `sort`, `uniq`, `diff`. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Visualización | Ejecutar `cat`, `less`, `head`, `tail` sobre archivos existentes | 20 % |
| Procesamiento | Usar `wc`, `sort`, `uniq`, `diff` con salidas verificables | 25 % |
| Edición básica | Crear y guardar un archivo con Nano | 20 % |
| Práctica final | Crear `README.md`, `notas.txt` y `datos.csv` en `~/terminal-course/docs/`; analizarlos con los comandos de la unidad | 35 % |

### Práctica acumulativa — "Documenta y analiza"

Crear archivos de documentación y datos con Nano. Explorarlos con `cat`, `head`, `tail`. Analizar contenido con `wc`, `sort`, `uniq`, `diff`. Todo dentro de la estructura del proyecto.

---

## Unidad 4 — Búsqueda en la Terminal

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Usar wildcards** (`*`, `?`, `[]`) para seleccionar múltiples archivos.
2. **Buscar patrones** dentro de archivos con `grep` (búsqueda básica, case-insensitive, recursiva).
3. **Encontrar archivos** por nombre, tipo, tamaño y fecha con `find`.
4. **Combinar** `grep` y `find` con otros comandos mediante pipes.
5. **Aplicar** búsquedas en escenarios reales: buscar logs, filtrar datos, localizar configuraciones.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **4.1 — Wildcards y globbing** | 45 min | `*` (cualquier cadena), `?` (un carácter), `[]` (conjuntos). Ejemplos: `*.txt`, `datos_202?.csv`, `[abc]*`. Peligros: `rm *` sin verificar. |
| **4.2 — grep: el buscador de texto** | 75 min | `grep` básico: `grep "texto" archivo`. Opciones esenciales: `-i` (insensible), `-r` (recursivo), `-n` (números de línea), `-c` (contar), `-v` (invertir), `-l` (solo nombres). `grep` con pipes: `comando | grep "algo"`. Diferencias grep GNU vs BSD (macOS): usar `-E` para ER extendidas. |
| **4.3 — find: el localizador de archivos** | 60 min | `find` básico: `find . -name "*.md"`. Criterios: `-type f/d`, `-size`, `-mtime`, `-empty`. Acciones: `-delete`, `-exec`. Combinación con `grep`: `find . -name "*.log" -exec grep "error" {} \;`. |
| **4.4 — Notebook ejecutable** | 30 min | Laboratorio interactivo: buscar patrones en `datos.csv`, localizar archivos por extensión y fecha, combinar búsquedas en pipelines. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Wildcards | Seleccionar archivos con `*`, `?`, `[]` en ejercicios | 15 % |
| grep | Buscar patrones con opciones básicas en archivos de texto | 25 % |
| find | Encontrar archivos por nombre, tipo y tamaño | 25 % |
| Combinación | Pipeline con `grep`, `find` y otros comandos | 15 % |
| Práctica final | Encontrar patrones específicos en archivos del proyecto, localizar configuraciones, contar ocurrencias | 20 % |

### Práctica acumulativa — "Encuentra lo que necesitas"

Buscar patrones en `datos.csv` y `notas.txt` con `grep`. Encontrar archivos específicos con `find`. Combinar búsquedas con pipes para filtrar, contar y ordenar resultados.

---

## Unidad 5 — Funcionamiento Interno de la Shell

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Clasificar** comandos como internos (built-in), externos, alias o funciones.
2. **Identificar** el tipo de un comando con `type`, `which` y `command`.
3. **Redirigir** entrada estándar, salida estándar y error estándar usando `>`, `>>`, `<`, `2>`, `&>`.
4. **Encadenar** comandos con pipes (`|`) y operadores (`&&`, `||`, `;`).
5. **Crear y eliminar** alias temporales y permanentes en `~/.bashrc` o `~/.zshrc`.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **5.1 — Tipos de comandos** | 45 min | Comandos internos (built-in): `cd`, `echo`, `pwd`, `type`. Comandos externos: `/bin/ls`, `/usr/bin/grep`. Alias: atajos del usuario. Funciones: comandos compuestos. El orden de precedencia. `type`, `which`, `command -v`. |
| **5.2 — Redirecciones** | 60 min | STDIN (0), STDOUT (1), STDERR (2). Redirigir salida: `>`, `>>`. Redirigir entrada: `<`. Redirigir error: `2>`, `2>>`. Redirigir todo: `&>`, `2>&1`. Descartar salida: `/dev/null`. Caso de uso: guardar resultados y errores por separado. |
| **5.3 — Pipes y operadores** | 60 min | Pipe `|`: conectar salida de un comando con entrada de otro. Operadores: `&&` (ejecutar si éxito), `||` (ejecutar si fallo), `;` (ejecutar siempre). Caso de uso: "Filtra, ordena y guarda en un solo paso". |
| **5.4 — Alias** | 45 min | Alias temporales: `alias ll='ls -la'`. Alias permanentes: agregar a `~/.bashrc` o `~/.zshrc`. Eliminar alias: `unalias`. Ver alias existentes: `alias`. Buenas prácticas: no sobrescribir comandos estándar. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Identificar tipos | Usar `type` y `which` para 5 comandos dados | 15 % |
| Redirecciones | Redirigir salida, error y ambos a archivos separados | 25 % |
| Pipes y operadores | Encadenar 3+ comandos con pipes y operadores `&&`, `\|\|` | 25 % |
| Alias | Crear alias temporal y permanente; explicar dónde guardarlos | 15 % |
| Práctica final | Pipeline completo: filtrar datos con grep → ordenar con sort → guardar con `>`; redirigir errores a `logs/errores.log`; alias permanente para el flujo | 20 % |

### Práctica acumulativa — "Automatiza tu flujo"

Crear alias temporales y permanentes. Usar pipes y redirecciones para procesar datos del proyecto: filtrado con `grep` → ordenamiento con `sort` → guardado con `>`. Redirigir errores a `~/terminal-course/logs/`. Crear alias `procesar-datos` para todo el flujo.

---

## Unidad 6 — Interacción con el Sistema Operativo

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Gestionar permisos** de archivos y directorios con `chmod` (notación octal y simbólica).
2. **Consultar y modificar** variables de entorno (`PATH`, `HOME`, `USER`) con `echo`, `export`, `env`.
3. **Configurar** su entorno mediante archivos `~/.bashrc`, `~/.bash_profile` y `~/.zshrc`.
4. **Instalar, actualizar y eliminar** paquetes con `apt` (Linux/WSL) y conocer `brew` (macOS).
5. **Ejecutar y gestionar** procesos en foreground y background con `&`, `jobs`, `fg`, `bg`.
6. **Monitorizar y finalizar** procesos con `ps`, `top`, `kill`.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **6.1 — Permisos en Linux** | 60 min | `ls -l`: lectura de permisos (`rwxr-xr--`). `chmod` notación octal: `755`, `644`, `700`. `chmod` notación simbólica: `u+x`, `g-w`, `o+r`. `chown` (mención). Caso de uso: proteger scripts y datos personales. |
| **6.2 — Variables de entorno** | 45 min | Variables comunes: `PATH`, `HOME`, `USER`, `SHELL`, `PWD`. `echo $VARIABLE`. `export` para crear/modificar. Persistencia en `~/.bashrc`. Modificar `PATH` para incluir `~/terminal-course/scripts/`. |
| **6.3 — Gestión de paquetes** | 45 min | **Linux/WSL:** `apt update`, `apt upgrade`, `apt install <paquete>`, `apt search`, `apt remove`. **macOS:** `brew install`, `brew search`, `brew list`. Instalar `tree` y `htop` como práctica. Seguridad: no instalar como root si no es necesario. |
| **6.4 — Procesos** | 60 min | Foreground vs background. `&` para lanzar en background. `jobs`, `fg`, `bg`. `ps` básico: `ps aux`, `ps -ef`. `top` / `htop` para monitoreo. `kill PID`, `kill -9 PID`. Señales: SIGTERM (15), SIGKILL (9). Caso de uso: lanzar un proceso largo, verificar su estado, detenerlo. |
| **6.5 — Notebook ejecutable** | 40 min | Laboratorio interactivo: cambiar permisos de scripts, crear y exportar variables, instalar herramientas, lanzar/monitorear/detener procesos. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Permisos | Cambiar permisos con octal y simbólico; verificar con `ls -l` | 20 % |
| Variables de entorno | Exportar variable nueva, modificar `PATH`, persistir en `.bashrc` | 15 % |
| Gestión de paquetes | Instalar `tree` y `htop` con `apt` o `brew`; verificar funcionamiento | 20 % |
| Procesos | Lanzar proceso en background, listar con `jobs`, monitorizar con `ps`, detener con `kill` | 25 % |
| Práctica final | Ajustar permisos de `scripts/`, crear variable `PROYECTO=/ruta`, instalar `tree`, lanzar y gestionar proceso | 20 % |

### Práctica acumulativa — "Asegura y gestiona"

Ajustar permisos de `scripts/` con `chmod`. Crear variable `PROYECTO` con ruta a `~/terminal-course/` y persistirla. Instalar `tree` o `htop`. Lanzar proceso en background, verificar con `ps`, terminarlo con `kill`.

---

## Unidad 7 — Utilidades Profesionales de Terminal

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Empaquetar y comprimir** archivos con `tar` y `gzip` / `gunzip`.
2. **Usar** `tmux` para gestionar sesiones, ventanas y paneles múltiples.
3. **Verificar conectividad** de red con `ping`, `curl` y `wget`.
4. **Personalizar** su terminal con ZSH, Oh My ZSH y temas.
5. **Conocer** terminales modernas con IA como Warp y su propuesta de valor.

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **7.1 — Empaquetado y compresión** | 45 min | `tar -czf` (crear), `tar -xzf` (extraer). `gzip` / `gunzip`. Caso de uso: empaquetar un proyecto para respaldo o envío. |
| **7.2 — tmux básico** | 45 min | `tmux new -s sesion`, `Ctrl+B %` (dividir vertical), `Ctrl+B "` (dividir horizontal), `Ctrl+B d` (detach), `tmux attach`. Caso de uso: mantener procesos corriendo sin terminal abierta. |
| **7.3 — Comandos de red** | 45 min | `ping` (verificar conectividad). `curl` (descargar contenido, ver headers). `wget` (descargar archivos). Caso de uso: verificar que un servidor responde, descargar un archivo de datos. |
| **7.4 — Personalización ZSH** | 60 min | De Bash a ZSH: instalar ZSH. Oh My ZSH: instalación, temas (`robbyrussell`, `agnoster`, `powerlevel10k`). Plugins útiles: `git`, `z`, `autosuggestions`. Archivo `~/.zshrc`. |
| **7.5 — Terminales modernas** | 15 min | Warp: características (autocompletado con IA, flujo moderno). Otras alternativas (iTerm2, Kitty, Alacritty). Exploratorio, no evaluable. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Empaquetado | Comprimir y extraer un directorio con `tar` + `gzip` | 25 % |
| tmux | Crear sesión, dividir paneles, detach y attach | 20 % |
| Red | Usar `ping` y `curl`/`wget` para verificar conectividad | 20 % |
| Personalización | ZSH instalado, tema activo, al menos un plugin funcionando | 25 % |
| Práctica final | Comprimir el proyecto completo, verificar red, iniciar sesión tmux, personalizar prompt | 10 % |

### Práctica acumulativa — "Empaqueta y personaliza"

Comprimir `~/terminal-course/` con `tar -czf`. Verificar conectividad con `ping` y `curl`. Iniciar sesión tmux, dividir paneles. Personalizar prompt con variable `PS1` o instalar ZSH con tema. Explorar Warp (si está disponible).

---

## Unidad 8 — Cierre y Proyección

### Objetivos de aprendizaje

Al completar esta unidad, el estudiante será capaz de:

1. **Aplicar** buenas prácticas de higiene en la terminal (verificar antes de ejecutar, nombrar archivos correctamente, mantener orden).
2. **Identificar y evitar** errores comunes de principiante (espacios en nombres, `rm -rf` sin precaución, permisos incorrectos).
3. **Integrar** todos los conocimientos del curso en un escenario holístico de trabajo.
4. **Planificar** su ruta de aprendizaje futuro hacia scripting básico en Bash.
5. **Localizar** recursos confiables para continuar su formación (documentación oficial, libros, comunidades, laboratorios).

### Temario detallado por sesión

| Sesión | Duración | Temas |
|--------|----------|-------|
| **8.1 — Buenas prácticas** | 45 min | Verificar antes de ejecutar (`echo` + comando, `-i` flags). Nombres de archivos consistentes (sin espacios, minúsculas, guiones bajos). Mantener `~/terminal-course/` ordenado. Documentar alias y configuraciones. |
| **8.2 — Errores comunes** | 45 min | `rm -rf` sin verificar. Espacios en nombres. Confundir `>` con `>>`. Olvidar `sudo` o abusar de `sudo`. No leer errores de la terminal. `chmod 777` innecesario. No verificar `PATH` antes de instalar. |
| **8.3 — Práctica de integración final** | 60 min | Escenario completo: limpiar archivos temporales del proyecto, documentar alias usados en `.bash_aliases`, generar resumen de lo aprendido con `echo` y `cat`, listar comandos nuevos descubiertos, identificar 3 áreas para seguir aprendiendo. |
| **8.4 — Rutas de aprendizaje futuro** | 30 min | **Shell scripting básico:** `bash-guide` (GitHub), `Linux Journey`. **Libros:** "The Linux Command Line" (Shotts), "Learning the bash Shell". **Comunidades:** r/commandline, r/bash, r/linux4noobs. **Laboratorios:** Linux Survival, OverTheWire Bandit, Katacoda. **Rutas sugeridas:** Administración Linux → DevOps → Seguridad → Automatización. |

### Criterios de evaluación

| Criterio | Evidencia | Ponderación |
|----------|-----------|-------------|
| Buenas prácticas | Verificar comandos con `-i` o `echo` pre-ejecución en ejercicios | 20 % |
| Identificación de errores | Detectar y corregir 5 errores comunes en un escenario dado | 20 % |
| Integración holística | Práctica final completa y funcional | 40 % |
| Proyección | Rutas de aprendizaje identificadas y justificadas | 20 % |

### Práctica acumulativa — "Presenta tu trabajo"

Limpiar archivos temporales, documentar alias usados, generar un resumen de lo aprendido (comandos, conceptos, prácticas), listar 3 áreas de mejora futura, crear archivo `aprendizaje-terminal.md` con reflexión personal.

---

## Criterios de Evaluación Generales

### Evaluación formativa (por unidad)

Cada unidad se evalúa mediante:

| Tipo | Descripción | Frecuencia |
|------|-------------|------------|
| **Ejercicios guiados** | 3–5 ejercicios durante la unidad con verificación por comparación de salida o inspección visual | Por sesión |
| **Práctica acumulativa** | Ejercicio integrador al final de cada unidad que conecta con el proyecto del curso | Por unidad |
| **Quiz formativo** | 10 preguntas por unidad: 7 de selección múltiple y 3 de verdadero/falso, con clave razonada | Por unidad |
| **Auto-verificación** | Lista de verificación al final de cada unidad ("Puedo hacer esto antes de continuar") | Por unidad |

### Criterios de aprobación

Para aprobar el curso, el estudiante debe:

1. **Completar ≥ 6 de 8 prácticas acumulativas** (unidades 1–8).
2. **Demostrar** en la práctica de integración final (unidad 8) que puede:
   - Navegar y manipular archivos en la terminal sin ayuda.
   - Usar grep y find para buscar información.
   - Encadenar comandos con pipes y redirecciones.
   - Gestionar permisos y procesos básicos.
   - Personalizar su terminal.
3. **Autoevaluar** su progreso mediante la lista de verificación final.

### Escala de dominio

| Nivel | Descripción | Criterio |
|-------|-------------|----------|
| **Novato** | Sigue instrucciones paso a paso pero no transfiere | < 4 prácticas completadas |
| **Básico** | Usa comandos esenciales con ayuda ocasional | 4–5 prácticas completadas |
| **Funcional** | Usa la terminal con confianza para tareas cotidianas | 6–7 prácticas completadas |
| **Autónomo** | Resuelve problemas nuevos combinando comandos | 8 prácticas completadas |

---

## Carga Horaria Detallada

| Unidad | Horas teóricas | Horas prácticas | Horas de práctica final | Total |
|--------|---------------|-----------------|------------------------|-------|
| 1 — Introducción | 2.0 | 1.5 | 0.5 | **4.0 h** |
| 2 — Navegación | 1.0 | 2.0 | 1.0 | **4.0 h** |
| 3 — Archivos de texto | 1.5 | 2.5 | 1.0 | **5.0 h** |
| 4 — Búsqueda | 1.5 | 2.5 | 1.0 | **5.0 h** |
| 5 — Shell interna | 2.0 | 1.5 | 1.0 | **4.5 h** |
| 6 — SO y procesos | 2.0 | 2.5 | 1.5 | **6.0 h** |
| 7 — Utilidades | 1.5 | 2.0 | 0.5 | **4.0 h** |
| 8 — Cierre | 1.5 | 1.0 | 1.5 | **4.0 h** |
| **Total** | **13.0 h** | **15.5 h** | **8.0 h** | **36.5 h** |

### Distribución por tipo de actividad

| Tipo | Horas | Porcentaje |
|------|-------|------------|
| Conceptos y explicaciones | 13.0 h | 36 % |
| Ejercicios guiados y ejemplos | 15.5 h | 42 % |
| Prácticas acumulativas | 8.0 h | 22 % |
| **Total** | **36.5 h** | **100 %** |

---

## Cronograma

### Ritmo intensivo: 8 semanas (1 unidad/semana)

| Semana | Unidad | Temas principales | Práctica final | Horas |
|--------|--------|-------------------|----------------|-------|
| 1 | **Unidad 1** | Introducción, conceptos, instalación, primer comando | Prepara tu estación de trabajo | 4 h |
| 2 | **Unidad 2** | Navegación, rutas, manipulación de archivos | Organiza tu proyecto | 4 h |
| 3 | **Unidad 3** | Visualización, procesamiento de texto, editores | Documenta y analiza | 5 h |
| 4 | **Unidad 4** | Wildcards, grep, find, composición | Encuentra lo que necesitas | 5 h |
| 5 | **Unidad 5** | Tipos de comandos, redirecciones, pipes, alias | Automatiza tu flujo | 4.5 h |
| 6 | **Unidad 6** | Permisos, variables, apt, Homebrew, procesos | Asegura y gestiona | 6 h |
| 7 | **Unidad 7** | tar, gzip, tmux, red, ZSH, Warp | Empaqueta y personaliza | 4 h |
| 8 | **Unidad 8** | Buenas prácticas, errores, integración, rutas futuras | Presenta tu trabajo | 4 h |

### Ritmo extendido: 16 semanas (1 sesión/semana, ~2 h)

| Semana | Unidad | Sesión | Temas |
|--------|--------|--------|-------|
| 1 | **U1** | 1.1 | ¿Por qué la terminal? Conceptos. |
| 2 | **U1** | 1.2 | Primer comando. Instalación WSL. |
| 3 | **U2** | 2.1 | pwd, ls, cd. Rutas absolutas y relativas. |
| 4 | **U2** | 2.2 | mkdir, cp, mv, rm. Práctica: organiza tu proyecto. |
| 5 | **U3** | 3.1 | cat, less, head, tail. |
| 6 | **U3** | 3.2 | wc, sort, uniq, diff. Nano y Vim básico. Práctica. |
| 7 | **U4** | 4.1 | Wildcards. grep básico. |
| 8 | **U4** | 4.2 | grep avanzado, find. Composición. Práctica. |
| 9 | **U5** | 5.1 | Tipos de comandos. |
| 10 | **U5** | 5.2 | Redirecciones, pipes, operadores, alias. Práctica. |
| 11 | **U6** | 6.1 | Permisos (chmod). Variables de entorno. |
| 12 | **U6** | 6.2 | apt, Homebrew. Procesos (ps, top, kill). Práctica. |
| 13 | **U7** | 7.1 | tar, gzip. tmux básico. |
| 14 | **U7** | 7.2 | Red (ping, curl). Personalización ZSH. Práctica. |
| 15 | **U8** | 8.1 | Buenas prácticas. Errores comunes. |
| 16 | **U8** | 8.2 | Práctica de integración. Rutas futuras. |

---

## Prerrequisitos

- **No se requiere** experiencia previa en terminal o línea de comandos.
- **Windows:** Windows 10 versión 2004+ o Windows 11 para WSL2. Alternativa: máquina virtual Linux.
- **macOS:** Cualquier versión reciente con Terminal.app. Se recomienda Xcode Command Line Tools.
- **Linux:** Cualquier distribución con Bash (la mayoría la incluyen por defecto).
- **General:** Acceso a internet para instalar paquetes y consultar documentación.
- **Deseable** (no obligatorio): Conocimiento básico de estructura de carpetas en el sistema operativo.

---

## Material y Herramientas

### Por unidad

| Unidad | Herramientas necesarias |
|--------|------------------------|
| 1 | Terminal (WSL, Terminal.app o Linux). |
| 2 | Terminal, sistema de archivos. |
| 3 | Terminal, editor Nano (preinstalado), Vim (preinstalado). |
| 4 | Terminal, archivos de texto de ejemplo (creados en unidad 3). |
| 5 | Terminal, Bash/ZSH. |
| 6 | Terminal, `apt` (Linux/WSL), Homebrew (macOS, opcional). |
| 7 | Terminal, `tar`/`gzip` (preinstalados), `tmux` (instalar en unidad), ZSH (instalar si se desea). |
| 8 | Terminal, proyecto completo de unidades 1–7. |

### Software requerido (no incluido en el sistema base)

| Herramienta | Cuándo se instala | Unidad |
|-------------|------------------|--------|
| WSL2 + Ubuntu | Al inicio del curso (solo Windows) | 1 |
| Homebrew | Durante la unidad (solo macOS) | 6 |
| `tmux` | Durante la unidad | 7 |
| ZSH / Oh My ZSH | Durante la unidad (opcional) | 7 |
| `tree`, `htop` | Durante la unidad (práctica) | 6 |

---

## Referencias

- **Documentación oficial:** GNU Coreutils, Bash Reference Manual, tmux manual.
- **Libros:** "The Linux Command Line" (William Shotts), "Learning the bash Shell" (O'Reilly).
- **Recursos online:** Linux Journey, OverTheWire Bandit, explainshell.com.
- **Comunidades:** r/commandline, r/bash, Stack Overflow (etiqueta bash).

---

## Historial de versiones

| Versión | Fecha | Cambios |
|---------|-------|---------|
| 1.0 | 2026-06-01 | Versión inicial del syllabus. 8 unidades, 36.5 horas estimadas, 2 modalidades de cursada. |
