TL;DR — Resumen Rápido

Domina la gestión de sesiones tmux para servidores remotos. Aprende sesiones persistentes, paneles, configuración, plugins y flujos de trabajo prácticos.

Si alguna vez has perdido horas de trabajo porque una conexión SSH se cayó a mitad de un despliegue, o te has visto gestionando una docena de ventanas de terminal para monitorear un servidor remoto, tmux es la herramienta que resuelve ambos problemas de forma permanente. Tmux (multiplexor de terminal) ejecuta un proceso servidor persistente en el host remoto: tus sesiones, paneles y comandos en ejecución sobreviven desconexiones, reinicios de tu máquina local y fallos de red. Esta guía cubre todo lo que necesitas: instalación, la jerarquía sesión-ventana-panel, cada combinación de teclas esencial, un ~/.tmux.conf listo para producción, el ecosistema de plugins, scripting de entornos automatizados y tres flujos de trabajo prácticos de DevOps.

Requisitos Previos

Antes de comenzar, necesitas:

  • Un sistema Linux o macOS con acceso a terminal (local o vía SSH)
  • Privilegios sudo para la instalación
  • Familiaridad básica con la línea de comandos
  • Un cliente SSH si trabajas con servidores remotos

¿Por Qué tmux? Los Casos de Uso Principales

Tres escenarios hacen a tmux indispensable para el trabajo en servidores remotos:

Sobrevivir desconexiones SSH. Cuando tu proveedor de internet falla o cierras la tapa de tu portátil, cualquier proceso ejecutándose en un terminal SSH simple muere. Con tmux, la sesión continúa en el servidor. Tu rsync, ansible-playbook o npm run build de larga duración sigue ejecutándose. Te reconectas y te adjuntas.

Flujos de trabajo con múltiples paneles. Un despliegue típico puede implicar ver logs en un panel, ejecutar scripts de migración en otro, y tener un shell listo para comandos de reversión en un tercero — todo en una sola conexión SSH.

Programación en pareja. Dos ingenieros pueden conectarse por SSH al mismo servidor y adjuntarse a la misma sesión tmux. Ambos ven e interactúan con el mismo terminal en tiempo real.


Instalación

Tmux está disponible en los repositorios predeterminados de todas las distribuciones principales.

Ubuntu/Debian:

sudo apt update && sudo apt install -y tmux

Fedora/RHEL/CentOS:

sudo dnf install -y tmux

Arch Linux:

sudo pacman -S tmux

macOS (Homebrew):

brew install tmux

Verificar:

tmux -V
# tmux 3.4

Cualquier versión 3.0 o posterior incluye todas las características de esta guía.


Conceptos Principales: Sesiones, Ventanas y Paneles

La jerarquía de tmux tiene tres niveles:

Sesión — El contenedor más externo. Un espacio de trabajo independiente y con nombre. Puedes tener muchas sesiones ejecutándose simultáneamente: trabajo, despliegue, monitor. Las sesiones persisten incluso cuando no estás conectado.

Ventana — Vive dentro de una sesión. Ocupa la pantalla completa, como una pestaña del navegador. Cada sesión puede tener múltiples ventanas. La barra de estado en la parte inferior muestra todas las ventanas.

Panel — Una subdivisión de una ventana. Divides una ventana horizontal o verticalmente para crear múltiples paneles, cada uno ejecutando su propio shell o comando.

servidor tmux (persistente en el host remoto)
  |
  +-- Sesión: "trabajo"
  |     +-- Ventana 0: "editor"
  |     |     +-- Panel 0: vim src/app.py
  |     |     +-- Panel 1: python -m pytest
  |     +-- Ventana 1: "logs"
  |           +-- Panel 0: tail -f /var/log/app.log
  |
  +-- Sesión: "despliegue"
        +-- Ventana 0: "principal"
              +-- Panel 0: ansible-playbook deploy.yml

La tecla prefijo le indica a tmux que la siguiente tecla es un comando. El prefijo predeterminado es Ctrl+b. Presionas Ctrl+b, sueltas y luego presionas la tecla de comando.


Combinaciones de Teclas Esenciales

Referencia completa para el uso diario de tmux (prefijo predeterminado Ctrl+b):

AcciónCombinación
Sesiones
Desconectarse de la sesiónCtrl+b d
Listar y cambiar sesionesCtrl+b s
Renombrar sesión actualCtrl+b $
Sesión anteriorCtrl+b (
Siguiente sesiónCtrl+b )
Ventanas
Crear nueva ventanaCtrl+b c
Renombrar ventana actualCtrl+b ,
Siguiente ventanaCtrl+b n
Ventana anteriorCtrl+b p
Ir a ventana por númeroCtrl+b 0-9
Listar y seleccionar ventanasCtrl+b w
Cerrar ventana actualCtrl+b &
Paneles
Dividir verticalmenteCtrl+b %
Dividir horizontalmenteCtrl+b "
Navegar entre panelesCtrl+b ←↑↓→
Ciclar entre panelesCtrl+b o
Mostrar números de panelCtrl+b q
Zoom del panel (pantalla completa)Ctrl+b z
Intercambiar con panel anteriorCtrl+b {
Intercambiar con panel siguienteCtrl+b }
Convertir panel en nueva ventanaCtrl+b !
Cerrar panel actualCtrl+b x
Ciclar disposicionesCtrl+b Space
Modo Copia
Entrar al modo copiaCtrl+b [
Pegar bufferCtrl+b ]
Salir del modo copiaq
Otros
Línea de comandosCtrl+b :
Listar todas las combinacionesCtrl+b ?
Recargar configuraciónCtrl+b r

Gestión de Sesiones

Crear Sesiones

# Nueva sesión sin nombre
tmux

# Nueva sesión con nombre (siempre preferir esto)
tmux new -s trabajo

# Sesión ejecutando un comando específico
tmux new -s logs "tail -f /var/log/syslog"

# Sesión en un directorio específico
tmux new -s api -c /var/www/api

Listar y Cambiar Sesiones

tmux ls

# Salida de ejemplo:
# despliegue: 2 ventanas (creada dom mar 22 09:15:22 2026)
# monitor: 1 ventanas (creada dom mar 22 08:30:15 2026) (adjunta)
# trabajo: 3 ventanas (creada dom mar 22 07:45:00 2026)

Desde dentro de tmux, presiona Ctrl+b s para obtener un árbol interactivo de todas las sesiones y ventanas.

Adjuntar y Desconectar

# Desconectarse (la sesión sigue ejecutándose): Ctrl+b d

# Adjuntarse a la sesión más reciente
tmux attach

# Adjuntarse a una sesión específica
tmux attach -t trabajo

# Adjuntarse y desconectar otros clientes
tmux attach -t trabajo -d

Renombrar y Eliminar Sesiones

# Renombrar sesión
tmux rename-session -t nombre-viejo nombre-nuevo

# Eliminar una sesión específica
tmux kill-session -t despliegue

# Eliminar todas excepto la actual
tmux kill-session -a

# Eliminar el servidor tmux (destruye todo)
tmux kill-server

Gestión de Ventanas

# Crear nueva ventana: Ctrl+b c
# Renombrar ventana actual: Ctrl+b ,
# Ir a ventana 0: Ctrl+b 0
# Siguiente/anterior: Ctrl+b n / Ctrl+b p
# Listar ventanas: Ctrl+b w
# Cerrar ventana: Ctrl+b &

Para mover una ventana a un índice específico (desde la línea de comandos Ctrl+b :):

move-window -t 3
swap-window -s 2 -t 4

Gestión de Paneles

Dividir

# División vertical (paneles lado a lado): Ctrl+b %
# División horizontal (paneles apilados): Ctrl+b "

Redimensionar Paneles

# Redimensión fina: Ctrl+b luego mantener Ctrl + flecha
# Redimensión desde la línea de comandos (Ctrl+b :):
resize-pane -D 10    # Bajar 10 líneas
resize-pane -U 10    # Subir 10 líneas
resize-pane -L 20    # Izquierda 20 columnas
resize-pane -R 20    # Derecha 20 columnas

Disposiciones de Paneles

Tmux tiene cinco disposiciones integradas que puedes ciclar con Ctrl+b Space:

  1. even-horizontal — paneles lado a lado, ancho igual
  2. even-vertical — paneles apilados, altura igual
  3. main-horizontal — un panel grande arriba, paneles más pequeños abajo
  4. main-vertical — un panel grande a la izquierda, paneles más pequeños a la derecha
  5. tiled — paneles en cuadrícula

Separar y Unir Paneles

# Convertir panel en su propia ventana: Ctrl+b !

# Unir un panel de otra ventana (desde Ctrl+b :)
join-pane -s 2.0    # Mover panel 0 de ventana 2 a la ventana actual
join-pane -t 3      # Mover panel actual a ventana 3

Modo Copia

El modo copia te da acceso completo al buffer de desplazamiento con búsqueda y selección de texto.

Entrar al Modo Copia y Navegar

# Entrar al modo copia
Ctrl+b [

# Navegar
Teclas de flecha    # Mover cursor
Re Pág / Av Pág     # Desplazarse por página
g                   # Ir al inicio del buffer
G                   # Ir al final del buffer

# Buscar
/término    # Buscar hacia adelante
?término    # Buscar hacia atrás
n           # Siguiente coincidencia
N           # Coincidencia anterior

# Salir
q

Modo Vi (Recomendado)

Agrega a ~/.tmux.conf:

setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel

Luego en modo copia:

v    # Iniciar selección
y    # Copiar selección
Ctrl+b ]    # Pegar

Configuración Personalizada ~/.tmux.conf

Configuración Completa Inicial

# ~/.tmux.conf

# Prefijo
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# Ratón
set -g mouse on

# Colores
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# Buffer de desplazamiento
set -g history-limit 50000

# Modo vi
setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# Indexación
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on

# Sin retraso de escape
set -sg escape-time 0

# Divisiones de panel
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

# Recargar
bind r source-file ~/.tmux.conf \; display-message "Configuración recargada"

# Barra de estado
set -g status-position bottom
set -g status-style "bg=#1a1b26,fg=#a9b1d6"
set -g status-left "#[fg=#06b6d4,bold] #S "
set -g status-left-length 30
set -g status-right "#[fg=#a9b1d6] %Y-%m-%d %H:%M "
setw -g window-status-format " #I:#W "
setw -g window-status-current-format "#[fg=#06b6d4,bold] #I:#W* "

Tmux Plugin Manager (tpm) y Plugins Esenciales

Instalar tpm

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Agrega al final de ~/.tmux.conf:

# Plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# Inicializar tpm (mantener esta línea al final)
run '~/.tmux/plugins/tpm/tpm'

Recarga la configuración y presiona Ctrl+a I (I mayúscula) para instalar los plugins.

tmux-resurrect

Guarda y restaura sesiones tmux después de reinicios del servidor.

# Guardar sesión
Ctrl+a Ctrl+s

# Restaurar sesión (después del reinicio)
Ctrl+a Ctrl+r

tmux-continuum

Guardado continuo automático de sesiones tmux cada 15 minutos. Funciona con tmux-resurrect.

# En ~/.tmux.conf
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'

Scripting de tmux

La interfaz de línea de comandos de tmux permite crear entornos de desarrollo completos mediante scripts.

Entorno de Desarrollo con 4 Paneles

#!/usr/bin/env bash
# entorno-dev.sh — iniciar sesión de desarrollo estándar

SESSION="dev"

tmux has-session -t "$SESSION" 2>/dev/null && tmux attach -t "$SESSION" && exit

tmux new-session -d -s "$SESSION" -n "editor" -c ~/proyectos/api
tmux split-window -h -t "$SESSION:editor" -c ~/proyectos/api
tmux split-window -v -t "$SESSION:editor.0" -c ~/proyectos/api
tmux split-window -v -t "$SESSION:editor.1" -c ~/proyectos/api
tmux select-layout -t "$SESSION:editor" tiled

tmux send-keys -t "$SESSION:editor.0" "vim ." Enter
tmux send-keys -t "$SESSION:editor.1" "npm run dev" Enter
tmux send-keys -t "$SESSION:editor.2" "npm run test -- --watch" Enter
tmux send-keys -t "$SESSION:editor.3" "git log --oneline -10" Enter

tmux new-window -t "$SESSION" -n "logs" -c ~/proyectos/api
tmux send-keys -t "$SESSION:logs" "tail -f logs/app.log" Enter

tmux select-window -t "$SESSION:editor"
tmux select-pane -t "$SESSION:editor.0"
tmux attach -t "$SESSION"

Tmux vs Screen vs Zellij vs Byobu

CaracterísticatmuxGNU ScreenZellijByobu
Divisiones verticalesIntegradasRequiere parcheIntegradasVía tmux/screen
Sintaxis de configuraciónLimpiaComplejaYAML/KDLtmux simplificado
Ecosistema de pluginsMaduro (tpm)MínimoCrecienteHereda de tmux
Soporte para scriptingExcelenteLimitadoModeradoLimitado
Soporte de ratónExcelenteLimitadoExcelenteExcelente
Persistencia tras reinicioCon tmux-resurrectNoNoCon tmux-resurrect
Desarrollo activoMínimoSí (Rust)Mínimo
Mejor paraUsuarios avanzados, DevOpsSistemas heredadosNuevos usuariosInicio rápido

Flujos de Trabajo Prácticos

Despliegue de Larga Duración

# Conectarse al servidor de producción
ssh deploy@prod-01.example.com

# Crear una sesión de despliegue
tmux new -s migracion

# Ejecutar la migración
./scripts/ejecutar-migraciones.sh

# Desconectarse de forma segura — la migración continúa
Ctrl+a d

# Desconectar SSH — la migración sigue ejecutándose en el servidor
exit

# Horas después, verificar
ssh deploy@prod-01.example.com
tmux attach -t migracion

Dashboard de Monitoreo del Servidor

+---------------------------+---------------------------+
|                           |                           |
|   Panel 0: htop           |   Panel 1: df -h (watch)  |
|                           |                           |
+---------------------------+---------------------------+
|                           |                           |
|   Panel 2: tail syslog    |   Panel 3: netstat (watch)|
|                           |                           |
+---------------------------+---------------------------+

Resumen

Tmux resuelve los dos problemas fundamentales del trabajo en servidores remotos: persistencia de sesiones y organización del terminal. Puntos clave:

  • Las sesiones sobreviven caídas de SSH — desconéctate con Ctrl+a d, reconéctate y usa tmux attach -t nombre
  • Jerarquía de tres niveles — las sesiones contienen ventanas, las ventanas contienen paneles
  • Tecla prefijoCtrl+b por defecto, Ctrl+a recomendado en ~/.tmux.conf
  • Zoom (Ctrl+b z) — maximiza temporalmente un panel sin perder la disposición
  • Modo copia (Ctrl+b [) — desplazamiento, búsqueda y copia sin salir de tmux
  • Plugins tpm — tmux-resurrect guarda sesiones tras reinicios, tmux-continuum guarda automáticamente
  • Automatiza todo — usa tmux new-session, split-window, send-keys y select-layout para entornos reproducibles

Artículos Relacionados