Lado a lado
| Tarea | tmux | screen |
|---|---|---|
| Tecla de prefijo | Ctrl+b | Ctrl+a |
| Nueva sesión con nombre | tmux new -s work | screen -S work |
| Desconectarte de la sesión | Ctrl+b d | Ctrl+a d |
| Listar las sesiones | tmux ls | screen -ls |
| Conectarte a una sesión | tmux attach -t work | screen -r work |
| Iniciar en segundo plano | tmux new -d -s work | screen -dmS work |
| Nueva ventana | Ctrl+b c | Ctrl+a c |
| Dividir arriba y abajo | Ctrl+b " | Ctrl+a S |
| Dividir lado a lado | Ctrl+b % | Ctrl+a | |
| Siguiente región o panel | Ctrl+b o | Ctrl+a Tab |
| Enviar teclas desde un script | tmux send-keys -t work 'ls' Enter | screen -S work -X stuff 'ls\n' |
| Barra de estado por defecto | Sí | No |
| Puertos serie | No | Sí, por ejemplo screen /dev/ttyUSB0 115200 |
| Licencia | ISC y estilo BSD | GPL |
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.