tmux vs screen
tmux vs. screen: cómo mantener sesiones de terminal en Linux
Cuando trabajas con un servidor Linux mediante SSH, cerrar la conexión puede interrumpir lo que estabas haciendo. Para evitarlo —y para organizar mejor varias tareas en una misma terminal— existen herramientas como tmux y screen.
Ambas son multiplexores de terminal: permiten mantener sesiones persistentes, abrir varias ventanas y, en el caso de tmux, dividir la pantalla en paneles. Son especialmente útiles para administrar servidores, ejecutar procesos largos o trabajar en una máquina remota sin depender de que la conexión SSH permanezca abierta.
En pocas palabras: las dos herramientas resuelven el problema de las sesiones de terminal persistentes. Si puedes elegir y no tienes restricciones de compatibilidad, normalmente empezaría por tmux. Si administras sistemas antiguos en los que ya está instalado screen, también es una opción válida.
¿Para qué sirven?
Imagina que lanzas una actualización, una compilación o un proceso de análisis en un servidor remoto. Si pierdes la conexión SSH, una sesión de terminal normal puede cerrarse y el proceso puede verse afectado.
Con tmux o screen, puedes iniciar una sesión, ejecutar el trabajo y desconectarte de ella sin cerrarla. Más tarde vuelves a conectarte y recuperas la sesión con sus ventanas y procesos, siempre que la máquina y la sesión sigan en funcionamiento.
- Ejecutar tareas largas en servidores remotos.
- Mantener una sesión de trabajo aunque se corte la conexión SSH.
- Organizar varias terminales en ventanas o paneles.
- Separar sesiones según el proyecto o la tarea.
- Volver a una sesión sin tener que reconstruir todo el entorno de terminal.
Importante: estas herramientas no hacen que un proceso sobreviva a un reinicio del servidor. La sesión persistente permanece mientras siga vivo el sistema y no se cierre la sesión de forma explícita.
Comparativa rápida
| Característica | tmux |
screen |
|---|---|---|
| Tecla prefijo habitual | Ctrl+b |
Ctrl+a |
| Sesiones persistentes | Sí | Sí |
| Varias ventanas | Sí | Sí |
| Paneles divididos | Sí, con divisiones horizontales y verticales combinables | Sí; las posibilidades y la experiencia de uso son más limitadas |
| Personalización | Amplia, mediante ~/.tmux.conf |
Mediante ~/.screenrc |
| Compatibilidad con sistemas antiguos | Puede no estar instalado | Es frecuente encontrarlo en sistemas antiguos |
| Cuándo elegirlo | Para un entorno flexible y personalizable | Para aprovechar instalaciones existentes o mantener compatibilidad |
La disponibilidad y algunas funciones concretas dependen de la versión y de la configuración de cada sistema. No des por hecho que una herramienta está instalada: compruébalo en el servidor.
Primeros pasos con tmux
1. Crear una sesión con nombre
tmux new -s trabajo
Se abrirá una sesión llamada trabajo. Puedes ejecutar comandos dentro de ella como en una terminal normal.
2. Desconectarte sin cerrar la sesión
Pulsa Ctrl+b y, después, d. La combinación se introduce en dos pasos: pulsa y suelta el prefijo y luego pulsa d. Volverás a la terminal desde la que habías entrado, pero la sesión de tmux seguirá activa.
3. Consultar las sesiones disponibles
tmux ls
Verás las sesiones que siguen activas, si las hay.
4. Volver a una sesión
tmux attach -t trabajo
Si solo tienes una sesión y no necesitas indicar su nombre, también puedes usar tmux attach.
5. Dividir la pantalla en paneles
- Ctrl+b y después ": crea una división horizontal.
- Ctrl+b y después %: crea una división vertical.
- Ctrl+b y después o: cambia al siguiente panel.
La orientación de las divisiones puede resultar algo contraintuitiva al principio: " crea una línea divisoria horizontal, mientras que % crea una vertical.
6. Cerrar una sesión
Cuando ya no necesites la sesión, puedes ejecutar dentro de ella:
exit
Si era la última terminal de esa sesión, la sesión terminará. No lo hagas si quieres dejar un proceso ejecutándose dentro de ella.
Primeros pasos con screen
1. Crear una sesión con nombre
screen -S trabajo
Entrarás en una sesión llamada trabajo.
2. Desconectarte sin cerrarla
Pulsa Ctrl+a y, después, d. La sesión quedará en segundo plano y podrás continuar usando la terminal original.
3. Listar las sesiones
screen -ls
Este comando muestra las sesiones disponibles y su estado.
4. Recuperar una sesión
screen -r trabajo
Si hay varias sesiones y el nombre no basta para identificar una de ellas, utiliza el identificador que aparece en screen -ls.
5. Crear y cambiar de ventana
- Ctrl+a y después c: crea una ventana nueva.
- Ctrl+a y después un número: cambia a la ventana correspondiente, si existe.
- Ctrl+a y después n: avanza a la siguiente ventana.
- Ctrl+a y después p: vuelve a la ventana anterior.
screen permite dividir la pantalla en regiones, aunque su manejo y sus posibilidades no son idénticos a los de los paneles de tmux.
6. Cerrar una sesión
Dentro de una ventana, ejecuta exit cuando quieras cerrar esa shell. Si cierras todas las ventanas, la sesión terminará.
¿Cuál conviene elegir?
Elige tmux
Para un uso nuevo, si buscas paneles flexibles, personalización y una herramienta cómoda para el trabajo diario.
Elige screen
Si ya está instalado en un servidor antiguo, forma parte de los procedimientos existentes o necesitas mantener un entorno que ya lo utiliza.
No tiene mucho sentido sustituir una herramienta que funciona si las necesidades son sencillas. En ambos casos, la idea esencial es la misma: iniciar una sesión con nombre, ejecutar el trabajo, desconectarse con la combinación adecuada y volver más tarde con attach o -r.
Chuleta de comandos
| Acción | tmux |
screen |
|---|---|---|
| Crear sesión | tmux new -s trabajo |
screen -S trabajo |
| Listar sesiones | tmux ls |
screen -ls |
| Desconectar sin cerrar | Ctrl+b, después d | Ctrl+a, después d |
| Recuperar sesión | tmux attach -t trabajo |
screen -r trabajo |
| Crear ventana | Ctrl+b, después c | Ctrl+a, después c |
| Cerrar la shell actual | exit |
exit |
Una última recomendación
Antes de ejecutar un proceso importante, comprueba que estás dentro de la sesión persistente correcta y que sabes cómo recuperarla. Para tareas críticas, tmux y screen no sustituyen a la supervisión del proceso, al registro de salida (logs) ni a una estrategia de recuperación tras un reinicio.
Si administras servidores con frecuencia, merece la pena aprender primero las operaciones básicas de una de estas herramientas y utilizar nombres de sesión descriptivos, por ejemplo actualizacion, migracion-bd o compilacion.