Ya hemos aprendido a usar GNU Screen para administrar múltiples sesiones de Terminal. Hoy, veremos otra utilidad de línea de comandos muy conocida llamada "Tmux" , que también se usa para administrar múltiples sesiones de Terminal. Esta guía explica qué es Tmux y el uso de los comandos Tmux con ejemplos en Linux.
1. ¿Qué es Tmux?
Similar a GNU Screen, Tmux también es un multiplexor de terminal que nos permite crear una cantidad de sesiones de terminal y ejecutar más de un programa o proceso al mismo tiempo dentro de una sola ventana de terminal.
Tmux es un programa gratuito, de código abierto y multiplataforma compatible con Linux, OpenBSD, FreeBSD, NetBSD y Mac OS X.
2. Instalar Tmux en Linux
Tmux está disponible en los repositorios oficiales de la mayoría de las distribuciones de Linux.
Para instalar Tmux en Alpine Linux, ejecute:
$ sudo apk add tmux
En Arch Linux y sus variantes como EndeavourOS y Manjaro Linux, ejecute el siguiente comando para instalarlo.
$ sudo pacman -S tmux
En Debian, Ubuntu, Linux Mint, Pop_OS!:
$ sudo apt-get install tmux
En Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux:
$ sudo dnf install tmux
O,
$ sudo yum install tmux
En SUSE/openSUSE:
$ sudo zypper install tmux
Bueno, acabamos de instalar Tmux. Avancemos y veamos algunos ejemplos sobre cómo usar Tmux.
3. Uso de comandos Tmux con ejemplos
El atajo de prefijo predeterminado para todos los comandos en Tmux es Ctrl+b
. Solo recuerda este atajo de teclado cuando uses Tmux.
Aviso: El prefijo predeterminado para todas las pantallas comandos es Ctrl+a .
3.1. Creando sesiones Tmux
Para crear una nueva sesión de Tmux y adjuntarla, ejecute el siguiente comando desde la Terminal:
$ tmux
O,
$ tmux new
Una vez que esté dentro de la sesión de Tmux, verá una barra verde en la parte inferior como se muestra en la siguiente captura de pantalla.
Es muy útil para verificar si estás dentro de una sesión de Tmux o no.
3.2. Separación de sesiones de Tmux
Para desconectarse de una sesión actual de Tmux, simplemente presione Ctrl+b
y d
. No necesita presionar este atajo de teclado a la vez. Primero presiona "Ctrl+b"
y luego presione "d"
.
Una vez que esté desconectado de una sesión, verá un resultado similar al siguiente.
[detached (from session 0)]
3.3. Creación de sesiones con nombre
Si usa varias sesiones, es posible que se confunda qué programas se ejecutan en qué sesiones. En tales casos, puede simplemente crear sesiones con nombre.
Por ejemplo, si desea realizar algunas actividades relacionadas con el servidor web en una sesión, simplemente cree la sesión Tmux con un nombre personalizado, por ejemplo, "servidor web" (o cualquier nombre de su elección).
$ tmux new -s webserver
Aquí está la nueva sesión de Tmux con nombre.
Como puede ver en la captura de pantalla anterior, el nombre de la sesión de Tmux es servidor web . De esta manera, puede identificar fácilmente qué programa se está ejecutando en qué sesión.
Para desconectar, simplemente presione Ctrl+b
y d
.
3.4. Listar sesiones Tmux
Para ver la lista de sesiones Tmux abiertas, ejecute:
$ tmux ls
Salida de muestra:
Como puede ver, tengo dos sesiones Tmux abiertas.
3.5. Creando sesiones separadas
A veces, es posible que desee simplemente crear una sesión y no desee adjuntarla automáticamente.
Para crear una nueva sesión independiente denominada "ostechnix" , ejecuta:
$ tmux new -s ostechnix -d
El comando anterior creará una nueva sesión Tmux llamada "ostechnix", pero no se adjuntará.
Puede verificar si la sesión se crea usando tmux ls
comando:
3.6. Adjuntar a sesiones Tmux
Puede conectarse a la última sesión creada ejecutando este comando:
$ tmux attach
O,
$ tmux a
Si desea adjuntar a cualquier sesión con nombre específico, por ejemplo "ostechnix", ejecute:
$ tmux attach -t ostechnix
O, en breve:
$ tmux a -t ostechnix
3.7. Matar sesiones de Tmux
Cuando haya terminado y ya no necesite una sesión de Tmux, puede cancelarla en cualquier momento con el comando:
$ tmux kill-session -t ostechnix
Para matar cuando está adjunto, presione Ctrl+b
y x
. Presiona "y"
para matar la sesión.
Puede verificar si la sesión está cerrada con tmux ls
comando.
Para eliminar el servidor Tmux junto con todas las sesiones Tmux, ejecute:
$ tmux kill-server
¡Ten cuidado! Esto finalizará todas las sesiones de Tmux incluso si hay trabajos en ejecución dentro de las sesiones sin previo aviso.
Cuando no haya sesiones de Tmux en ejecución, verá el siguiente resultado:
$ tmux ls no server running on /tmp/tmux-1000/default
3.8. Dividir ventanas de sesión de Tmux
Tmux tiene una opción para dividir una sola ventana de sesión de Tmux en varias ventanas más pequeñas llamadas paneles Tmux .
De esta forma podemos ejecutar diferentes programas en cada panel e interactuar con todos ellos simultáneamente.
Cada panel se puede cambiar de tamaño, mover y cerrar sin afectar a los otros paneles. Podemos dividir una ventana Tmux ya sea horizontal o verticalmente o ambas a la vez.
3.8.1. Dividir paneles horizontalmente
Para dividir un panel horizontalmente, presione Ctrl+b
y "
(comillas simples).
Usa la misma combinación de teclas para dividir aún más los paneles.
3.8.2. Dividir paneles verticalmente
Para dividir un panel verticalmente, presione Ctrl+b
y %
.
3.8.3. Dividir paneles horizontal y verticalmente
También podemos dividir un panel horizontal y verticalmente al mismo tiempo. Echa un vistazo a la siguiente captura de pantalla.
Primero, hice una división horizontal presionando Ctrl+b
"
y luego divida el panel inferior verticalmente presionando Ctrl+b
%
.
Como puede ver en la captura de pantalla anterior, estoy ejecutando tres programas diferentes en cada panel.
3.8.4. Cambiar entre paneles
Para cambiar entre paneles, presione Ctrl+b y teclas de flecha (izquierda, derecha, arriba, abajo) .
3.8.5. Enviar comandos a todos los paneles
En el ejemplo anterior, ejecutamos tres comandos diferentes en cada panel. Sin embargo, también es posible enviar los mismos comandos a todos los paneles a la vez.
Para hacerlo, presiona Ctrl+b
y escriba el siguiente comando y presione ENTER
:
:setw synchronize-panes
Ahora escriba cualquier comando en cualquier panel. Verá que el mismo comando se refleja en todos los paneles.
3.8.6. Intercambiar paneles
Para intercambiar paneles, presione Ctrl+b
y o
.
3.8.7. Mostrar números de panel
Presione Ctrl+b
y q
para mostrar los números de panel.
3.8.8. Matar paneles
Para eliminar un panel, simplemente escriba exit
y ENTER
llave. Alternativamente, presione Ctrl+b
y x
. Verá un mensaje de confirmación. Solo presiona "y"
para cerrar el panel.
4. Acercar y alejar los paneles Tmux
Podemos hacer zoom en los paneles Tmux para ajustarlos al tamaño completo de la ventana de Terminal actual para una mejor visibilidad del texto y para ver más de su contenido.
Es útil cuando necesita más espacio o concentrarse en una tarea específica. Después de terminar esa tarea, puede alejar (alejar) el panel Tmux para volver a su posición normal. Más detalles en el siguiente enlace.
- Cómo hacer zoom en los paneles Tmux para una mejor visibilidad del texto
5. Inicio automático de sesiones Tmux
Siempre es una buena práctica ejecutar un proceso de ejecución prolongada dentro de una sesión de Tmux cuando se trabaja con sistemas remotos a través de SSH.
Porque evita que pierda el control del proceso en ejecución cuando la conexión de red se cae repentinamente.
Una forma de evitar este problema es iniciar automáticamente las sesiones de Tmux. Para obtener más detalles, consulte el siguiente enlace.
- Sesión Tmux de inicio automático en el sistema remoto al iniciar sesión a través de SSH
Conclusión
En esta guía, hemos discutido el uso de comandos Tmux con ejemplos. En esta etapa, obtendrá una idea básica de la utilidad de línea de comando Tmux y cómo usar Tmux para administrar múltiples sesiones de Terminal. Para obtener más detalles, consulte las páginas man.
$ man tmux
Tanto las utilidades GNU Screen como Tmux pueden ser muy útiles al administrar servidores de forma remota a través de SSH. Aprenda a fondo los comandos Screen y Tmux para administrar sus servidores remotos como un profesional.