Linux · Sección 4

Flujos, tuberías, trabajos y señales

stdin, stdout, stderr, descriptores, redirecciones, tuberías, códigos de salida, segundo plano, procesos, trabajos y señales.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas ejecutar órdenes y reconocer argumentos. No se requiere experiencia previa con procesos.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Descriptores y redirecciones con Tuberías y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

04 / PREPARA EL LABORATORIO

Prepara una máquina virtual Linux con red NAT e instantáneas, o WSL para las prácticas que no requieren kernel y systemd completos.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Descriptores y redirecciones y Tuberías? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Combinarás entrada, salida, tuberías y control de trabajos, comprendiendo qué conecta la shell y cómo conservar errores para diagnosticar.

Al terminar podrás
  • stdin, stdout y stderr tienen destinos independientes
  • Una tubería conecta procesos, no textos mágicos
  • Segundo plano no significa proceso independiente
01
Tres flujos iniciales

stdin, stdout y stderr tienen destinos independientes

Cada proceso comienza normalmente con los descriptores 0, 1 y 2. La shell puede conectar entrada y salidas a terminales, archivos o tuberías. > reemplaza un archivo; >> añade; 2> redirige errores. El orden de 2>&1 importa porque duplica el destino vigente de stdout.

01

stdout transporta datos o resultados.

02

stderr conserva diagnósticos separados.

03

Una redirección la prepara la shell antes de iniciar la orden.

Comprueba lo aprendido · 01

¿Qué diferencia hay entre >todo 2>&1 y 2>&1 >todo?

Mostrar respuesta +

En el primero, stderr se duplica hacia el archivo al que ya apunta stdout. En el segundo, stderr conserva el destino anterior y solo stdout termina en el archivo.

02
Composición

Una tubería conecta procesos, no textos mágicos

El operador | conecta stdout del proceso izquierdo con stdin del derecho. Cada etapa debe tener un propósito observable. El estado global de una tubería puede ocultar fallos intermedios; en Bash, pipefail permite que un error anterior no parezca éxito solo porque la última orden terminó bien.

01

Inspecciona la salida de cada etapa antes de añadir otra.

02

grep filtra líneas; sort ordena; uniq cuenta adyacentes.

03

tee permite observar y guardar una corriente.

Comprueba lo aprendido · 02

¿Por qué uniq suele ir después de sort?

Mostrar respuesta +

Porque uniq agrupa o elimina solo líneas repetidas que están juntas; sort reúne primero los valores iguales.

03
Trabajos y señales

Segundo plano no significa proceso independiente

Añadir & devuelve el prompt y registra un trabajo de la shell. jobs, fg y bg controlan esos trabajos; ps observa procesos. Ctrl+C suele enviar SIGINT al trabajo en primer plano y Ctrl+Z SIGTSTP. Para tareas duraderas conviene tmux o un servicio, no depender de una terminal accidental.

01

PID identifica un proceso; %1 puede identificar un trabajo de la shell.

02

kill envía una señal y SIGTERM permite una salida ordenada.

03

SIGKILL no puede limpiarse y debe ser el último recurso.

Comprueba lo aprendido · 03

¿Por qué kill no significa necesariamente “matar inmediatamente”?

Mostrar respuesta +

Porque kill envía una señal. Por defecto suele ser SIGTERM, que solicita terminar y permite que el proceso cierre archivos o libere recursos.

Resumen de la sección

Tu recorrido en tres ideas

  1. stdin, stdout y stderr tienen destinos independientes
  2. Una tubería conecta procesos, no textos mágicos
  3. Segundo plano no significa proceso independiente
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Combinar stderr con stdout y después perder la causa de un fallo.

ERROR 02

Enviar SIGKILL como primera respuesta sin dar oportunidad de limpiar.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Construye una tubería que produzca un informe, conserve errores por separado y ejecute una tarea controlable en segundo plano.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Explica cada descriptor y redirección.
  • Verifica estados con pipefail.
  • Termina el proceso con TERM y comprueba su salida.