Introducción a Tmux
Tmux (Terminal Multiplexer) es una herramienta que permite administrar varias terminales dentro de una sola ventana. En Linux, donde la línea de comandos sigue siendo esencial, Tmux se vuelve indispensable para desarrolladores y administradores. A diferencia de abrir varias pestañas en un emulador tradicional, Tmux mantiene las sesiones activas incluso tras cerrar la conexión SSH, permitiendo retomar el trabajo exactamente donde se dejó. Su modelo basado en sesiones, ventanas y paneles brinda una flexibilidad que supera a la mayoría de los multiplexers disponibles. Además, su licencia libre y su bajo consumo de recursos lo hace adecuado tanto para servidores como para estaciones de trabajo.
Instalación
Instalar Tmux es sencillo en la mayoría de distribuciones gracias a los repositorios oficiales.
- Ubuntu y Debian: sudo apt update && sudo apt install tmux
- Fedora: sudo dnf install tmux
- Arch Linux: sudo pacman -S tmux
- Compilar desde el código fuente: clone el repositorio de GitHub y siga las instrucciones de compilación.
- Después de instalar, verifique la versión con tmux -V y comience a explorar sus características inmediatamente.
Conceptos básicos
Tmux organiza su entorno en tres niveles: sesiones, ventanas y paneles. Una sesión es el contenedor de alto nivel que puede persistir entre conexiones y contiene una o varias ventanas. Cada ventana actúa como una pestaña independiente y puede dividirse en uno o más paneles. Los paneles son regiones rectangulares dentro de una ventana que permiten ver e interactuar con distintas terminales simultáneamente. Esta jerarquía facilita agrupar tareas relacionadas, como tener una ventana para código, otra para registros y una tercera para depuración, todo dentro de la misma sesión.
Atajos de teclado
El prefijo predeterminado es Ctrl+b.
- Ctrl+b c: crear una nueva ventana
- Ctrl+b ": dividir el panel horizontalmente
- Ctrl+b %: dividir el panel verticalmente
- Ctrl+b + flechas: mover el foco entre paneles
- Ctrl+b z: hacer zoom en un panel
- Ctrl+b ?: mostrar la ayuda
Además, se pueden escribir comandos en la línea de órdenes de Tmux tecleando : después del prefijo, lo que permite crear sesiones, renombrar ventanas o cambiar diseños sin memorizar cada atajo.
Gestión de sesiones
Gestión de sesiones.
- tmux new -s nombre: crear nueva sesión
- tmux ls: listar sesiones
- tmux attach -t nombre: adjuntarse a una sesión existente
- tmux switch -t nombre: cambiar a otra sesión sin desasociar
- Ctrl+b $: renombrar sesión
- Ctrl+b ‘ o tmux kill-session -t nombre: cerrar sesión
Estas operaciones permiten mantener un entorno ordenado y recuperar el estado tras una desconexión inesperada.
Ventanas y paneles
Dentro de una sesión, las ventanas se gestionan con atajos específicos.
- Ctrl+b c: nueva ventana
- Ctrl+b p: ventana anterior
- Ctrl+b n: ventana siguiente
- Ctrl+b ,: renombrar ventana
- Ctrl+b &: cerrar ventana
- Ctrl+b ": división horizontal de panel
- Ctrl+b %: división vertical de panel
- Ctrl+b + flechas: navegar entre paneles
- Mantener Ctrl+b y pulsar flecha: redimensionar panel
- Ctrl+b z: alternar modo zoom (enfocar un solo panel)
Personalización con .tmux.conf
El archivo ~/.tmux.conf permite personalizar Tmux.
- Cambiar prefijo a Ctrl+a: set -g prefix C-a, unbind C-b, bind C-a send-prefix
- Activar mouse: set -g mouse on
- Personalizar barra de estado: set -g status-bg colour235, set -g status-fg colour136
- Aumentar historial: set -g history-limit 10000
- Habilitar modo vi: setw -g mode-keys vi
- Recargar configuración: Ctrl+b :source-file ~/.tmux.conf
Plugins con TPM
TPM (Tmux Plugin Manager) simplifica la instalación y actualización de extensiones.
- Instalar TPM: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
- Añadir al final de .tmux.conf: set -g @plugin ‘tmux-plugins/tpm’, set -g @plugin ‘tmux-plugins/tmux-sensible’, run ‘~/.tmux/plugins/tpm/tpm’
- Después de recargar, agregar plugins como tmux-resurrect (guardar/restaurar sesiones), tmux-yank (copiar al portapapeles), tmux-logging (registrar salida)
- Actualizar plugins: Ctrl+b U
Casos de uso prácticos
Tmux es ideal para diversos escenarios de trabajo.
- Trabajo remoto: sesión dentro de SSH sobrevive a caídas de red, permite continuar sin perder progreso
- Administración de sistemas: monitorear logs, ejecutar scripts y vigilar servicios en paneles separados
- Programación en pareja: dos desarrolladores comparten la misma sesión mediante tmux attach y ven los mismos paneles, facilitando revisión en tiempo real
- Tareas largas: compilaciones o descargas, se puede desconectar y volver más tarde sin perder el trabajo
Solución de problemas
Algunos problemas comunes y su solución.
- Atajos no responden: verificar el prefijo y recargar .tmux.conf
- Mouse no funciona: activar set -g mouse on y asegurar que el terminal soporta eventos de ratón
- Caracteres extraños en barra de estado: problema de locale, corregir con export LANG=en_US.UTF-8
- Tmux no inicia: revisar permisos del socket en /tmp/tmux-* y eliminar archivos corruptos
Integración con IDEs y herramientas
Muchos editores y IDEs se integran con Tmux para mejorar el flujo de desarrollo.
- VS Code: extensión ‘TMux’ permite crear y administrar paneles sin salir del editor
- Neovim: plugin ‘vim-tmux-navigator’ facilita moverse entre ventanas de Vim y paneles de Tmux con los mismos atajos
- Esta integración permite mantener el flujo de desarrollo sin cambiar de contexto, aprovechando la potencia de Tmux para ejecutar pruebas, servidores o logs mientras se codifica
Conclusión
Tmux transforma la forma de trabajar con la terminal en Linux, ofreciendo sesiones persistentes, ventanas y paneles flexibles y una amplia capacidad de personalización mediante archivos y plugins. Aprender sus atajos y adaptar su configuración se traduce en mayor productividad y resistencia frente a interrupciones. Para cualquier usuario que busque eficiencia en la línea de comandos, Tmux es una inversión valiosa que vale la pena dominar. Además, su comunidad activa sigue aportando mejoras y nuevos plugins que amplían sus capacidades cada día.


