Tmux vs. Screen: Terminal Multiplexers

El término «multiplexor de terminal» se refiere a programas como Tmux y Screen que permiten gestionar múltiples sesiones, ventanas y paneles dentro de una única ventana de terminal. Su característica principal es la capacidad de desconectar (detach) y volver a conectar (reattach) a una sesión activa, lo que significa que los programas en ejecución continúan funcionando en segundo plano incluso si se pierde la conexión SSH o se cierra la ventana del terminal. Esto es esencial para el trabajo remoto y la ejecución de tareas de larga duración. De igual manera te dejo nuestro blog para que lo puedas visitar Blog.


Tanto Tmux como Screen cumplen la función principal de multiplexar terminales, pero Tmux es generalmente considerado la herramienta más moderna y con más funciones. La elección a menudo se reduce a preferencias personales y al entorno de trabajo.

CaracterísticaScreen (GNU Screen)Tmux (Terminal Multiplexer)
ArquitecturaSesión única con múltiples ventanas.Arquitectura cliente-servidor (permite múltiples sesiones simultáneas).
División de PantallaFuncionalidad más básica, típicamente solo división horizontal.Ofrece división de ventana en paneles horizontales y verticales (más flexible).
PersonalizaciónOpciones de configuración más limitadas.Amplias opciones de personalización, especialmente la barra de estado es más fácil de usar y configurar.
Facilidad de UsoGeneralmente se considera más fácil para principiantes. Suele estar preinstalado.Curva de aprendizaje un poco más pronunciada debido a su mayor conjunto de características.
Actualización de VentanaNombres de ventana a veces inexactos; requiere configuración extra.Renombrado automático de ventana más preciso según el proceso en ejecución.

Exportar a Hojas de cálculo


La clave para el trabajo en paralelo es el uso de ventanas y paneles dentro de una única sesión.

  • Sesión (Session): Es el contenedor principal que persiste en segundo plano. Puedes tener múltiples sesiones (especialmente con Tmux).
  • Ventana (Window): Es como una pestaña en un navegador, permitiendo tener múltiples shells activos.
  • Panel (Pane): Es una división de la ventana que te permite ver e interactuar con múltiples shells o procesos simultáneamente en la misma pantalla.

Ambas herramientas utilizan una combinación de prefijo seguida de una tecla para ejecutar comandos.

ComandoTeclas (Prefijo + Tecla)DescripciónEjemplo de Uso
Iniciar Sesióntmux (en el shell)Crea una nueva sesión y se adjunta a ella.Inicias tu sesión de trabajo.
DesconectarCtrl + b luego dDeja la sesión ejecutándose en segundo plano.Te desconectas del servidor SSH, pero tus procesos siguen activos.
Adjuntartmux attach o tmux aVuelve a la sesión más reciente.Te vuelves a conectar al servidor y continúas justo donde lo dejaste.
Nueva VentanaCtrl + b luego cCrea una nueva ventana (shell) dentro de la sesión.Abres una ventana para editar código y otra para correr el servidor.
Dividir (Vertical)Ctrl + b luego %Divide el panel actual verticalmente (izquierda/derecha).Ves el código a la izquierda y el log del servidor a la derecha.
Dividir (Horizontal)Ctrl + b luego "Divide el panel actual horizontalmente (arriba/abajo).Arriba editas código y abajo ejecutas pruebas unitarias.
Cambiar de PanelCtrl + b luego flechaMueve el foco al panel en la dirección de la flecha.Navegas entre el panel del código y el del log.
Listar Sesionestmux ls (en el shell)Muestra todas las sesiones activas.Verificas qué sesiones tienes corriendo: 0: 1:dev 2:test.

Exportar a Hojas de cálculo

ComandoTeclas (Prefijo + Tecla)DescripciónEjemplo de Uso
Iniciar Sesiónscreen (en el shell)Crea una nueva sesión y se adjunta.Comienzas a trabajar en el servidor.
DesconectarCtrl + a luego dDeja la sesión ejecutándose en segundo plano.Tu descarga de un archivo grande continúa aunque cierres la terminal.
Adjuntarscreen -r (en el shell)Vuelve a la sesión más reciente.Retomas la descarga exactamente donde iba.
Nueva VentanaCtrl + a luego cCrea una nueva ventana (shell) dentro de la sesión.Usas una ventana para htop y otra para comandos de la base de datos.
Siguiente VentanaCtrl + a luego nCambia a la siguiente ventana numerada.Pasas de tu shell de trabajo al monitor htop.
Listar VentanasCtrl + a luego "Muestra una lista interactiva de las ventanas.Ves la lista de tus shells: 0. bash, 1. htop, 2. tail.
Dividir (Horizontal)Ctrl + a luego SDivide la región actual horizontalmente.Visualizas dos tareas al mismo tiempo en la misma pantalla.

Exportar a Hojas de cálculo


La razón principal para usar Tmux o Screen es la capacidad de desconectar (detach) tu sesión de terminal y dejar tus procesos ejecutándose en un segundo plano seguro en el servidor. Esto es un salvavidas cuando trabajas a distancia a través de SSH.

Escenario de ejemplo:

  1. Te conectas a un servidor remoto vía SSH.
  2. Inicias una sesión de Tmux: tmux.
  3. Dentro de Tmux, inicias una tarea que tardará 3 horas (ej: una compilación, una descarga grande o un proceso de actualización). $ sudo apt upgrade
  4. De repente, tu conexión Wi-Fi se cae o tu portátil se apaga. ¡El terror!

Sin Tmux/Screen: La conexión SSH se interrumpe, el proceso (sudo apt upgrade) recibe una señal de terminación (SIGHUP) y se detiene, perdiendo todo el progreso.

Con Tmux/Screen: El multiplexor detecta la desconexión del terminal, pero mantiene la sesión y los procesos activos en el servidor. Cuando te vuelves a conectar:

  1. Te conectas de nuevo vía SSH.
  2. Escribes tmux attach o screen -r.
  3. La sesión se restaura exactamente en el punto donde la dejaste, y el proceso de 3 horas sigue ejecutándose como si nada hubiera pasado.

Ambos programas suelen estar disponibles en los repositorios de software de cualquier distribución de Linux o macOS (usando Homebrew).

DistribuciónTmuxScreen
Debian/Ubuntusudo apt install tmuxsudo apt install screen
Red Hat/Fedora/CentOSsudo yum install tmuxsudo yum install screen
Archsudo pacman -S tmuxsudo pacman -S screen

Exportar a Hojas de cálculo

AcciónTmux (Ejemplo)Screen (Ejemplo)
Iniciar una nueva sesión$ tmux new -s dev_project$ screen -S dev_project
Desconectar (Detach)Ctrl + b y luego dCtrl + a y luego d
Listar sesiones activas$ tmux ls$ screen -ls
Reconectar a una sesión$ tmux attach -t dev_project$ screen -r dev_project

Exportar a Hojas de cálculo


El verdadero potencial de estos programas para trabajar en paralelo reside en la gestión de paneles (tmux) o regiones (screen), que te permiten dividir la pantalla de la terminal.

Uso PrácticoComando Tmux (Ctrl + b + Tecla)Comando Screen (Ctrl + a + Tecla)
Crear nueva ventanacc
Dividir la ventana verticalmente (izq/der)% (símbolo de porcentaje)`
Dividir la ventana horizontalmente (arr/aba)" (doble comilla)S (S mayúscula)
Moverse entre panelesflecha (dirección)Tab
Cerrar el panel actualxX (X mayúscula)
Cambiar el nombre a la ventana, (coma)A (A mayúscula)

Exportar a Hojas de cálculo

Imagina que estás desarrollando una aplicación web:

  1. Inicias una sesión: $ tmux new -s webdev
  2. Dividir verticalmente (para el código y el servidor): Presionas Ctrl + b, luego %.
  3. Dividir el panel del servidor horizontalmente (para logs): Presionas Ctrl + b, luego flecha izquierda para ir al panel del servidor. Presionas Ctrl + b, luego ".
  4. Ejecutas tareas en cada panel:
    • Superior » «: Editor de código (vim o nano).
    • Inferior Izquierdo: Servidor web (npm start o similar).
    • Derecho: Monitoreo de logs (tail -f /var/log/app.log).

Con esta configuración, puedes ver el efecto de tus cambios de código, el estado del servidor y los logs simultáneamente en una sola ventana, y todo ello permanecerá activo si te desconectas.

El video ver video proporciona una buena introducción visual a los comandos más esenciales de Tmux y su flujo de trabajo de desconexión/reconexión.

Scroll al inicio