Guía de inicio del gestor de terminales y sesiones tmux

Escrito por el .
gnu-linux planeta-codigo software
Comentarios

Las personas que usan de forma intensiva la terminal seguramente usando un mutiplexador de terminales como tmux su trabajo es facilitado. Tmux permite dividir una terminal en paneles, ventanas independiente y sesiones. Usando sus múltiples combinaciones de teclas se divide una terminal o una ventana de forma horizontal y vertical en paneles del tamaño que se desee pudiendo de esta forma visualizar al mismo tiempo varias terminales ubicadas en cada panel. También se puede crear una configuración para iniciar tmux con la misma disposición de paneles, ventanas y sesiones.

GNU
Linux

Las terminales gráficas como GNOME Terminal y KDE Konsole soportan pestañas e incluso desde un entorno gráfico en GNU/Linux están disponibles según la distribución varias terminales de texto accesibles con la combinación de teclas Ctrl+Alt+F3 y Ctrl+Alt+F4, con Ctrl+Alt+F2 se puede retornar a la interfaz gráfica. Sin embargo, ninguna de estas opciones permite dividir la misma terminal en varias ventanas o paneles para realizar operaciones y ver los resultados al mismo tiempo. Por otro lado cuando realizamos una sesión SSH y esta finaliza o termina abruptamente por un fallo en la conexión los procesos que se hayan iniciado desde ella son terminados lo que es especialmente grave si se está realizando una operación importante que puede ocasionar problemas.

Tmux es un multiplexador de terminales con soporte para iniciar sesiones. Con tmux en una misma terminal o sesión SSH es posible dividirla en varios paneles y ventanas. También permite iniciar sesiones y salir de ellas sin que los procesos que están corriendo sean terminados lo que permite iniciar una sesión por ejemplo en el trabajo, dejarla suspendida y luego continuarla desde otro equipo, ubicación o ser iniciada por una persona y continuada por otra.

Sesión de tmux en la terminal de GNOME

Tmux al ser un programa de la terminal todas sus opciones se realizan con el teclado, y no son pocas las combinaciones de teclas de su cheatsheet o chuleta. Algunas opciones básicas necesario conocer con son:

  • Dividir una terminal en paneles verticales y horizontales, Ctrl-b “, Ctrl-b %.
  • Cambiar entre paneles, Ctrl-b q 0..9.
  • Cambiar tamaño de un panel, Ctrl-b Up, Ctrl-b Down, Ctrl-b Left, Ctrl-b Right. Una panel se maximiza y minimiza con Ctrl-b z.
  • Cerrar un panel, Ctrl-b x.
  • Cerrar una sesión Ctrl-b :, kill-session.
  • Crear, moverse a otra ventana y cerrar una ventana, Ctrl-b c, Ctrl-b 0..9, Ctrl-b ,.
  • Hacer scroll en las ventanas, Ctrl-b [.

Para facilitar un poco su uso y poder cambiar entre paneles y hacer scroll si se usa en un entorno gráfico se pueden habilitar las funciones del ratón. Basta editar el archivo de configuración ~/.tmux.conf o introducir la opción con Ctrl-b :. En un entorno gráfico habilitar el soporte para el ratón cambia el comportamiento de copiar y pegar, para seleccionar texto hay que hacer uso de la tecla Shift a la vez que se selecciona el texto con el botón izquierdo del ratón.

1
set-option -g mouse on

Para automatizar la configuración inicial de tmux soporta un archivo para personalizarlo a través de un script con comandos. Así por ejemplo si siempre se desea una misma configuración de paneles y ventanas con la misma disposición es posible realizarlo con un script como el siguiente.

1
2
3
4
5
6
#!/usr/bin/env bash
tmux new-session -s "Session" -d
tmux set-option -g mouse on
tmux split-window -h
tmux split-window -v
tmux attach-session -t "Session"

En el manpage de tmux y los enlaces de referencia hay guías con una lista más completa que las operaciones básicas que incluyo en este artículo.