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
sudopara 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ón | Combinación |
|---|---|
| Sesiones | |
| Desconectarse de la sesión | Ctrl+b d |
| Listar y cambiar sesiones | Ctrl+b s |
| Renombrar sesión actual | Ctrl+b $ |
| Sesión anterior | Ctrl+b ( |
| Siguiente sesión | Ctrl+b ) |
| Ventanas | |
| Crear nueva ventana | Ctrl+b c |
| Renombrar ventana actual | Ctrl+b , |
| Siguiente ventana | Ctrl+b n |
| Ventana anterior | Ctrl+b p |
| Ir a ventana por número | Ctrl+b 0-9 |
| Listar y seleccionar ventanas | Ctrl+b w |
| Cerrar ventana actual | Ctrl+b & |
| Paneles | |
| Dividir verticalmente | Ctrl+b % |
| Dividir horizontalmente | Ctrl+b " |
| Navegar entre paneles | Ctrl+b ←↑↓→ |
| Ciclar entre paneles | Ctrl+b o |
| Mostrar números de panel | Ctrl+b q |
| Zoom del panel (pantalla completa) | Ctrl+b z |
| Intercambiar con panel anterior | Ctrl+b { |
| Intercambiar con panel siguiente | Ctrl+b } |
| Convertir panel en nueva ventana | Ctrl+b ! |
| Cerrar panel actual | Ctrl+b x |
| Ciclar disposiciones | Ctrl+b Space |
| Modo Copia | |
| Entrar al modo copia | Ctrl+b [ |
| Pegar buffer | Ctrl+b ] |
| Salir del modo copia | q |
| Otros | |
| Línea de comandos | Ctrl+b : |
| Listar todas las combinaciones | Ctrl+b ? |
| Recargar configuración | Ctrl+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:
even-horizontal— paneles lado a lado, ancho igualeven-vertical— paneles apilados, altura igualmain-horizontal— un panel grande arriba, paneles más pequeños abajomain-vertical— un panel grande a la izquierda, paneles más pequeños a la derechatiled— 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ística | tmux | GNU Screen | Zellij | Byobu |
|---|---|---|---|---|
| Divisiones verticales | Integradas | Requiere parche | Integradas | Vía tmux/screen |
| Sintaxis de configuración | Limpia | Compleja | YAML/KDL | tmux simplificado |
| Ecosistema de plugins | Maduro (tpm) | Mínimo | Creciente | Hereda de tmux |
| Soporte para scripting | Excelente | Limitado | Moderado | Limitado |
| Soporte de ratón | Excelente | Limitado | Excelente | Excelente |
| Persistencia tras reinicio | Con tmux-resurrect | No | No | Con tmux-resurrect |
| Desarrollo activo | Sí | Mínimo | Sí (Rust) | Mínimo |
| Mejor para | Usuarios avanzados, DevOps | Sistemas heredados | Nuevos usuarios | Inicio 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 usatmux attach -t nombre - Jerarquía de tres niveles — las sesiones contienen ventanas, las ventanas contienen paneles
- Tecla prefijo —
Ctrl+bpor defecto,Ctrl+arecomendado 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-keysyselect-layoutpara entornos reproducibles