Un terminal multiplexer es una herramienta que permite gestionar múltiples terminales desde una única interfaz. Estas herramientas son especialmente útiles para administradores de sistemas y desarrolladores que necesitan ejecutar múltiples tareas en paralelo, acceder a sesiones remotas, y mantener sesiones activas durante desconexiones. Los dos terminal multiplexer más populares son tmux y GNU Screen. En este tutorial, nos enfocaremos en tmux debido a su popularidad y funcionalidad.
Para instalar tmux en una distribución basada en Debian (como Ubuntu), puedes usar el siguiente comando:
sudo apt update
sudo apt install tmux
En distribuciones basadas en Red Hat (como Fedora o CentOS):
sudo yum install tmux
Si tienes Homebrew instalado, puedes instalar tmux con:
brew install tmux
Para Windows, una opción popular es utilizar Cygwin o WSL (Windows Subsystem for Linux) para instalar y utilizar tmux.
Para iniciar tmux, simplemente abre tu terminal y escribe:
tmux
Esto crea una nueva sesión tmux. Para nombrar la sesión, puedes usar:
tmux new -s nombre_sesion
Uno de los mayores beneficios de tmux es la capacidad de desconectarse de una sesión y reconectarse más tarde sin perder el estado.
Para desconectarse de una sesión (sin cerrarla), usa la combinación de teclas Ctrl+b
, seguido de d
.
Para listar todas las sesiones activas, utiliza:
tmux ls
Para reconectarse a una sesión existente:
tmux attach -t nombre_sesion
Tmux permite dividir la pantalla en múltiples paneles, lo cual es extremadamente útil para monitorear y ejecutar varios procesos al mismo tiempo.
Para dividir la pantalla en paneles horizontales, usa la combinación de teclas Ctrl+b
, seguido de %
.
Para dividir la pantalla en paneles verticales, usa Ctrl+b
seguido de "
.
Para moverte entre paneles, usa Ctrl+b
seguido de una de las flechas de dirección (←
, →
, ↑
, ↓
).
Para redimensionar los paneles, primero presiona Ctrl+b
, luego :
para entrar en el modo de comandos, y usa:
resize-pane -L
resize-pane -R
resize-pane -U
resize-pane -D
Donde -L
, -R
, -U
, y -D
indican las direcciones (Left, Right, Up, Down) para redimensionar.
Para crear una nueva ventana dentro de la misma sesión, presiona Ctrl+b
, seguido de c
.
Para moverte entre ventanas, usa
seguido de Ctrl+b
n
(siguiente) o p
(anterior). También puedes moverte a una ventana específica con Ctrl+b seguido del número de la ventana.
Para cerrar la ventana actual, simplemente escribe exit
o usa Ctrl+d
.
El comportamiento de tmux se puede personalizar mediante el archivo de configuración .tmux.conf
en tu directorio home. Aquí tienes un ejemplo de configuración básica:
# Cambiar la tecla de prefijo a Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Habilitar 256 colores
set -g default-terminal "screen-256color"
# Dividir paneles más rápidamente
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Navegación más fácil entre paneles
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
Después de modificar el archivo .tmux.conf
, recarga la configuración con:
tmux source-file ~/.tmux.conf
Aquí hay una lista de algunos comandos útiles de tmux que pueden mejorar tu flujo de trabajo:
tmux kill-session -t nombre_sesion
: Cierra una sesión específica.
tmux kill-server
: Cierra todas las sesiones de tmux.
tmux rename-window nombre_ventana
: Renombra la ventana actual.
tmux new-session -d -s nombre_sesion
: Crea una nueva sesión en segundo plano.
Si trabajas con varias sesiones y ventanas de tmux, puedes automatizar su creación con un script de inicio. Por ejemplo, guarda el siguiente script como start_tmux.sh
:
#!/bin/bash
tmux new-session -d -s mi_sesion
tmux rename-window -t mi_sesion:0 'Editor'
tmux send-keys -t mi_sesion:0 'vim' C-m
tmux new-window -t mi_sesion:1 -n 'Servidor'
tmux send-keys -t mi_sesion:1 'cd /ruta/a/mi/proyecto && npm start' C-m
tmux new-window -t mi_sesion:2 -n 'Logs'
tmux send-keys -t mi_sesion:2 'tail -f /var/log/syslog' C-m
tmux select-window -t mi_sesion:0
tmux attach -t mi_sesion
Haz el script ejecutable:
chmod +x start_tmux.sh
Y ejecútalo:
./start_tmux.sh
Tmux es una herramienta poderosa que puede transformar tu flujo de trabajo en la terminal, especialmente si trabajas con múltiples tareas simultáneamente o en entornos remotos. La capacidad de dividir pantallas, gestionar sesiones y personalizar el entorno hace de tmux una herramienta indispensable para desarrolladores y administradores de sistemas.
Esperamos que este tutorial te haya proporcionado una comprensión sólida de tmux y cómo puedes utilizarlo para mejorar tu productividad en la terminal. ¡Feliz hacking!
Jorge García
Fullstack developer