¿Por qué utilizar Tmux?

En una terminal Linux tradicional, los usuarios sólo pueden trabajar en una tarea por sesión y no pueden continuar su progreso después de desconectarse. Tmux ayuda a resolver este problema proporcionando estas ventajas:

  • Gestión de tareas y sesiones: los administradores del sistema pueden crear varias sesiones para agrupar tareas. También pueden enlazar ventanas, replicando un proceso en otro para mantener la coherencia.

  • Multitarea: los usuarios pueden desconectarse de una sesión y volver a conectarse donde la dejaron. Esto permite una multitarea eficaz, ya que pueden trabajar en varias tareas a la vez.

  • Trabajo a distancia: el servidor tmux conserva todos los procesos en ejecución, incluso cuando el usuario se desconecta. Permite trabajar de forma fiable en un sistema remoto, como un VPS, sin preocuparse de la conexión SSH.

  • Procesos de larga duración: los procesos en tmux permanecerán activos hasta que el usuario los termine. Esta función es útil para tareas como registrar eventos o desplegar una aplicación.

Cómo instalar tmux

Antes de instalar tmux, actualice el repositorio de paquetes de su sistema:

apt update

A continuación, ejecute el siguiente comando para instalar tmux:

apt install tmux

Una vez finalizado el proceso compruebe si está bien configurado consultando la versión:

tmux -V

Si su terminal devuelve el número de versión, tmux está correctamente instalado.

En tmux, puede dividir el terminal en sesiones, ventanas y paneles. Son shells dedicados y aislados en los que puede ejecutar comandos o ejecutar procesos sin afectar a los demás.

La única diferencia es su estructura jerárquica, que proporciona modularidad para una organización eficaz de las tareas. Una sesión es una colección de ventanas, mientras que los paneles son subdivisiones de una única ventana.

Teclas y atajos de tmux

Los atajos de teclado de tmux son esenciales para la gestión de ventanas y paneles. Estas son 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.

Tenga 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á que pulsar Ctrl-b antes de la tecla que quieras utilizar, como se muestra arriba.

Cómo utilizar tmux

Veamos como utilizar el multiplexor para un flujo de trabajo eficiente desde la línea de comandos.

Iniciar una nueva sesión

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

tmux
tmux new
tmux new-session

Tenga en cuenta que debe ejecutar estos comandos en la ventana principal de la terminal. No es recomendable crear una nueva dentro de una sesión existente..

De manera predeterminada, una nueva sesión tmux utilizará un número ID para identificarse. Sin embargo, es posible 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, será adjuntado automáticamente a ella. Para desvincularse y abandonar el cliente tmux, pulse Ctrl-b + d. Para volver a vincularse a la sesión más reciente, utilice el comando tmux attach-session. También puede volver a entrar en un shell específico ingresando::

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

Alternativamente, vuelva a conectarse a una sesión de destino concreta utilizando su número de ID. Como tmux inicia el orden desde 0 de manera predeterminada, introduzca lo siguiente para acceder al primero:

tmux attach-session -t 0

Gestionar sesiones

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

tmux list-sessions
tmux ls

Su 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á a cuál está conectado actualmente.

Si está en una sesión de terminal virtual, puede cambiar a otra utilizando el siguiente comando. Al igual que para volver a conectarse, utilice el nombre o el número de ID:

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

Para terminar la sesión actual, introduzca exit o pulse Ctrl-d. Ejecute este comando si quiere cerrar una en concreto:

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

Atención

Utilice el atajo o comando de finalización con precaución, ya que la sesión tmux eliminada desaparece permanentemente.

Crear y navegar por las ventanas

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

Su ventana tmux actual está marcada con un asterisco (*). Puede 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, pulse Ctrl-b + 0 para volver a la primera ventana.

Renombrar y organizar ventanas

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

Asigne a las nuevas ventanas tmux un nombre personalizado para facilitar su identificación. Para ello, navegue hasta la que quiera renombrar y pulse Ctrl-b + : para entrar en el modo de comandos de tmux. A continuación, ejecute:

rename-window nombre-ventana

Sustituya nombre-ventana por el nombre que desee. Debería 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, puede dividir una ventana en varios paneles. Pulse Ctrl-b + ” para dividirla horizontalmente o verticalmente utilizando Ctrl-b + %.

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

Cerrar paneles

Para cerrar un panel, navegue hasta el que quiera cerrar y pulse Ctrl-b + &.

Atención

Se recomienda evitar este método, ya que la falta de un mensaje de confirmación lo hace propenso al borrado accidental.

En su lugar, pulse 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 Enter.

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

Personalizar tmux

Tmux permite crear un archivo de configuración al que puede 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 predeterminado de la cuenta. Para crearlo:

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:

touch /etc/tmux.conf

Se pueden cambiar muchos ajustes, incluyendo la apariencia y los accesos directos.

Por ejemplo, el siguiente fragmento cambiará las combinaciones de teclas predefinidas 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, puede 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

Para guardar los cambios, pulse Ctrl+X, Y y Enter.