Cómo Instalar y Usar tmux en Ubuntu: Una Guía Completa 2025

LightNode
By LightNode ·

Introducción

tmux (Multiplexor de Terminal) es una herramienta poderosa de línea de comandos que mejora tu experiencia en la terminal en Ubuntu y otros sistemas similares a Unix. Te permite crear múltiples sesiones de terminal dentro de una sola ventana, lo que lo convierte en una herramienta invaluable para desarrolladores, administradores de sistemas y usuarios avanzados.

¿Qué es tmux?

tmux es un multiplexor de terminal que te permite:

  • Crear múltiples sesiones de terminal dentro de una sola ventana
  • Mantener programas en ejecución incluso después de desconectarte de SSH
  • Dividir tu ventana de terminal en múltiples paneles
  • Cambiar entre diferentes sesiones de terminal sin problemas
  • Compartir sesiones de terminal con otros usuarios

Beneficios de Usar tmux

Al trabajar en servidores Ubuntu o máquinas locales, tmux ofrece varias ventajas convincentes:

  1. Sesiones Persistentes: Tu trabajo sigue ejecutándose incluso si tu conexión SSH se interrumpe o cierras accidentalmente tu terminal. Simplemente vuelve a adjuntarte a tu sesión, y todo estará exactamente como lo dejaste.

  2. Productividad Mejorada: Trabaja con múltiples ventanas de terminal simultáneamente sin desordenar tu escritorio. Puedes cambiar fácilmente entre diferentes tareas mientras mantienes una visión clara de tu trabajo.

  3. Colaboración Mejorada: Comparte tus sesiones de terminal con miembros del equipo, lo que lo hace perfecto para la programación en pareja o la solución de problemas juntos.

Requisitos del Sistema

Antes de instalar tmux en Ubuntu, asegúrate de que tu sistema cumpla con estos requisitos mínimos:

  • Ubuntu 18.04 LTS o posterior
  • Familiaridad básica con la terminal
  • Privilegios de sistema suficientes (acceso sudo) para la instalación
  • Al menos 50 MB de espacio libre en disco

Métodos de Instalación

Hay dos métodos principales para instalar tmux en Ubuntu: usando el gestor de paquetes apt o compilando desde el código fuente. Vamos a explorar ambas opciones en detalle.

Usando el Gestor de Paquetes apt

La forma más sencilla y recomendada de instalar tmux es a través del gestor de paquetes de Ubuntu, apt. Aquí te mostramos cómo hacerlo:

# Actualizar la lista de paquetes
sudo apt update

# Instalar tmux
sudo apt install tmux -y

# Verificar la instalación
tmux -V

Este método maneja automáticamente las dependencias y proporciona una versión estable de tmux que ha sido probada con tu versión de Ubuntu.

Compilando desde el Código Fuente

Para los usuarios que necesitan las últimas características o versiones específicas, compilar desde el código fuente es una opción:

# Instalar dependencias requeridas
sudo apt install git automake build-essential libevent-dev ncurses-dev

# Clonar el código fuente
git clone https://github.com/tmux/tmux.git
cd tmux

# Compilar e instalar
sh autogen.sh
./configure
make
sudo make install

Comparación de Versiones

Compararemos los diferentes métodos de instalación:

  1. Instalación APT:

    • Pros: Fácil de instalar y actualizar, versión estable, gestión automática de dependencias
    • Contras: Puede no ser la versión más reciente
    • Versión actual en los repositorios de Ubuntu: Típicamente 1-2 versiones detrás de la más reciente
  2. Instalación desde el Código Fuente:

    • Pros: Acceso a las últimas características, capacidad de personalizar la compilación
    • Contras: Requiere gestión manual de dependencias, proceso de instalación más complejo
    • Última versión disponible: Siempre actualizada con el repositorio oficial

Después de la instalación, puedes verificar tu versión de tmux ejecutando:

tmux -V

Configuración Básica

El comportamiento de tmux se puede personalizar a través de su archivo de configuración y varias configuraciones. Vamos a explorar cómo configurar y personalizar tmux para adaptarlo a tus necesidades.

Ubicación del Archivo de Configuración

tmux busca su archivo de configuración en tu directorio personal:

# Crear tu archivo de configuración de tmux
touch ~/.tmux.conf

# Ábrelo con tu editor de texto favorito
nano ~/.tmux.conf

Configuraciones Esenciales

Aquí hay algunas configuraciones comúnmente utilizadas para mejorar tu experiencia con tmux:

# Cambiar la tecla de prefijo a Ctrl+a (más conveniente que el predeterminado Ctrl+b)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# Habilitar soporte para el mouse
set -g mouse on

# Comenzar la numeración de ventanas en 1 (en lugar de 0)
set -g base-index 1

# Establecer teclas de división de ventana más fáciles
bind-key v split-window -h
bind-key h split-window -v

# Establecer teclas de movimiento de ventana más fáciles
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Mejorar colores
set -g default-terminal "screen-256color"

# Establecer tamaño del búfer de desplazamiento
set -g history-limit 10000

Personalizando los Vínculos de Teclas

Puedes personalizar los vínculos de teclas para hacer que tmux sea más intuitivo y eficiente para tu flujo de trabajo:

  1. Sintaxis Básica de Vínculo de Teclas:

    bind-key key command
    bind key command
    
  2. Vínculos Comunes Personalizados:

    # Recargar el archivo de configuración
    bind r source-file ~/.tmux.conf \; display "¡Configuración recargada!"
    
    # Ciclo rápido de paneles
    unbind ^A
    bind ^A select-pane -t :.+
    
    # Comandos de división más intuitivos
    bind | split-window -h
    bind - split-window -v
    

Después de realizar cambios en tu archivo de configuración, puedes:

  • Reiniciar tmux para que los cambios surtan efecto
  • O recargar la configuración mientras tmux está en ejecución presionando prefijo + r (si has agregado el vínculo de recarga anterior)

Comenzando con tmux

Después de la instalación y la configuración básica, aprendamos a usar tmux de manera efectiva. Esta sección cubre los comandos y operaciones esenciales que necesitarás para el uso diario.

Iniciando Tu Primera Sesión

Aquí están los comandos básicos para iniciar y gestionar sesiones de tmux:

# Iniciar una nueva sesión
tmux

# Iniciar una nueva sesión nombrada
tmux new -s misesion

# Listar todas las sesiones
tmux ls

# Adjuntarse a una sesión existente
tmux attach -t misesion

# Desconectarse de la sesión actual (dentro de tmux)
# Presiona la tecla de prefijo (Ctrl+b o Ctrl+a) y luego d

Comandos y Atajos Básicos

Todos los comandos de tmux comienzan con una tecla de prefijo (predeterminada: Ctrl+b). Aquí hay atajos esenciales:

# Gestión de Sesiones
prefijo + d    # Desconectarse de la sesión
prefijo + s    # Listar sesiones
prefijo + $    # Renombrar la sesión actual

# Gestión de Ventanas
prefijo + c    # Crear nueva ventana
prefijo + n    # Mover a la siguiente ventana
prefijo + p    # Mover a la ventana anterior
prefijo + ,    # Renombrar la ventana actual
prefijo + w    # Listar ventanas

# Operaciones de Panel
prefijo + %    # Dividir el panel verticalmente
prefijo + "    # Dividir el panel horizontalmente
prefijo + o    # Cambiar al siguiente panel
prefijo + x    # Cerrar el panel actual

Gestión de Sesiones

Las sesiones son el nivel más alto de organización en tmux. Aquí te mostramos cómo gestionarlas de manera efectiva:

  1. Creando Sesiones:

    # Crear una nueva sesión con un nombre específico
    tmux new -s desarrollo
    
    # Crear una nueva sesión con un directorio de trabajo específico
    tmux new -s proyecto -c ~/projects/miproyecto
    
  2. Gestionando Múltiples Sesiones:

    # Cambiar entre sesiones
    tmux switch -t nombre_sesion
    
    # Matar una sesión específica
    tmux kill-session -t nombre_sesion
    
    # Matar todas las sesiones excepto la actual
    tmux kill-session -a
    
  3. Navegación de Sesiones:

    • Usa prefijo + ( para moverte a la sesión anterior
    • Usa prefijo + ) para moverte a la siguiente sesión
    • Usa prefijo + s para mostrar la lista de sesiones y seleccionar interactivamente

Características Avanzadas

tmux proporciona características poderosas para usuarios avanzados que pueden mejorar significativamente la productividad. Vamos a explorar algunas de estas capacidades avanzadas.

Gestión de Ventanas

Las ventanas en tmux funcionan de manera similar a las pestañas en un terminal moderno. Aquí hay algunas operaciones avanzadas de ventanas:

# Comandos Avanzados de Ventanas
prefijo + .    # Mover ventana a un número diferente
prefijo + f    # Encontrar ventana por nombre
prefijo + &    # Matar ventana
prefijo + 0-9  # Cambiar a ventana por número

# Intercambiar posiciones de ventanas
swap-window -s 2 -t 1  # Intercambiar ventanas 2 y 1
swap-window -t -1      # Mover la ventana actual a la izquierda

Operaciones de Panel

Los paneles te permiten dividir tu ventana en múltiples secciones. Aquí hay técnicas avanzadas de gestión de paneles:

  1. Redimensionando Paneles:

    # Usando prefijo seguido de:
    Alt + Teclas de flecha    # Redimensionar el panel en la dirección de la flecha
    
    # O mantener el prefijo y presionar:
    Ctrl + Teclas de flecha   # Redimensionar el panel en incrementos más grandes
    
  2. Navegación Avanzada de Paneles:

    prefijo + {    # Mover el panel actual a la izquierda
    prefijo + }    # Mover el panel actual a la derecha
    prefijo + z    # Alternar zoom del panel (maximizar/restaurar)
    prefijo + !    # Convertir el panel en una ventana
    
  3. Sincronizar Paneles:

    # Alternar sincronización de paneles (enviar comandos a todos los paneles)
    :setw synchronize-panes
    

Modo de Copia y Desplazamiento

El modo de copia te permite desplazarte, buscar y copiar texto:

  1. Entrando y Navegando en el Modo de Copia:

    prefijo + [           # Entrar en modo de copia
    q                    # Salir del modo de copia
    Espacio              # Comenzar selección
    Enter                # Copiar selección
    
    # Navegación en modo de copia:
    Teclas de flecha     # Mover el cursor
    Page Up/Down         # Desplazar página arriba/abajo
    g                    # Ir a la parte superior
    G                    # Ir a la parte inferior
    /                    # Buscar hacia adelante
    ?                    # Buscar hacia atrás
    n                    # Siguiente coincidencia de búsqueda
    N                    # Coincidencia de búsqueda anterior
    
  2. Operaciones Avanzadas de Copia:

    # Habilitar modo vi para mejores operaciones de copia
    set-window-option -g mode-keys vi
    
    # Vínculos de teclas personalizados para el modo de copia
    bind-key -T copy-mode-vi v send-keys -X begin-selection
    bind-key -T copy-mode-vi y send-keys -X copy-selection
    
  3. Integración con el Portapapeles del Sistema:

    # En Ubuntu, primero instala xclip:
    sudo apt install xclip
    
    # Agrega a .tmux.conf:
    bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
    

Estas características avanzadas se pueden combinar para crear flujos de trabajo poderosos. Por ejemplo, puedes:

  • Configurar múltiples paneles para monitorear diferentes servicios
  • Usar paneles sincronizados para ejecutar comandos en múltiples servidores simultáneamente
  • Crear diseños de ventanas complejos para diferentes tareas de desarrollo
  • Configurar copias de seguridad automáticas de sesiones de tmux

Mejores Prácticas

Adoptar buenas prácticas con tmux puede mejorar significativamente tu flujo de trabajo y productividad. Vamos a explorar algunos enfoques y consejos recomendados.

Flujos de Trabajo Comunes

  1. Configuración del Entorno de Desarrollo:

    # Crear una nueva sesión para desarrollo
    tmux new -s dev
    
    # Diseño de desarrollo común
    # Dividir ventana para editar y terminal
    tmux split-window -v -p 30  # 70% editor, 30% terminal
    
    # División adicional para ejecutar pruebas/servidores
    tmux split-window -h        # Dividir panel de terminal horizontalmente
    
  2. Configuración de Monitoreo de Servidores:

    # Crear sesión de monitoreo
    tmux new -s monitoreo
    
    # Dividir para diferentes tareas de monitoreo
    tmux split-window -h    # Dividir para estadísticas del sistema
    tmux split-window -v    # Dividir para registros
    
    # Ejecutar comandos de monitoreo
    # Primer panel: htop
    # Segundo panel: tail -f /var/log/syslog
    # Tercer panel: monitoreo de red
    

Consejos de Productividad

  1. Organización de Sesiones:

    • Usa nombres descriptivos para las sesiones (por ejemplo, cliente1, backend, docs)
    • Mantén tareas relacionadas en la misma sesión pero en diferentes ventanas
    • Usa convenciones de nombres de ventanas consistentes
    • Limpieza regular de sesiones para una mejor gestión
  2. Optimización del Rendimiento:

    # Agregar a .tmux.conf
    # Reducir el tiempo de escape
    set -sg escape-time 0
    
    # Aumentar la capacidad de respuesta
    set -g status-interval 1
    
    # Limitar el historial de sesiones para evitar problemas de memoria
    set -g history-limit 50000
    
  3. Scripts de Configuración Automatizados:

    #!/bin/bash
    # Guardar como dev-setup.sh
    
    # Crear nueva sesión en estado separado
    tmux new-session -d -s desarrollo
    
    # Configurar ventanas y paneles
    tmux rename-window -t desarrollo:1 'editor'
    tmux send-keys -t desarrollo:1 'vim' C-m
    
    tmux new-window -t desarrollo:2 -n 'servidor'
    tmux send-keys -t desarrollo:2 'npm run dev' C-m
    
    # Adjuntarse a la sesión
    tmux attach -t desarrollo
    

Integración con Otras Herramientas

  1. Integración con Control de Versiones:

    • Crea ventanas dedicadas para operaciones de git
    • Usa sincronización de paneles para gestionar múltiples repositorios
    • Configura verificación de estado automatizada
  2. Mejores Prácticas de Multiplexor de Terminal:

    # Agregar a .bashrc o .zshrc
    # Adjuntarse automáticamente a la sesión de tmux en SSH
    if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
        tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux
    fi
    
  3. Desarrollo Remoto:

    • Usa sesiones de tmux anidadas para trabajo local/remoto
    • Configura diferentes colores de barra de estado para sesiones locales/remotas
    • Configura diferentes teclas de prefijo para sesiones anidadas
# Para sesiones anidadas (.tmux.conf)
bind-key -n C-a send-prefix    # Para sesión interna
set -g status-bg colour40      # Verde para local
set -g status-bg colour160     # Rojo para remoto
Instalar Tmux en Ubuntu

Preguntas Frecuentes (FAQ)

P1: ¿Cómo salgo de tmux?

# Método 1: Salir completamente de tmux
exit                  # Escribir en la ventana de tmux
# o
prefijo + d           # Desconectarse de la sesión actual mientras la mantiene en ejecución

# Método 2: Forzar el cierre de todas las sesiones
tmux kill-server

P2: ¿Por qué no funciona mi desplazamiento con el mouse?

En versiones más recientes de tmux, necesitas habilitar el soporte para el mouse en tu archivo de configuración:

# Agregar a ~/.tmux.conf
set -g mouse on

P3: ¿Cómo copio texto en tmux?

  1. Usando el mouse (si el soporte para el mouse está habilitado):

    • Simplemente selecciona el texto
    • Usa los atajos del portapapeles del sistema
  2. Usando el teclado:

    prefijo + [        # Entrar en modo de copia
    Espacio            # Comenzar selección
    Enter              # Copiar selección
    prefijo + ]       # Pegar
    

P4: ¿Cómo recupero una sesión de tmux perdida?

# Listar todas las sesiones
tmux ls

# Volver a adjuntarse a la última sesión
tmux attach

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

P5: ¿Cómo puedo redimensionar paneles en tmux?

# Usar la tecla de prefijo + teclas de flecha para redimensionar paneles
prefijo + Arriba    # Expandir el panel actual hacia arriba
prefijo + Abajo     # Expandir el panel actual hacia abajo
prefijo + Izquierda  # Expandir el panel actual hacia la izquierda
prefijo + Derecha    # Expandir el panel actual hacia la derecha

P6: ¿Cómo aplico cambios de configuración?

# Método 1: Recargar dentro de tmux
prefijo + :
source-file ~/.tmux.conf

# Método 2: Recargar desde la terminal
tmux source-file ~/.tmux.conf

P7: ¿Cómo sincronizo la entrada entre paneles?

# En modo de comando de tmux
:setw synchronize-panes on

# Desactivar sincronización
:setw synchronize-panes off

P8: ¿Por qué mis colores no se muestran correctamente?

Agrega estas líneas a tu ~/.tmux.conf:

# Habilitar soporte de 256 colores
set -g default-terminal "screen-256color"

# Habilitar soporte de color verdadero
set-option -sa terminal-overrides ",xterm*:Tc"

P9: ¿Cómo guardo y restauro sesiones de tmux?

Puedes usar el plugin tmux-resurrect:

# Instalar el gestor de plugins de tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Agregar a .tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'

# Guardar sesiones
prefijo + Ctrl-s

# Restaurar sesiones
prefijo + Ctrl-r

P10: ¿Cómo cambio la apariencia de mi barra de estado?

# Agregar a ~/.tmux.conf
# Cambiar el fondo de la barra de estado
set -g status-bg black

# Cambiar el primer plano de la barra de estado
set -g status-fg white

# Cambiar el estilo de la ventana actual
set-window-option -g window-status-current-style bg=red,fg=white,bold

P11: ¿Cómo manejo sesiones de tmux anidadas?

# Agregar a .tmux.conf para usar un prefijo diferente para sesiones anidadas
bind-key -n C-a send-prefix    # Para sesión interna
set -g status-bg blue          # Color diferente para sesión anidada

P12: Mis teclas de función no funcionan en tmux?

# Agregar a ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on