Linux / Comando tmux: separar y volver a conectar sesiones de terminal

tmux es un multiplexor de terminal que gestiona varias ventanas y paneles en una sola terminal. Es útil cuando necesita continuar trabajando en la shell incluso si la conexión remota se interrumpe, ya que permite separar una sesión y luego volver a conectarla.

tmux tiene una jerarquía de sesiones, ventanas y paneles. La tecla de prefijo predeterminada es Ctrl+b, y después de presionar la tecla de prefijo, se ingresa la siguiente tecla. Las sesiones separadas se mantienen mientras el servidor tmux esté en funcionamiento, pero no se garantiza su persistencia hasta el reinicio del servidor o la finalización del servidor tmux.

Sintaxis básica

tmux [comando] [opciones]

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man tmux en el sistema actual.

Ejemplos de uso

Iniciar una sesión con nombre

Si se asigna un nombre, es más fácil distinguir qué tarea es más adelante.

tmux new -s work

Ver lista de sesiones

Busca las sesiones que permanecen después de la separación.

tmux ls

Reconectar una sesión existente

Se utiliza el nombre asignado al iniciarla.

tmux attach -t work

Separar la sesión y reconectarse

tmux permite separar el cliente de la sesión sin terminar los procesos de sus paneles. Ejecute primero tmux new -s demo; dentro de esa sesión, pulse Ctrl+b, suelte las teclas y después pulse d minúscula. Ya en el shell exterior, ejecute tmux ls y finalmente tmux attach -t demo para volver. Las tres órdenes del bloque siguiente se ejecutan en esos momentos distintos.

tmux new -s demo
tmux ls
tmux attach -t demo

Representación simplificada de una sesión separada en la lista; el formato literal, la fecha y los indicadores dependen de la versión:

demo: 1 windows (detached)

attach regresa a la pantalla de la sesión separada. Si ya existe una sesión con el mismo nombre, la creación de una nueva sesión puede fallar, así que primero verifique tmux ls. Es útil para mantener las tareas aunque la red se interrumpa en el servidor remoto, pero si el servidor se reinicia, la sesión normal de tmux también desaparecerá.

Opciones y formatos principales

Opción o formato Descripción
new -s nombre Crear una nueva sesión con nombre.
ls Enumerar las sesiones del servidor tmux actual.
attach -t nombre Conectarse a la sesión especificada.
detach Separar el cliente actual de la sesión.
split-window Dividir la ventana actual en paneles.

Precauciones al usar

En la combinación de teclas predeterminada, Ctrl+b, el siguiente d separa la sesión, c abre una nueva ventana, y % y " dividen el panel. No se presionan todas las teclas al mismo tiempo, sino que se presiona la siguiente tecla después de la tecla prefijo. Dado que algunas distribuciones no tienen tmux instalado, primero verifique si el paquete está disponible.

Preguntas frecuentes

¿Una sesión de tmux siempre sobrevive al cierre de la conexión SSH?

Si el servidor tmux y el sistema remoto siguen en ejecución, generalmente se puede volver a conectar. No es una función para restaurar hasta reinicios del servidor o hasta el cierre de la sesión.

Documentación oficial

Se pueden consultar las operaciones exactas de las opciones y las diferencias según la implementación en la documentación oficial de tmux.