TMUX

De La Wiki de KiVi

Introducción

Tmux es un multiplexor de terminal donde se pueden crear varias sesiones de shell en tu sistema, cada una ejecutando un proceso distinto. Mantiene las tareas ejecutándose en segundo plano, aceptando que los usuarios continúen su trabajo luego.

Tmux permite crear múltiples sesiones de terminal para una colaboración eficiente. Para mejorar tu flujo de trabajo, también puedes modificar la configuración mediante el archivo tmux.conf.

Instalación

Como la mayoría de programas básicos, este lo encontramos en los repositorios.

Para Fedora o distribuciones basadas en RHEL se puede ejecutar:

sudo dnf install tmux

O Ubuntu y distribuciones basadas en Debian:

sudo apt install tmux

Una vez instalado solo es necesario invocarlo con:

tmux

Comandos y atajos

Los atajos de teclado de tmux son esenciales para la gestión de ventanas y paneles. Aquí tienes algunas de las combinaciones de teclas más útiles y sus funciones:

  • Ctrl-b + d: salir de la sesión actual.
  • Ctrl-b + %: dividir una ventana en paneles superior e inferior.
  • Ctrl-b + “: dividir una ventana en dos paneles verticalmente.
  • Ctrl-b + flecha: mover a un panel diferente en una dirección.
  • Ctrl-b + x: cerrar el panel actual.
  • Ctrl-b + c: crear una nueva ventana.
  • Ctrl-b + n: pasar a la siguiente ventana según el número.
  • Ctrl-b + p: volver a la ventana anterior.
  • Ctrl-b + número ID: saltar a una ventana concreta utilizando el número ID.
  • Ctrl-b + :  abrir el modo línea de comandos.
  • Ctrl-b + ?: mostrar todos los atajos.
  • Ctrl-b + w: lista todas las ventanas de la sesión actual.

Ten en cuenta que los atajos tmux sólo funcionan dentro de una sesión tmux. Además, para que las combinaciones de teclas funcionen, tendrás que pulsar Ctrl-b antes de la tecla que quieras utilizar, como se muestra arriba.

NOTA - Si ya tenemos instalado byobu los atajos predeterminados son los suyos.

Sesiones

Para iniciar tmux y crear tu primera sesión, ejecuta uno de los siguientes comandos en tu ventana principal de terminal:

tmux

tmux new

tmux new-session

Ten en cuenta que debes ejecutar estos comandos en la ventana principal del terminal. Aunque puedes crear una nueva dentro de una sesión existente, no es recomendable y requiere desactivar la variable de entorno $TMUX. Por defecto, una nueva sesión tmux utilizará un número ID para identificarse. Sin embargo, puedes darle un nombre personalizado utilizando la opción -s:

tmux new-session -s [nombre]

Separar y unir sesiones

Después de crear una nueva sesión, se te adjuntará automáticamente a ella. Para desvincularte y abandonar el cliente tmux, pulsa Ctrl-b + d. Para volver a vincularte a la sesión más reciente, utiliza el comando tmux attach-session. También puedes volver a entrar en un shell específico introduciendo:

tmux attach-session -t [sesión-nombre]

Alternativamente, vuelve a conectarte a una sesión de destino concreta utilizando su número de ID. Como tmux inicia el orden desde 0 por defecto, introduce lo siguiente para acceder al primer intérprete de órdenes:

tmux attach-session -t 0

Gestionar sesiones

Para listar todas las sesiones activas, ejecuta cualquiera de los siguientes comandos tmux. Puedes hacerlo dentro del shell principal o virtual:

tmux list-sessions tmux ls

Tu interfaz de línea de comandos mostrará todas las sesiones con detalles como su nombre, ID, número de ventanas y fecha de creación. También verás a cuál estás conectado actualmente. Si estás en una sesión de terminal virtual, puedes cambiar a otra utilizando el siguiente comando. Al igual que para volver a conectarte, utiliza el nombre o el número de ID:

tmux switch -t [nombre-o-id-de-sesión]

Para terminar la sesión actual, introduce exit o pulsa Ctrl-d. Mientras tanto, ejecuta este comando si quieres cerrar una en concreto:

tmux kill-session -t [nombre-o-id-de-sesión]

Crear y navegar por las ventanas

Por defecto, tu nueva sesión tmux será una única ventana de terminal. Para dividirla en dos, pulsa Ctrl-b + c. La nueva ventana aparecerá en la barra de estado inferior con su nombre y número de identificación.

Tu ventana tmux actual está marcada con un asterisco (*). Puedes pasar a la siguiente ventana pulsando Ctrl-b + n o volver a la anterior utilizando Ctrl-b + p.

En lugar de alternar entre varias ventanas del terminal, puedes saltar directamente a una concreta pulsando Ctrl-b + ID numérico. Por ejemplo, pulsa Ctrl-b + 0 para volver a la primera ventana.

Renombrar y organizar ventanas

Por defecto, tmux creará una nueva ventana llamada bash o sh. Si tienes muchos procesos, distinguir entre ellos puede ser difícil, complicando la gestión de tareas.

Asigna a las nuevas ventanas tmux un nombre personalizado para facilitar su identificación. Para ello, navega hasta la que quieras renombrar y pulsa Ctrl-b + : para entrar en el modo de comandos de tmux. A continuación, ejecuta lo siguiente:

rename-window nombre-ventana

Sustituye nombre-ventana por el nombre que desees. Deberías ver cómo cambia la información de la nueva ventana en la barra de estado inferior de la sesión.

Dividir ventanas en paneles

Para organizar una tarea más específica, divide una ventana en varios paneles. Pulsa Ctrl-b + ” para dividirla horizontalmente o verticalmente utilizando Ctrl-b + %.

Puedes repetir los atajos de división de ventanas para dividir aún más los paneles en áreas de trabajo más pequeñas.

Navegar y cambiar el tamaño de los paneles

Para navegar entre los paneles, pulsa Ctrl-b + una tecla de flecha según la dirección que prefieras. Tu posición actual se resalta con un borde verde.

También puedes pasar al panel siguiente pulsando Ctrl-b + o, o volver al anterior utilizando el atajo de teclado Ctrl-b + ;.

Por defecto, al dividir una ventana se crearán dos paneles con tamaños idénticos. Para cambiar la dimensión, pulsa Ctrl-b y mantén pulsado Alt y el botón de flecha según la dirección para cambiar el tamaño.

Pulsa arriba y abajo para cambiar la altura. Mientras tanto, utiliza la tecla de flecha derecha o izquierda para ajustar la anchura.

Cerrar paneles

Para cerrar un panel, navega hasta el que quieras cerrar y pulsa Ctrl-b + &. Sin embargo, recomendamos evitar este método, ya que la falta de un mensaje de confirmación lo hace propenso al borrado accidental.

En su lugar, pulsa Ctrl-b + x para cerrar un panel de forma segura. Esto mostrará una ventana de verificación, que deberás confirmar pulsando Y, y pulsando Intro.

Terminar los paneles no afectará a las tareas de otras sesiones. Además, recuerda que este proceso es irreversible.

Personalizar tmux

Tmux te permite crear un archivo de configuración al que puedes añadir código, personalizando su aspecto y comportamiento. Según el ámbito, puede ser local o global.

El archivo local se aplica a un usuario concreto y se encuentra en el directorio bash por defecto de la cuenta. Ejecuta lo siguiente para crearlo:

sudo touch ~/.tmux.conf

Mientras tanto, la configuración global se aplica a todo el sistema y se encuentra en el directorio /etc. A continuación te explicamos cómo hacer una:

sudo touch /etc/tmux.conf

Un ejemplo de configuración que he leído es:

https://www.hostinger.es/tutoriales/tmux-config

Por ejemplo, el siguiente fragmento cambiará las combinaciones de teclas prefijadas por defecto de Ctrl-b a Ctrl -a:

# Change prefix from 'Ctrl+B' to 'Ctrl+A'

unbind C-b

set-option -g prefix C-a

bind-key C-a send-prefix

Además, puedes modificar el número de ID inicial. Por ejemplo, el siguiente código de configuración de tmux lo cambia de 0 a 1:

# Start counting pane and window number at 1

set -g base-index 1

setw -g pane-base-index 1