📘🧠 Idea central

En la terminal, los comandos pueden ejecutarse en foreground (primer plano) o en background (segundo plano). El foreground bloquea la terminal hasta que el proceso termina, mientras que el background permite seguir usando la terminal mientras una tarea larga se ejecuta “detrás de escena”. Dominar este flujo te permite trabajar en paralelo, no perder tiempo esperando procesos largos (instalaciones, respaldos, scripts) y controlar procesos (pausar, reanudar, traer al frente o enviarlos al fondo) según lo necesites.


📚 Conceptos clave

Cuando ejecutas un comando normalmente (por ejemplo, sleep 3), el proceso corre en foreground: la terminal queda “ocupada” hasta que termina. Esto es útil para tareas cortas o cuando quieres ver la salida en tiempo real y reaccionar (leer logs, prompts interactivos). La desventaja es que bloquea tu flujo de trabajo si el comando tarda mucho (instalaciones, scripts largos, procesos de mantenimiento).

Enviar un proceso al background con & permite que el comando siga ejecutándose mientras recuperas el control inmediato de la terminal. Es ideal para tareas largas o no interactivas (respaldos, descargas, builds). Los procesos en background siguen produciendo salida; según el comando, esa salida puede mezclarse con tu prompt, por lo que conviene redirigir logs cuando el proceso es ruidoso.

La shell mantiene un listado de procesos “controlados” por la sesión con jobs. Cada proceso tiene un ID (por ejemplo, [1]). Con ese ID puedes: