tmux: cómo funciona el multiplexor de terminal

El multiplexor de terminal tmux te permite trabajar en multitarea mediante la línea de comando de tu distribución preferida de Linux. Puedes utilizar tmux para crear, editar, separar o fusionar varias sesiones simultáneamente en una terminal.

El sistema operativo Linux es uno de los más populares, junto a Windows y macOS; es open source y, por tanto, gratuito. El control y la administración de una de las muchas distribuciones de Linux, como Ubuntu, Debian o Linux Mint, se realiza a menudo a través de la línea de comandos, es decir, mediante la terminal y los comandos de Linux. Para utilizar, gestionar y configurar sesiones de consola en paralelo en una terminal, se utilizan los llamados multiplexores de terminal, como GNU Screen o tmux.

¡Tu pack de hosting con asesor personal!

Confía en el alojamiento web rápido, barato, escalable y seguro de IONOS.

Dominio gratis
SSL
Asistencia 24/7

¿Qué es tmux?

Nicholas Marriott desarrolló ell multiplexor de terminal de código abierto tmux, que se publicó por primera vez en 2007. En sus funciones, tmux es similar al multiplexor de terminal GNU Screen, pues ambos permiten trabajar con varias ventanas de consola en una sesión de terminal y dividirlas o separarlas en diferentes paneles o áreas de ventanas mientras escribes un shell script. También se puede usar en paralelo e idealmente por SSH (Secure Shell), para colaborar con otros usuarios en sesiones remotas.

A través de tmux escribes comandos en la terminal para controlar y editar tu distribución de Linux. Entre ellos se encuentran, por ejemplo, los comandos para conceder permisos de directorio con chmod o el comando “shutdown -h” para apagar Linux con facilidad. Aunque puedes utilizar tmux en Ubuntu, Debian u otras distribuciones de Linux sin ningún problema, tmux solo se puede utilizar en Windows a través de Windows Subsystem for Linux (WSL), por ejemplo WSL2 (Windows Subsystem for Linux 2). Con WSL2, tienes acceso a las aplicaciones y herramientas de Linux en Windows.

Consejo

¿Buscas el alojamiento adecuado para tus proyectos de Linux? Usa Linux Hosting de IONOS con tarifas y rendimiento escalable flexibles, SSL, protección DDoS y HTTP/2.

Explicación del funcionamiento de tmux

Tras la instalación a través de los repositorios oficiales de paquetes de Linux, tmux puede iniciarse simplemente a través de la terminal con el comando “tmux”. El multiplexor de terminal se controla a través de una consola normal. Los requisitos previos para utilizar tmux son:

  • Distribución de Linux o un sistema basado en Linux
  • Perfil de usuario con privilegios root
  • Acceso a la terminal y a los comandos de la línea de comandos/atajos de teclado

Los aspectos más importantes del funcionamiento de tmux son las sesiones de terminal, las ventanas y los paneles:

  • Sesiones de terminal: en las sesiones de terminal se ejecutan tareas y comandos, y se maneja la distribución de Linux.
  • Ventanas: si deseas realizar tareas específicas por separado dentro de una sesión, puedes utilizar tmux para trabajar en paralelo con varias ventanas en una sesión al mismo tiempo.
  • Paneles: también puedes dividir estas ventanas en diferentes áreas (paneles o “Panes”), para ejecutar, por ejemplo, logs de errores mientras realizas otras tareas en la misma ventana.

Para trabajar con tmux se usan los comandos Tmux de la línea de comandos (tmux commands) y los atajos de teclado. A continuación, presentamos los comandos y atajos de teclado más importantes.

Comandos tmux

Instalación de tmux en Linux a través del gestor de paquetes oficial de Linux:

apt-get install tmux

Instalación de tmux en Ubuntu y Debian:

sudo apt-get install tmux

Ejecutar tmux

tmux

Iniciar y nombrar una nueva sesión tmux

tmux new -s [nombre de la sesión]

Finalizar la sesión de tmux

exit

Reconectar la última sesión de tmux

tmux a -t [nombre de la sesión]

o

tmux a #

Mostrar todas las sesiones de tmux (mostrar el nombre de la sesión y el número de ventanas abiertas)

tmux 1s

Ajuste de paneles con [Ctrl] + [B] + [:] y redimensionar los paneles

Si divides una ventana en paneles, tienes la opción de configurarlos como prefieras. Para ello, pulsa primero la combinación de teclas [Ctrl] + [B] + [:] y ya podrás personalizar los paneles con los siguientes comandos:

  • resize-pane -D: mueve la línea divisoria entre paneles hacia abajo.
  • resize-pane -U: mueve la línea divisoria entre paneles hacia arriba.
  • resize-pane -R: mueve la línea divisoria entre paneles a la derecha.
  • resize-pane -L: mueve la línea divisoria entre paneles a la izquierda. También puedes mover la línea de separación según de las unidades de media, celdas, predefinidas de la siguiente manera; sin embargo, esto afecta a todos los paneles de la ventana:
  • resize-pane -U 10: mover la línea divisoria 10 celdas hacia arriba.
  • resize-pane -t 2 -R 5: mover la línea divisoria 5 celdas a la derecha.

Maximizar y minimizar el panel (antes la combinación de teclas [Ctrl] + [B])

+ [:])

resize-pane -Z

Separar (“detach”) de la sesión existente (con el nombre de la sesión, si procede)

tmux detach

Unir (“attach”) a la sesión existente (con el nombre de la sesión, si procede)

tmux attach

Combinaciones de teclas tmux

Además del control y la ejecución a través de comandos de línea de comandos y scripts, tmux se controla a través de atajos de teclado. Para iniciar el control a través de los atajos de teclado, pulsa [Ctrl] + [B]. Todas las entradas posteriores desencadenan la acción deseada. Los atajos más importantes son:

Comandos para las sesiones:

  • S: muestras todas las sesiones y cambia de una sesión a otra
  • $: cambiar el nombre de la sesión actual
  • D: separa la sesión (“detach”) y la mueve a segundo plano
  • ?: muestra las combinaciones de teclas activas (área de ayuda abierta)

Comandos para las ventanas:

  • C: crear/abrir una nueva ventana
  • W: listar todas las ventanas existentes, cambiar de ventana
  • L: cambiar a la última ventana utilizada
  • P: pasar a la ventana cronológicamente anterior
  • N: pasar a la ventana cronológicamente siguiente
  • ,: cambiar el nombre de la ventana actual
  • &: cerrar la ventana actual (confirmar con “y”)
  • 1, 2, 3, (...): saltar al número de ventana X
  • [: utilizar el modo de desplazamiento (desplazarse en la ventana actual con las teclas de dirección)

Comandos para paneles:

  • X: cerrar el panel actual
  • %: dividir verticalmente el panel actual (se crea un segundo panel en la ventana)
  • ": dividir el panel actual horizontalmente (se crea un segundo panel en la ventana)
  • Teclas de desplazamiento (izquierda, derecha, arriba, abajo): navegar entre los paneles
  • H: saltar al panel izquierdo
  • I: saltar al panel de la derecha
  • J: saltar al panel inferior
  • K: saltar al panel superior
  • P: mostrar el número de paneles
  • O: navegar cronológicamente por todos los paneles
  • }: cambiar el panel actual por los siguientes
  • {: intercambiar el panel actual con el anterior
  • Barra espaciadora: cambiar entre las divisiones de los paneles
  • !: separar el panel actual y abrirlo en una nueva ventana

Instalar y utilizar tmux: paso a paso

Sigue estos pasos para instalar y utilizar tmux:

Paso 1. Instala el multiplexor de terminales desde los repositorios oficiales de Linux mediante el comando de instalación de paquetes: apt-get install tmux

En Debian o Ubuntu tienes que utilizar el complemento “sudo”: sudo apt- get install tmux

Paso 2. Ejecuta tmux introduciendo “tmux” en la terminal. Cuando tmux se inicie, verás una notificación de estado en la parte inferior que consiste en el nombre del host (nombre de usuario@servidor del host), la hora y la fecha. En la parte inferior izquierda verás el nombre de la sesión (si tiene nombre) y el número de ventanas en el siguiente formato “[0] 0:bash*”. La primera ventana está etiquetada como “0”. Si un proceso se está ejecutando en la ventana, se muestra después del 0 (por ejemplo “0:bash*”).

Paso 3. Controla tmux mediante comandos de línea de comandos y atajos de teclado. Lanza cada comando o atajo de teclado con [Ctrl] + [B] o, al configurar paneles, con [Ctrl] + [B] + [:] para activar los controles de tmux.

Paso 4. Inicia una nueva sesión con un nuevo nombre utilizando el comando “tmux new -s”. Después de “-s” escribe el nombre deseado para la sesión. Si prefieres iniciar una sesión sin nombre de sesión, teclea solo “tmux”.

Paso 5. Para finalizar una sesión, usa el comando “exit” o el atajo de teclado [Ctrl] + [D].

Paso 6. Para abrir una nueva ventana en la sesión, pulsa [C]. Para iniciar una nueva segunda sesión en paralelo con la primera, teclea de nuevo el comando “tmux new -s [nombre de la sesión]”. La notificación de estado que aparece a continuación muestra en qué sesión te encuentras actualmente.

Paso 7. Si quieres dividir una ventana en paneles, escribe [%] para tener una ventana dividida verticalmente o ["] para crear una ventana dividida horizontalmente. Usa las teclas de desplazamiento para navegar entre los paneles.

Paso 8. Si quieres separar una sesión en curso, pero mantener los procesos en marcha, usa el comando “tmux detach”. La sesión y los procesos en ejecución seguirán funcionando en segundo plano. Para unirla de nuevo a la sesión, renueva la conexión con el comando “tmux attach”.

Para qué se puede utilizar tmux

Al igual que el multiplexor de terminal GNU Screen, tmux te permite trabajar en varias sesiones y ventanas al mismo tiempo en el terminal de una distribución Linux, así como dividir y configurar las ventanas en diferentes paneles para la multitarea. De este modo, puedes ejecutar procesos y programas en paralelo y lanzar diferentes comandos al mismo tiempo. También es posible realizar sesiones remotas y colaborar con varios usuarios al mismo tiempo. Además, puedes dejar los procesos y sesiones, moverlas a un segundo plano y retomarlas más tarde donde las dejaste.

Consejo

¿Necesitas una virtualización completa y un rendimiento óptimo del VPS? Usa el servidor VPS de IONOS con almacenamiento SAN 100% SSD para proyectos exigentes, con recursos escalables y dedicados y alojamiento web Plesk opcional.

Diferencia con GNU Screen

A primera vista, GNU Screen y tmux funcionan de forma idéntica y ofrecen las mismas funciones importantes. Por ejemplo, en GNU Screen los comandos y atajos de teclado se inician con [Ctrl] + [A] en lugar de [Ctrl] + [B]. Una diferencia importante, sin embargo, es que GNU Screen no muestra automáticamente una notificación de estado con el nombre de la sesión actual en la parte inferior de la ventana.

Si quieres ver la notificación de estado en GNU Screen, tienes que configurarla manualmente.

La sencillez para nombrar y renombrar sesiones y ventanas en tmux también facilita la visión general y la navegación entre ventanas y sesiones. Además, a diferencia de GNU Screen, en tmux no hay peligro de perder una ventana por completo si la separas y mueves a segundo plano. Las ventanas se pueden recuperar fácilmente a través de un comando de terminal o se puede solicitar un resumen de todas las ventanas actuales.

Consejo

Sácale partido a la potencia de cálculo escalable de las máquinas virtuales para obtener una potente infraestructura virtual. El servidor cloud de IONOS ofrece recursos 100% dedicados, acceso root, panel en la nube y centros de datos ubicados en EE. UU., Reino Unido, Alemania o España seguros para tu proyecto.

Conclusión: ¿merece la pena usar tmux?

Ya sea por el cambio de nombre de las ventanas y las sesiones o por las útiles notificaciones de estado y de sesión en la parte inferior de la ventana, tmux es para muchos usuarios más fácil de usar y claro que GNU Screen. Si trabajas con varios procesos y programas en la terminal al mismo tiempo y buscas una herramienta multitarea sencilla y eficaz, tmux se presenta como un multiplexor de terminal útil y, además, gratuito.

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.