tmux vs screen: cuál es la diferencia

Los dos mantienen los programas en marcha en un servidor cuando te desconectas, y para eso cualquiera de los dos sirve. tmux trae por defecto una barra de estado y paneles fáciles, y cada acción es un comando con nombre que puedes automatizar. GNU screen es la herramienta más antigua y además puede conectarse a puertos serie. Si todavía no tienes costumbre con ninguno, tmux es el comienzo más sencillo. En un servidor que solo tiene screen, usa screen.

Actualizada el . tmux 3.5a y screen 4.09.01 en Debian 13 en un contenedor desechable: sesiones arrancadas en segundo plano, listadas, con teclas enviadas desde fuera y cerradas. También se comprobó el screen 4.00.03 que trae macOS 27.

Lado a lado

Tareatmuxscreen
Tecla de prefijoCtrl+bCtrl+a
Nueva sesión con nombretmux new -s workscreen -S work
Desconectarte de la sesiónCtrl+b dCtrl+a d
Listar las sesionestmux lsscreen -ls
Conectarte a una sesióntmux attach -t workscreen -r work
Iniciar en segundo planotmux new -d -s workscreen -dmS work
Nueva ventanaCtrl+b cCtrl+a c
Dividir arriba y abajoCtrl+b "Ctrl+a S
Dividir lado a ladoCtrl+b %Ctrl+a |
Siguiente región o panelCtrl+b oCtrl+a Tab
Enviar teclas desde un scripttmux send-keys -t work 'ls' Enterscreen -S work -X stuff 'ls\n'
Barra de estado por defectoSíNo
Puertos serieNoSí, por ejemplo screen /dev/ttyUSB0 115200
LicenciaISC y estilo BSDGPL

Diferencias que importan en la práctica

Paneles

Un panel de tmux es un shell desde el momento en que divides. Una región nueva de screen está vacía, y tienes que moverte a ella y pulsar Ctrl+a c.

La tecla de prefijo

En un shell, Ctrl+a normalmente salta al principio de la línea. Bajo screen pulsas Ctrl+a a para eso. tmux usa Ctrl+b, que se utiliza con menos frecuencia.

Scripts

Ambos se pueden controlar desde fuera, como muestra la tabla. tmux ofrece más recursos, como tmux capture-pane -p para leer la pantalla y tmux has-session para comprobar si hay una sesión.

Disponibilidad

Ninguno tiene garantizada su presencia en un servidor mínimo, pero puedes instalar cualquiera de los dos desde los repositorios de paquetes estándar de Debian y Ubuntu:

sudo apt install tmux
sudo apt install screen

Debian 13 incluye en sus paquetes tmux 3.5a y screen 4.9.1. macOS sigue trayendo screen 4.00.03 de 2006, y nada de tmux. Para tener el tmux actual en un Mac, usa Homebrew: brew install tmux.

Cuando no se puede conectar a una sesión

Una sesión que sigue conectada en otro sitio no se abrirá con un simple screen -r, que imprime There is no screen to be resumed matching work. Usa screen -d -r work para desconectarla antes del otro sitio. En tmux, tmux attach -d -t work hace lo mismo.

Para ver la lista completa de comandos de tmux, mira el cheat sheet de tmux.

Por qué una sesión sobrevive a una conexión caída se explica en mantener vivas las sesiones SSH con tmux.

Preguntas

¿Es tmux mejor que screen?

Para mantener programas en marcha después de desconectarte, sirven los dos. tmux es más fácil para empezar, con su barra de estado, paneles listos y comandos para scripts. screen es el indicado para puertos serie o cuando es la única herramienta del servidor.

¿Cuál viene instalado por defecto?

En un servidor mínimo no está garantizado ninguno. En Debian y Ubuntu instalas cualquiera de los dos con sudo apt install tmux o sudo apt install screen.

¿Se puede abrir una sesión de tmux desde dos sitios a la vez?

Sí. tmux attach -t work entra en una sesión ya conectada en otro sitio, y tmux attach -d -t work primero la desconecta del otro sitio.

Fuentes

Más en Sesiones y tmux

Todas las guías