Cómo Instalar y Usar tmux en Ubuntu: Una Guía Completa 2025
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:
-
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.
-
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.
-
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:
-
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
-
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:
-
Sintaxis Básica de Vínculo de Teclas:
bind-key key command bind key command
-
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:
-
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
-
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
-
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
- Usa
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:
-
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
-
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
-
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:
-
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
-
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
-
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
-
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
-
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
-
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
- Usa nombres descriptivos para las sesiones (por ejemplo,
-
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
-
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
-
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
-
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
-
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
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?
-
Usando el mouse (si el soporte para el mouse está habilitado):
- Simplemente selecciona el texto
- Usa los atajos del portapapeles del sistema
-
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