Tmux

Tmux es un multiplexor de terminal que permite gestionar múltiples sesiones, ventanas y paneles dentro de una sola terminal. Es especialmente útil para trabajar en servidores remotos, desarrollo y flujos de trabajo complejos, ya que mantiene las sesiones activas incluso si se cierra la conexión.

Aquí tienes el resumen de los comandos esenciales de tmux para tu Ubuntu en WSL:

Guía Rápida de tmux

Gestión de Paneles (Splits)

  • División Horizontal (arriba/abajo): Ctrl + b"
  • División Vertical (izq/der): Ctrl + b%
  • Moverse entre paneles: Ctrl + b → Flechas de dirección
  • Cerrar panel: Ctrl + bx (y confirmar con y) o escribe exit.

Gestión de Ventanas (Pestañas)

  • Crear ventana nueva: Ctrl + bc
  • Siguiente / Anterior: Ctrl + bn / p
  • Ir a una específica: Ctrl + b → Número (0-9)
  • Lista interactiva: Ctrl + bw
  • Cerrar ventana: Ctrl + b&
  • Modo lectura (Scroll): Ctrl + b[
    • Usa las flechas o RePág/AvPág para subir y bajar.
    • Presiona q para salir del modo lectura.
  • Activar ratón (opcional): Añadir set -g mouse on al archivo ~/.tmux.conf.

Prefijo de comandos

Todos los comandos principales de Tmux parten del prefijo:

  • ctrl b
    • Activa el modo de comandos de Tmux
    • Después del prefijo se introduce la tecla de acción correspondiente

Sesiones

Una sesión agrupa ventanas y paneles. Permite mantener contextos de trabajo separados.

Comandos de sesión

  • tmux kill-session -t 1
    • Elimina la sesión con identificador 1
    • Útil para limpiar sesiones que ya no se utilizan

Ventanas

Las ventanas funcionan como pestañas dentro de una sesión y pueden contener uno o varios paneles.

Gestión de ventanas

  • ctrl b c
    • Crear una nueva ventana
  • ctrl b w
    • Listar y seleccionar ventanas disponibles
  • ctrl b n
    • Cambiar a la ventana siguiente
  • ctrl b p
    • Cambiar a la ventana anterior
  • ctrl b ,
    • Renombrar la ventana actual para identificar mejor su propósito
  • ctrl b x
    • Cerrar la ventana o panel actual previa confirmación

Paneles

Los paneles permiten dividir una ventana en múltiples áreas de trabajo simultáneas.

División de paneles

  • ctrl b "
    • Dividir el panel de manera horizontal
  • ctrl b %
    • Dividir el panel de manera vertical
  • ctrl b ←
    • Moverse al panel de la izquierda
  • ctrl b →
    • Moverse al panel de la derecha
  • ctrl b ↑
    • Moverse al panel superior
  • ctrl b ↓
    • Moverse al panel inferior

Uso avanzado de paneles

  • Los paneles pueden redimensionarse para priorizar una tarea
  • Cada panel puede ejecutar un proceso distinto de forma independiente
  • Es posible cerrar paneles sin afectar a los demás

Flujo de trabajo recomendado

  • Usar sesiones para proyectos distintos
  • Nombrar ventanas según su función (editor, servidor, logs, pruebas)
  • Dividir paneles para observar procesos en paralelo
  • Mantener sesiones persistentes para trabajo remoto o de larga duración

Tmux

Configuración y personalización

Tmux permite una personalización profunda mediante su archivo de configuración, lo que optimiza el flujo de trabajo según las necesidades del usuario.

Archivo de configuración

  • ~/.tmux.conf
    • Archivo principal de configuración
    • Se carga automáticamente al iniciar Tmux
    • Permite redefinir atajos, estilos y comportamiento

Recargar configuración

  • ctrl b :source-file ~/.tmux.conf
    • Aplica los cambios sin reiniciar la sesión
    • Útil durante ajustes iterativos

Atajos personalizados

La redefinición de atajos mejora la ergonomía y velocidad de uso.

Cambiar prefijo

  • Es común cambiar ctrl b por otro prefijo más accesible
  • Reduce conflictos con atajos del sistema o del editor

Bindings comunes

  • Atajos para dividir paneles sin usar el prefijo estándar
  • Atajos para redimensionar paneles de forma precisa
  • Atajos para mover paneles entre ventanas

Modos de Tmux

Tmux dispone de distintos modos que cambian el comportamiento de las teclas.

Modo copia

Permite desplazarse y copiar texto del buffer de la terminal.

Activación

  • ctrl b [
    • Entra en modo copia

Acciones

  • Navegación tipo vi o emacs según configuración
  • Selección de texto para copiar al buffer interno
  • Pegado posterior en cualquier panel o ventana

Pegado de buffer

  • ctrl b ]
    • Pega el último contenido copiado

Buffers

Los buffers almacenan texto copiado dentro de Tmux.

Gestión de buffers

  • Listar buffers existentes
  • Eliminar buffers antiguos
  • Usar buffers para mover texto entre paneles y ventanas

Layouts

Los layouts definen la disposición de los paneles dentro de una ventana.

Cambiar layout

  • Ciclar entre layouts predefinidos
    • Distribución uniforme
    • Panel principal con secundarios
    • División en cuadrícula

Ventajas

  • Reorganización rápida del espacio de trabajo
  • Adaptación dinámica a tareas puntuales

Sincronización de paneles

Permite enviar la misma entrada a varios paneles simultáneamente.

Uso práctico

  • Ejecutar el mismo comando en múltiples servidores
  • Comparar salidas en paralelo
  • Automatizar tareas repetitivas

Sesiones persistentes

Uno de los puntos fuertes de Tmux es la persistencia del estado.

Desacoplar sesión

  • Permite cerrar la terminal sin finalizar procesos
  • Ideal para conexiones SSH inestables

Reanudar sesión

  • Reconectar exactamente al estado anterior
  • Mantiene ventanas, paneles y procesos activos

Integración con SSH

Tmux se utiliza frecuentemente junto a conexiones remotas.

Beneficios

  • Previene pérdida de trabajo por desconexiones
  • Centraliza múltiples servidores en una sola interfaz
  • Mejora la productividad en administración remota

Integración con editores

Tmux se integra bien con editores como Vim o Neovim.

Ventajas

  • Navegación coherente entre paneles y splits del editor
  • Uso de atajos unificados
  • Flujos de trabajo más fluidos en terminal

Plugins

La funcionalidad de Tmux puede ampliarse mediante plugins.

Gestores de plugins

  • Tmux Plugin Manager
    • Facilita instalación y actualización de plugins
    • Automatiza carga de extensiones

Casos de uso

  • Temas visuales
  • Indicadores de estado avanzados
  • Integración con git, batería y red

Casos de uso avanzados

  • Desarrollo backend con múltiples servicios
  • Monitoreo de logs en tiempo real
  • Automatización de despliegues
  • Trabajo colaborativo compartiendo sesiones

Buenas prácticas

  • Mantener nombres claros para sesiones y ventanas
  • Evitar demasiados paneles en una sola ventana
  • Usar layouts para reorganización rápida
  • Versionar el archivo ~/.tmux.conf
  • Combinar Tmux con aliases de shell para mayor eficiencia