El comando tmux en Linux: multiplexor de terminal avanzado

Introducción

En el mundo de la administración de sistemas y el desarrollo de software, trabajar con múltiples terminales simultáneamente puede mejorar significativamente la productividad. El comando tmux en Linux se presenta como una solución potente para multiplexar sesiones de terminal, permitiendo dividir la pantalla en paneles, crear ventanas y mantener sesiones activas incluso después de cerrar el cliente SSH. Este artículo explora desde los conceptos básicos hasta técnicas avanzadas para sacarle el máximo provecho a tmux.

¿Qué es tmux?

Tmux (terminal multiplexer) es un programa que permite acceder a varias terminales dentro de una sola ventana. Funciona como un servidor que gestiona sesiones, cada una compuesta por uno o más ventanas, y cada ventana puede dividirse en paneles. Esta arquitectura facilita la organización del trabajo, ya que puedes tener un panel para editar código, otro para ver logs y un tercero para ejecutar comandos, todo sin perder el contexto.

Instalación

En la mayoría de las distribuciones de Linux, tmux está disponible en los repositorios oficiales. En Ubuntu o Debian, basta con ejecutar:

  • sudo apt update && sudo apt install tmux
  • sudo dnf install tmux en Fedora
  • sudo pacman -S tmux en Arch Linux

Tras la instalación, puedes iniciar tmux simplemente tecleando tmux en la terminal. Si deseas que se inicie automáticamente al abrir una nueva sesión, agrega la línea if [ -z "$TMUX" ]; then tmux; fi al final de tu archivo ~/.bashrc o ~/.zshrc.

Comandos básicos

El prefijo predeterminado de tmux es Ctrl+b. Después de presionar el prefijo, puedes teclear diferentes comandos:

  • Ctrl+b c crea una nueva ventana.
  • Ctrl+b , permite renombrar la ventana actual.
  • Ctrl+b n y Ctrl+b p cambian a la siguiente o ventana anterior.
  • Ctrl+b % divide el panel actual en dos paneles verticales.
  • Ctrl+b " divide el panel actual en dos paneles horizontales.
  • Ctrl+b flecha (izquierda, derecha, arriba, abajo) mueve el foco entre paneles.
  • Ctrl+b z alterna el modo de zoom, ampliando el panel activo a pantalla completa.

Estos atajos forman la base para navegar y organizar tu entorno de trabajo dentro de tmux.

Gestión de paneles y ventanas

Además de los atajos de teclado, tmux permite ejecutar comandos directamente desde la línea de órdenes del prefijo. Por ejemplo, Ctrl+b : abre el prompt de tmux donde puedes escribir:

  • split-window -h para dividir verticalmente.
  • split-window -v para dividir horizontalmente.
  • resize-pane -L 5 para reducir el ancho del panel hacia la izquierda en 5 celdas.
  • select-layout even-horizontal para distribuir los paneles de forma uniforme.

Puedes crear sesiones nombradas con tmux new -s nombre_sesion, lo que resulta útil cuando trabajas en varios proyectos simultáneamente. Cada sesión mantiene su propio conjunto de ventanas y paneles, aislados del resto.

Sesiones y desplazamiento

Una de las características más valoradas de tmux es la capacidad de desconectar y volver a conectar una sesión sin perder el estado. Para desconectar (detach) una sesión, presiona Ctrl+b d. Para listar todas las sesiones activas, usa tmux ls. Para volver a conectar (attach) a una sesión específica, ejecuta tmux attach -t nombre_sesion. Incluso puedes compartir una sesión con otro usuario mediante tmux attach -t nombre_sesion -c /ruta/compartida, siempre que tengamos los permisos adecuados.

El desplazamiento dentro de un panel se realiza con Ctrl+b [, lo que entra en modo copia. Desde ahí, puedes usar las flechas o las teclas PageUp/PageDown para navegar por el historial, y presionar Enter para salir del modo copia.

Personalización

Tmux es altamente configurable mediante el archivo ~/.tmux.conf. Algunas personalizaciones comunes incluyen:

  • Cambiar el prefijo a Ctrl+a (similar a screen):
    unbind C-b
    set -g prefix C-a
    bind C-a send-prefix
  • Activar el mouse para cambiar de panel y redimensionar:
    set -g mouse on
  • Definir una barra de estado informativa:
    set -g status-bg '#444444'
    set -g status-fg '#ffffff'
    set -g status-left '#[bg=#0066ff]#[fg=#ffffff] #S '
  • Establecer atajos propios, por ejemplo, Ctrl+b + para crear un panel vertical:
    bind + split-window -h

Después de editar ~/.tmux.conf, recarga la configuración con Ctrl+b : seguido de source-file ~/.tmux.conf o simplemente reinicia tmux.

Conclusión

El comando tmux en Linux transforma la forma en que interactuamos con la terminal, ofreciendo una capa de organización y persistencia que resulta indispensable para administradores, desarrolladores y cualquier usuario que necesite manejar múltiples tareas simultáneamente. Desde la creación sencilla de paneles hasta la personalización profunda mediante archivos de configuración, tmux se adapta a flujos de trabajo diversos y mejora la eficiencia diaria. Si aún no lo has probado, dedica unos minutos a instalarlo y explorar sus atajos; pronto descubrirás por qué se considera uno de los multiplexores de terminal más avanzados y versátiles disponibles.