¿Qué es tmux?
tmux, abreviatura de 'Terminal Multiplexer', permite dividir una pantalla de terminal en múltiples sesiones, ventanas (Window) y paneles (Pane) independientes. Es una herramienta esencial para mantener tareas en ejecución incluso si la conexión SSH se interrumpe, o para monitorear múltiples tareas simultáneamente.
3 conceptos clave
tmux tiene una estructura jerárquica de Sesión > Ventana > Panel.
- Sesión (Session): La unidad más grande. Un espacio de trabajo que contiene múltiples ventanas. (Ej: 'proyecto-A') Las tareas continúan ejecutándose en segundo plano incluso si te separas (detach) de la sesión.
- Ventana (Window): Similar a una pestaña dentro de una sesión. Una sesión puede tener múltiples ventanas.
- Panel (Pane): Una pequeña pantalla de terminal que divide una ventana en varias partes. (Ej: editar código arriba, ver logs abajo)
Tecla Prefijo (Prefix Key)
Es la combinación de teclas que se presiona primero para ejecutar comandos dentro de `tmux`. El valor predeterminado es Ctrl+b. (Ej: para crear una nueva ventana, presiona Ctrl+b, suelta y luego presiona c). En esta guía, esta tecla se indicará como [Prefix].
Comandos principales (Shell)
Comandos que se ingresan directamente en la terminal (Shell) para gestionar las sesiones de tmux.
1. Gestión de Sesiones
2. Ayuda/Versión
Comando generado:
Combina los comandos.
Descripción:
`tmux` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Atajos de teclado principales (dentro de tmux)
Atajos de teclado utilizados cuando estás conectado a una sesión de `tmux`. Primero presiona [Prefix] (Ctrl+b por defecto) y luego la siguiente tecla.
Gestión de Sesiones y Ventanas
- [Prefix] + d: Separarse de la sesión (Detach). Las tareas continúan ejecutándose en segundo plano.
- [Prefix] + c: Crear nueva ventana (Create)
- [Prefix] + w: Ver lista de ventanas (Windows)
- [Prefix] + n: Ir a la siguiente ventana (Next)
- [Prefix] + p: Ir a la ventana anterior (Previous)
- [Prefix] + [0-9]: Ir directamente a la ventana con el número correspondiente
- [Prefix] + ,: Cambiar el nombre de la ventana actual
- [Prefix] + &: Cerrar la ventana actual (requiere confirmación)
Gestión de Paneles
- [Prefix] + %: Dividir el panel actual verticalmente (izquierda/derecha)
- [Prefix] + ": Dividir el panel actual horizontalmente (arriba/abajo)
- [Prefix] + [teclas de dirección]: Mover el foco al panel en la dirección de la tecla de dirección
- [Prefix] + o: Moverse cíclicamente al siguiente panel
- [Prefix] + z: Maximizar/minimizar el panel actual (Zoom)
- [Prefix] + x: Cerrar el panel actual (requiere confirmación)
Ejemplos de Escenarios de Uso (Shell)
Flujo común para iniciar y gestionar tmux desde la terminal.
Crear y adjuntar a la sesión my-project
tmux new -s my-project
Separarse de una sesión (Detach)
Dentro de una sesión, presiona [Prefix] (Ctrl+b) y luego la tecla d para salir de la sesión. La tarea continuará ejecutándose.
Verificar la lista de sesiones en ejecución
tmux ls
Volver a adjuntar a la sesión my-project
tmux attach -t my-project
Terminar la sesión my-project forzosamente
tmux kill-session -t my-project
Instalación
tmux se puede instalar fácilmente a través del gestor de paquetes de la mayoría de las distribuciones de Linux.
Debian/Ubuntu
sudo apt update && sudo apt install -y tmux
RHEL/CentOS/Fedora
sudo dnf install -y tmux
Arch Linux
sudo pacman -S --needed tmux
openSUSE
sudo zypper install -y tmux
Consejos y Advertencias
Configuraciones/Hábitos Recomendados
- Inmediatamente después de conectarse por SSH: Al conectarse a un servidor remoto, crear una sesión como `tmux new -s work` permite continuar el trabajo de forma segura incluso si la conexión se interrumpe.
- Modo ratón: Agregar `set -g mouse on` a ~/.tmux.conf permite ajustar el tamaño de los paneles, seleccionar ventanas y desplazarse con el ratón.
- Archivo de configuración: Configura tus propios atajos de teclado o temas en ~/.tmux.conf.
- Cambiar Prefijo: Si Ctrl+b es incómodo, puedes cambiarlo a `set -g prefix C-a`.