TMUX — MULTIPLEXOR DE TERMINAL Cliente SSH Maquina local ssh user@srv tmux attach SSH servidor tmux (persistente en host remoto) Sesion: trabajo vim panel 0 logs shell Sesion: deploy deploy script Sesion: monitor htop Desconectado SSH caido? Sesiones vivas Reconectar Las sesiones persisten independientemente de las conexiones SSH

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 sudo para 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:

CaracteristicaTmuxGNU Screen
Divisiones verticalesIntegradoRequiere parche o version nueva
ConfiguracionSintaxis limpia y modernaMas compleja
ScriptabilidadExcelenteLimitada
Barra de estadoAltamente personalizableBasica
Desarrollo activoSiMinimo
Por defecto en sistemasMenos comunMas comun en sistemas antiguos
LicenciaISC (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 %
# 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):

AtajoAccion
Sesiones
tmux new -s nombreCrear una nueva sesion con nombre
tmux lsListar todas las sesiones
tmux attach -t nombreAdjuntarse a una sesion con nombre
tmux kill-session -t nombreEliminar una sesion con nombre
Ctrl+b dDesconectarse de la sesion actual
Ctrl+b sListar y cambiar sesiones
Ctrl+b $Renombrar sesion actual
Ventanas
Ctrl+b cCrear una nueva ventana
Ctrl+b ,Renombrar ventana actual
Ctrl+b nSiguiente ventana
Ctrl+b pVentana anterior
Ctrl+b 0-9Cambiar a ventana por numero
Ctrl+b wListar y seleccionar ventanas
Ctrl+b &Cerrar ventana actual
Paneles
Ctrl+b "Dividir panel horizontalmente
Ctrl+b %Dividir panel verticalmente
Ctrl+b FlechaNavegar entre paneles
Ctrl+b oCiclar entre paneles
Ctrl+b zAlternar zoom de panel
Ctrl+b xCerrar panel actual
Ctrl+b !Convertir panel en ventana
Ctrl+b { / }Intercambiar paneles
Ctrl+b SpaceCiclar layouts de paneles
Modo de Copia
Ctrl+b [Entrar en modo de copia
Ctrl+b ]Pegar buffer
qSalir del modo de copia
Otros
Ctrl+b :Abrir prompt de comandos
Ctrl+b tMostrar 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 attach para retomar.
  • Ventanas y paneles te permiten organizar multiples tareas dentro de una sola terminal.
  • Configuracion personalizada via ~/.tmux.conf hace 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.