Gestión de sesiones de TMUX

Gestión de sesiones de TMUX
Trabajar de forma remota en diferentes máquinas puede volverse abrumador sin usar un programa como TMUX. Además, tener que realizar un seguimiento del trabajo que está haciendo en cada máquina mientras intenta recordar en qué lugar estaba en cada ventana de terminal para cada máquina puede salir de control rápidamente.

Sin embargo, con un programa como TMUX, esta sobrecarga de energía y tiempo del desarrollador se elimina por completo. Además, con TMUX, no solo puede trabajar con múltiples máquinas y múltiples entornos al mismo tiempo, sino que también puede cambiar rápidamente entre ellas. Por lo tanto, aprender a manejar mejor las sesiones de TMUX puede potencialmente aumentar su productividad y su capacidad para trabajar.

Listado de sesiones TMUX

Para mostrar una lista de todas las sesiones de TMUX que se ejecutan actualmente en una máquina, el comando TMUX LS se usa en el terminal, como se muestra a continuación:

La información dada por el comando TMUX LS aparece en el siguiente orden:

  • Sitio web1, que es el nombre de la sesión de TMUX que se enumera aquí,
  • 2 Windows, que muestra cuántas ventanas hay en el sitio web1 sesiones TMUX, y
  • (Creado Jun 9 de junio 03:08:42 2022) que muestra la fecha en que se creó la sesión.

Si una máquina no tiene ninguna sesión de TMUX que se ejecute cuando se ejecuta el comando TMUX LS, se muestra la siguiente salida:

Renombrar sesiones de TMUX

Al igual que muchas otras operaciones para TMUX, el cambio de nombre de una sesión en TMUX se puede hacer de una de dos maneras. La primera forma de cambiar el nombre de una sesión en TMUX es hacerlo desde fuera de la sesión, en la terminal. Use el siguiente comando para cambiar el nombre de una sesión:

$ tmux renombre -session -t

Por ejemplo, en la captura de pantalla a continuación, una sesión de TMUX se está ejecutando actualmente, llamada WebDev, que queremos cambiar el nombre como el sitio web1.

Si la operación de cambio de nombre es exitosa, el comando no produce nada y podemos verificar el nuevo nombre de la sesión a través de $ TMUX LS como se muestra:

La segunda forma de cambiar el nombre de una sesión de TMUX es de la sesión. Similar al ejemplo anterior, cambiaremos el nombre de la siguiente sesión de WebDev al sitio web1:

La combinación de clave Prefijo, $ se usa para lograr eso. Por ejemplo, en mi instalación de Ubuntu, esta combinación de claves sería Ctrl + B, $.

El resultado se muestra en la captura de pantalla. Como puede ver, la sesión ahora se llama Sitio web1 en la esquina inferior izquierda de TMUX:

Creando una nueva sesión de TMUX con un nombre

Del mismo modo, si necesita crear una sesión de TMUX con un nombre de antemano, en lugar de renombrarla más tarde, puede usar la siguiente sintaxis para el nuevo comando TMUX:

$ tmux nuevo -s

Por ejemplo, si desea crear otra sesión en la que esté configurando otro servidor remoto para el uso de VPN, puede crear una sesión TMUX llamada VPNServer utilizando el siguiente comando:

$ tmux new -s vpnserver

Esta nueva sesión de TMUX se muestra a continuación:

Adjuntar a las sesiones de TMUX

Cuando desea adjuntar su terminal a una sesión de TMUX que ejecuta actualmente, el comando para usar es:

$ tmux adjunto -t

Por ejemplo, si desea continuar su trabajo en la sesión del sitio web1 y actualmente su terminal no está adjunto a esa sesión específica de TMUX, ejecuta el siguiente comando:

$ tmux adjunto -t sitio web1

Para obtener una lista de sesiones a las que puede adjuntar, use el comando LS como se muestra en una sección anterior.

Separarse de las sesiones de TMUX

Separarse de TMUX requiere usar el comando Prefijo + D. Por ejemplo, en mi instalación de Ubuntu, el comando de prefijo es Ctrl + B, por lo que para separarse de la sesión de ejecución actualmente, necesito presionar CTRL + B y luego presionar D para separarse. Una vez que haya separado su terminal de la sesión de TMUX, la sesión todavía se está ejecutando. Esto significa que cualquier proceso que haya dejado en ejecución en la sesión, como HTOP, una descarga de archivo a través de Curl o cualquier comando de lotes, continuará ejecutándose hasta que se complete.

Esta función de TMUX funciona bien para servidores remotos donde necesita SSH para iniciar un proceso y luego dejar que se ejecute en segundo plano. A diferencia de ejecutar directamente el comando desde su terminal a través de SSH, el uso de TMUX le permite usar el comando DETACH para ejecutar cualquier proceso en segundo plano.

Matando sesiones de Tmux

Matar una sesión de Tmux lo destruye por completo. Por lo tanto, este comando debe usarse con cuidado. Este comando no es reversible y puede conducir a una pérdida de trabajo.

Similar a renombrar una sesión de TMUX, hay dos formas de matar una sesión individual. La primera forma es a través del terminal, y el segundo es de la sesión de TMUX.

Para matar una sesión de TMUX desde el terminal, use el siguiente comando:

$ tmux kill -session -t

Por ejemplo, si tengo una sesión TMUX que se ejecuta llamada VPNServer y quiero matarla a través del terminal, puedo usar el siguiente comando:

$ tmux kill -session -t vpnserver

Como se muestra a continuación, la sesión ya no está disponible y se destruye.

La segunda forma de matar una sesión de TMUX es de la sesión. Simplemente salga de todos los paneles y ventanas que se ejecutan en esa sesión y salga de la última ventana de la sesión. Esto hará que la sesión sea asesinada, tal como hubiera sido a través de la terminal. La captura de pantalla a continuación muestra una sesión de ejecución de TMUX llamada VPNServer:

Cuando adjuntamos nuestro terminal a esta sesión y salemos de todas las ventanas, la sesión se mata. Esto se puede ver en las capturas de pantalla a continuación:

Después de salir de todas las ventanas de la sesión de VPNServer, TMUX LS muestra que la sesión ha sido asesinada:

Matar todas las sesiones de TMUX en una máquina

Finalmente, si necesita matar todas las sesiones de TMUX en una máquina, puede usar el siguiente comando:

$ tmux kill-server

Como se muestra en la captura de pantalla a continuación, se están ejecutando dos sesiones de TMUX, WebDev y VPNServer. Si ejecuta el comando Kill-Server, ambas sesiones son asesinadas:

En una palabra:

Para iniciar una sesión de TMUX, use el siguiente comando:

$ tmux nuevo -s

Para separarse de la sesión actual de TMUX, use la siguiente combinación de teclas TMUX:

Ctrl + B D

Para volver a una sesión de TMUX, use el siguiente comando:

$ tmux adjunto -t

Para cambiar el nombre de una sesión de TMUX, use el siguiente comando:

$ tmux renombre -session -t

También puede cambiar el nombre de la sesión de TMUX actualmente utilizando la siguiente combinación de teclas TMUX:

Ctrl + B ,

Además, puede usar el siguiente comando para matar una sesión de TMUX:

$ tmux kill -session -t