Si alguna vez has perdido trabajo porque una conexion SSH se interrumpio, o te encontraste manejando multiples ventanas de terminal para administrar un servidor remoto, tmux es la herramienta que resuelve ambos problemas. Tmux (abreviatura de “terminal multiplexer”) te permite crear sesiones de terminal persistentes que sobreviven a desconexiones, dividir una terminal en multiples paneles y cambiar entre espacios de trabajo completamente separados, todo desde una sola conexion SSH. Una vez que aprendas tmux, te preguntaras como pudiste trabajar sin el.
Esta guia cubre todo lo que necesitas para ser productivo con tmux: instalacion, conceptos fundamentales, gestion de sesiones y paneles, configuracion personalizada, modo de copia y flujos de trabajo para programacion en pareja.
Requisitos Previos
Antes de comenzar, necesitas:
- Un sistema Linux (Ubuntu, Debian, Fedora, CentOS, Arch o similar)
- Acceso a la terminal (local o via SSH)
- Familiaridad basica con la linea de comandos
- Una cuenta de usuario con privilegios
sudopara la instalacion
Que es Tmux?
Tmux es un multiplexor de terminal — un programa que te permite ejecutar multiples sesiones de terminal dentro de una sola ventana. Opera con un modelo cliente-servidor: el servidor tmux se ejecuta en segundo plano y gestiona todas las sesiones, mientras que el cliente tmux (tu terminal) se conecta para ver e interactuar con ellas.
Los beneficios clave de tmux son:
- Sesiones persistentes — Tu trabajo sobrevive a desconexiones SSH, caidas de red y cierres de terminal.
- Multiples ventanas — Cambia entre espacios de trabajo separados (como pestanas de navegador para tu terminal).
- Paneles divididos — Visualiza e interactua con multiples programas lado a lado en una ventana.
- Scriptable — Automatiza layouts y flujos de trabajo complejos mediante scripts de shell.
- Colaboracion remota — Multiples usuarios pueden conectarse a la misma sesion simultaneamente.
Tmux vs GNU Screen
Si has usado GNU Screen antes, asi es como se compara tmux:
| Caracteristica | Tmux | GNU Screen |
|---|---|---|
| Divisiones verticales | Integrado | Requiere parche o version nueva |
| Configuracion | Sintaxis limpia y moderna | Mas compleja |
| Scriptabilidad | Excelente | Limitada |
| Barra de estado | Altamente personalizable | Basica |
| Desarrollo activo | Si | Minimo |
| Por defecto en sistemas | Menos comun | Mas comun en sistemas antiguos |
| Licencia | ISC (permisiva) | GPL |
Ambas herramientas cumplen la misma tarea fundamental: sesiones de terminal persistentes y multiplexadas. Tmux es generalmente la mejor opcion para nuevos usuarios debido a su diseno mas limpio y comunidad activa.
Instalacion de Tmux
Tmux esta disponible en los repositorios predeterminados de todas las distribuciones Linux 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 (via Homebrew):
brew install tmux
Verifica la instalacion:
tmux -V
Deberias ver una salida como tmux 3.4 o similar. Cualquier version 3.0 o posterior incluye todas las funciones cubiertas en esta guia.
Conceptos Fundamentales: Sesiones, Ventanas y Paneles
Comprender la jerarquia de tmux es esencial antes de usarlo efectivamente. Hay tres niveles:
Sesion — El contenedor de nivel superior. Una sesion es un espacio de trabajo independiente que puede contener multiples ventanas. Puedes tener muchas sesiones ejecutandose simultaneamente (por ejemplo, una para desarrollo, una para despliegue, una para monitoreo).
Ventana — Una ventana vive dentro de una sesion y ocupa la pantalla completa (como una pestana en un navegador). Cada sesion puede tener multiples ventanas y puedes cambiar entre ellas.
Panel — Un panel es una subdivision de una ventana. Puedes dividir una ventana horizontal o verticalmente para crear multiples paneles, cada uno ejecutando su propio shell o comando.
servidor tmux
|
+-- Sesion: "trabajo"
| +-- Ventana 0: "editor"
| | +-- Panel 0: vim
| | +-- Panel 1: terminal
| +-- Ventana 1: "logs"
| +-- Panel 0: tail -f /var/log/syslog
|
+-- Sesion: "deploy"
+-- Ventana 0: "principal"
+-- Panel 0: ssh servidor-produccion
La tecla prefijo es como le indicas a tmux que estas a punto de emitir un comando en lugar de escribir texto. El prefijo predeterminado es Ctrl+b. Presionas Ctrl+b, sueltas ambas teclas y luego presionas la tecla del comando. Por ejemplo, Ctrl+b c significa: presiona Ctrl+b, suelta, luego presiona c para crear una nueva ventana.
Gestion de Sesiones
Las sesiones son la base de tmux. Estos son los comandos esenciales de sesion:
Crear Sesiones
# Iniciar una nueva sesion con nombre auto-generado
tmux
# Iniciar una nueva sesion con nombre (recomendado)
tmux new -s trabajo
# Iniciar una nueva sesion y ejecutar un comando especifico
tmux new -s logs "tail -f /var/log/syslog"
Siempre nombra tus sesiones. Cuando tienes multiples sesiones ejecutandose, los nombres facilitan identificarlas y cambiar entre ellas.
Desconectarse de una Sesion
Presiona Ctrl+b d para desconectarte de la sesion actual. La sesion sigue ejecutandose en segundo plano con todos los procesos intactos.
# Tambien puedes desconectarte desde la linea de comandos dentro de tmux
tmux detach
Listar Sesiones
# Listar todas las sesiones en ejecucion
tmux ls
# Ejemplo de salida:
# deploy: 1 windows (created Mon Jan 20 09:15:22 2026)
# trabajo: 3 windows (created Mon Jan 20 08:30:15 2026) (attached)
Reconectarse a una Sesion
# Conectarse a la sesion mas reciente
tmux attach
# Conectarse a una sesion con nombre especifico
tmux attach -t trabajo
# Forma abreviada
tmux a -t trabajo
Eliminar Sesiones
# Eliminar una sesion especifica
tmux kill-session -t deploy
# Eliminar todas las sesiones excepto la actual
tmux kill-session -a
# Eliminar el servidor tmux completamente (destruye todas las sesiones)
tmux kill-server
Cambiar Entre Sesiones
Desde dentro de tmux:
Ctrl+b s— Listar todas las sesiones y seleccionar una interactivamente.Ctrl+b (— Cambiar a la sesion anterior.Ctrl+b )— Cambiar a la siguiente sesion.
Gestion de Ventanas
Las ventanas son como pestanas dentro de una sesion. Cada ventana se ejecuta independientemente y ocupa toda el area de la terminal.
Crear y Navegar Ventanas
# Crear una nueva ventana
Ctrl+b c
# Renombrar la ventana actual
Ctrl+b ,
# Cambiar a ventana por numero
Ctrl+b 0 # Cambiar a ventana 0
Ctrl+b 1 # Cambiar a ventana 1
# Cambiar a la ventana siguiente/anterior
Ctrl+b n # Siguiente ventana
Ctrl+b p # Ventana anterior
# Listar todas las ventanas y seleccionar interactivamente
Ctrl+b w
Cerrar Ventanas
# Cerrar la ventana actual (cierra todos los paneles en ella)
Ctrl+b &
# O simplemente sale del shell ejecutandose en la ventana
exit
Consejo: La barra de estado en la parte inferior muestra todas las ventanas en la sesion actual. La ventana activa esta marcada con un asterisco (*). Renombrar ventanas con
Ctrl+b ,te ayuda a rastrear para que sirve cada ventana.
Gestion de Paneles
Los paneles te permiten dividir una ventana en multiples terminales. Esta es una de las funciones mas poderosas de tmux.
Dividir Paneles
# Dividir horizontalmente (arriba/abajo)
Ctrl+b "
# Dividir verticalmente (izquierda/derecha)
Ctrl+b %
Navegar Entre Paneles
# Moverse entre paneles usando teclas de flecha
Ctrl+b Up
Ctrl+b Down
Ctrl+b Left
Ctrl+b Right
# Ciclar entre paneles
Ctrl+b o
# Saltar a un panel especifico por numero
Ctrl+b q # Muestra numeros de panel, luego presiona el numero
Redimensionar Paneles
# Redimensionar en la direccion de la tecla de flecha
Ctrl+b Ctrl+Up
Ctrl+b Ctrl+Down
Ctrl+b Ctrl+Left
Ctrl+b Ctrl+Right
# O usar el comando resize-pane
# (dentro del prompt de comandos de tmux: Ctrl+b :)
resize-pane -D 5 # Abajo 5 lineas
resize-pane -U 5 # Arriba 5 lineas
resize-pane -L 10 # Izquierda 10 columnas
resize-pane -R 10 # Derecha 10 columnas
Layouts y Operaciones de Paneles
# Alternar entre layouts de paneles
Ctrl+b Space
# Intercambiar paneles
Ctrl+b { # Intercambiar con panel anterior
Ctrl+b } # Intercambiar con panel siguiente
# Convertir un panel en su propia ventana
Ctrl+b !
# Cerrar el panel actual
Ctrl+b x
# Alternar zoom de panel (pantalla completa de un solo panel)
Ctrl+b z
La funcion de zoom (Ctrl+b z) es particularmente util. Maximiza temporalmente un panel para llenar toda la ventana. Presiona Ctrl+b z de nuevo para restaurar el layout original.
Personalizar tmux.conf
Tmux lee su configuracion desde ~/.tmux.conf. Una configuracion bien ajustada mejora drasticamente la usabilidad. Crea el archivo si no existe:
touch ~/.tmux.conf
Cambiar la Tecla Prefijo
Muchos usuarios remapean el prefijo de Ctrl+b a Ctrl+a (que esta mas cerca de la fila inicio y coincide con GNU Screen):
# Cambiar prefijo de Ctrl+b a Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
Habilitar Soporte de Raton
# Habilitar soporte de raton
set -g mouse on
Mejorar Colores y Configuracion de Terminal
# Establecer terminal de 256 colores
set -g default-terminal "screen-256color"
# Habilitar soporte de color verdadero
set -ga terminal-overrides ",xterm-256color:Tc"
Personalizar la Barra de Estado
# Posicion de la barra de estado
set -g status-position bottom
# Colores de la barra de estado
set -g status-style "bg=#1a1b26,fg=#a9b1d6"
# Lado izquierdo: nombre de sesion
set -g status-left "#[fg=#06b6d4,bold] #S "
set -g status-left-length 30
# Lado derecho: fecha y hora
set -g status-right "#[fg=#a9b1d6] %Y-%m-%d %H:%M "
# Formato de estado de ventana
setw -g window-status-format " #I:#W "
setw -g window-status-current-format "#[fg=#06b6d4,bold] #I:#W "
Valores Predeterminados Sensatos
# Iniciar numeracion de ventanas en 1 (no 0)
set -g base-index 1
setw -g pane-base-index 1
# Renumerar ventanas cuando se cierra una
set -g renumber-windows on
# Aumentar buffer de desplazamiento
set -g history-limit 50000
# Reducir retraso de tiempo de escape (importante para usuarios de vim)
set -sg escape-time 0
# Recargar archivo de configuracion con Ctrl+a r
bind r source-file ~/.tmux.conf \; display-message "Config recargada"
Division de Paneles Mas Facil
# Dividir paneles usando | y -
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
Despues de editar ~/.tmux.conf, recargalo sin reiniciar tmux:
# Desde dentro de tmux, presiona Ctrl+b : y escribe:
source-file ~/.tmux.conf
# O si agregaste el binding anterior:
Ctrl+a r
Ejemplo Completo de tmux.conf
Aqui tienes una configuracion inicial completa combinando todo lo anterior:
# ~/.tmux.conf - Configuracion inicial
# Remapear prefijo a Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Soporte de raton
set -g mouse on
# Terminal y colores
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# Iniciar numeracion en 1
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# Buffer de desplazamiento
set -g history-limit 50000
# Sin retraso de escape
set -sg escape-time 0
# Division facil de paneles
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Recarga facil
bind r source-file ~/.tmux.conf \; display-message "Config 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-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 "
Modo de Copia y Desplazamiento
Por defecto, tmux captura la salida de la terminal en un buffer de desplazamiento. Puedes entrar en modo de copia para desplazarte por la salida anterior, buscar texto y copiar selecciones.
Entrar y Usar el Modo de Copia
# Entrar en modo de copia
Ctrl+b [
# Navegar en modo de copia
Arrow keys # Mover cursor
Page Up # Desplazar una pagina arriba
Page Down # Desplazar una pagina abajo
g # Ir al inicio del buffer
G # Ir al final del buffer
# Buscar en modo de copia
/ # Buscar hacia adelante
? # Buscar hacia atras
n # Siguiente coincidencia
N # Coincidencia anterior
# Salir del modo de copia
q
Copiar Texto
Con los atajos predeterminados estilo emacs:
# En modo de copia:
Ctrl+Space # Iniciar seleccion
Alt+w # Copiar seleccion al buffer de tmux
# Pegar el buffer
Ctrl+b ]
Para usar atajos estilo vi (recomendado para usuarios de vim), agrega a tu ~/.tmux.conf:
# Modo de copia vi
setw -g mode-keys vi
# Atajos de copia estilo 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
Copiar al Portapapeles del Sistema
Para integrar el buffer de copia de tmux con el portapapeles de tu sistema, instala xclip o xsel y agrega:
# Copiar al portapapeles del sistema (Linux con xclip)
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"
# Copiar al portapapeles del sistema (macOS)
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
Programacion en Pareja con Tmux
Uno de los usos mas practicos de tmux es la colaboracion en tiempo real. Cuando dos usuarios se conectan a la misma sesion de tmux, ambos ven e interactuan con la misma terminal simultaneamente.
Sesion Compartida Basica
# Usuario 1 crea una sesion en el servidor compartido
tmux new -s pairing
# Usuario 2 se conecta por SSH al mismo servidor y se adjunta
tmux attach -t pairing
Ambos usuarios ahora comparten la misma vista y pueden escribir comandos. Esto es efectivo pero significa que ambos usuarios estan bloqueados en la misma ventana y panel.
Ventanas Independientes con Sesion Compartida
Para mas flexibilidad, el Usuario 2 puede crear una sesion agrupada que comparte las mismas ventanas pero permite visualizacion independiente:
# Usuario 2 se une con una sesion agrupada
tmux new -s usuario2 -t pairing
Ahora ambos usuarios comparten el mismo conjunto de ventanas, pero cada uno puede ver una ventana diferente de forma independiente.
Mejores Practicas para Programacion en Pareja
- Nombra tus sesiones descriptivamente para que ambos usuarios sepan a cual sesion unirse.
- Comunica quien esta escribiendo. La entrada simultanea de ambos usuarios puede ser confusa.
- Usa la funcion de zoom (
Ctrl+b z) cuando un usuario necesite enfocarse en un panel especifico. - Establece un tamano de terminal mas grande — tmux redimensiona al cliente adjunto mas pequeno por defecto.
Tabla de Referencia de Atajos Esenciales
Aqui tienes una referencia completa de los atajos mas importantes de tmux (usando el prefijo predeterminado Ctrl+b):
| Atajo | Accion |
|---|---|
| Sesiones | |
tmux new -s nombre | Crear una nueva sesion con nombre |
tmux ls | Listar todas las sesiones |
tmux attach -t nombre | Adjuntarse a una sesion con nombre |
tmux kill-session -t nombre | Eliminar una sesion con nombre |
Ctrl+b d | Desconectarse de la sesion actual |
Ctrl+b s | Listar y cambiar sesiones |
Ctrl+b $ | Renombrar sesion actual |
| Ventanas | |
Ctrl+b c | Crear una nueva ventana |
Ctrl+b , | Renombrar ventana actual |
Ctrl+b n | Siguiente ventana |
Ctrl+b p | Ventana anterior |
Ctrl+b 0-9 | Cambiar a ventana por numero |
Ctrl+b w | Listar y seleccionar ventanas |
Ctrl+b & | Cerrar ventana actual |
| Paneles | |
Ctrl+b " | Dividir panel horizontalmente |
Ctrl+b % | Dividir panel verticalmente |
Ctrl+b Flecha | Navegar entre paneles |
Ctrl+b o | Ciclar entre paneles |
Ctrl+b z | Alternar zoom de panel |
Ctrl+b x | Cerrar panel actual |
Ctrl+b ! | Convertir panel en ventana |
Ctrl+b { / } | Intercambiar paneles |
Ctrl+b Space | Ciclar layouts de paneles |
| Modo de Copia | |
Ctrl+b [ | Entrar en modo de copia |
Ctrl+b ] | Pegar buffer |
q | Salir del modo de copia |
| Otros | |
Ctrl+b : | Abrir prompt de comandos |
Ctrl+b t | Mostrar reloj |
Ctrl+b ? | Listar todos los atajos de teclado |
Solucion de Problemas
Tmux No Encontrado Despues de la Instalacion
Si tmux no se encuentra despues de instalar, tu shell puede necesitar una actualizacion de ruta:
hash -r
# o iniciar una nueva sesion de shell
exec bash
Los Colores Se Ven Mal Dentro de Tmux
Asegurate de que tu terminal y tmux coincidan en el soporte de colores:
# Verificar la variable TERM de tu terminal
echo $TERM
# Agregar a ~/.tmux.conf
set -g default-terminal "screen-256color"
Sesiones de Tmux Anidadas
Si te conectas por SSH a un servidor que inicia tmux automaticamente, puedes terminar con tmux dentro de tmux. La sesion interna captura la tecla prefijo.
Solucion: Usa un prefijo diferente para la sesion interna, o envia la tecla prefijo a la sesion interna presionando el prefijo dos veces:
# Enviar prefijo a la sesion interna de tmux
Ctrl+b Ctrl+b
El Desplazamiento con Raton No Funciona
Si el desplazamiento con raton no funciona, asegurate de que el modo de raton este habilitado:
# En ~/.tmux.conf
set -g mouse on
La Sesion Desaparecio Despues del Reinicio
Las sesiones de tmux no sobreviven a un reinicio del sistema por defecto. Para persistir sesiones entre reinicios, usa el plugin tmux-resurrect:
# Instalar tmux plugin manager (TPM)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Agregar a ~/.tmux.conf
set -g @plugin 'tmux-plugins/tmux-resurrect'
run '~/.tmux/plugins/tpm/tpm'
# Guardar sesion: Ctrl+b Ctrl+s
# Restaurar sesion: Ctrl+b Ctrl+r
Integracion de Portapapeles No Funciona por SSH
Cuando usas tmux por SSH, copiar a tu portapapeles local requiere configuracion adicional. Usa SSH con reenvio X11 o configura secuencias de escape OSC 52:
# Habilitar portapapeles OSC 52 en tmux.conf
set -g set-clipboard on
Resumen
Tmux es una herramienta esencial para cualquiera que trabaje con servidores remotos o quiera un flujo de trabajo de terminal mas eficiente. Sus sesiones persistentes te protegen de caidas de conexion, su gestion de ventanas y paneles te permite organizar tareas complejas, y sus capacidades de scripting permiten entornos de desarrollo reproducibles.
Los puntos clave de esta guia:
- Las sesiones persisten incluso cuando tu conexion SSH se cae — simplemente ejecuta
tmux attachpara retomar. - Ventanas y paneles te permiten organizar multiples tareas dentro de una sola terminal.
- Configuracion personalizada via
~/.tmux.confhace que tmux se adapte perfectamente a tu flujo de trabajo. - El modo de copia te da capacidades completas de desplazamiento y busqueda.
- La programacion en pareja es tan simple como que dos usuarios se conecten a la misma sesion.
Comienza con lo basico: crea una sesion con nombre, divide algunos paneles, desconectate y reconectate. A medida que los atajos se conviertan en memoria muscular, te encontraras naturalmente construyendo flujos de trabajo mas complejos.
Tmux se complementa bien con una configuracion de servidor segura. Si aun no has endurecido tu configuracion SSH, lee nuestra guia sobre Endurecimiento SSH: 12 Pasos para Asegurar tu Servidor Linux. Para una vision general mas amplia de seguridad del servidor, consulta la Lista de Verificacion de Seguridad de Servidor Linux: 20 Pasos Esenciales.