Skip to main content

Controla múltiples procesos con Tmux en Linux

Hola en un nuevo post, como ya comentamos en el post de screen, existen diferentes herramientas para dividir nuestra terminal en ventanas que nos faciliten el trabajo del día a día, sobre todo si son procesos largos. En este caso os traemos Tmux.

Tmux (Terminal Multiplexer) nos permite habilitar múltiples sesiones, ventanas y paneles que son controladas desde un mismo terminal. Esta herramienta es compatible con plataformas como Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD y Solaris.

Comenzaremos instalando esta herramienta en linux con el comando

apt-get install tmux

 

Una vez instalado, crearemos nuestra primera sesión con el comando

tmux new -s nombre_sesion

Controla múltiples procesos con Tmux en Linux

 

Esto iniciará una nueva sesión del terminal tmux, en nuestro caso, hemos llamado a la sesión byte-mind. Si nos fijamos en la barra inferior de la terminal podemos ver el nombre de la sesión, seguido del número de la ventana en dicha sesión, en nuestro caso sería la ventana 0. Por defecto en debian las ventanas tendrán el nombre bash, el cual vemos en la imagen, seguido del * que indica que es la ventana activa.

Al igual que screen, tmux está enfocado en el uso de atajos de teclado, para ejecutar cualquier operación deberemos pulsar CTRL + b seguido de la o las teclas de la acción que deseamos realizar. Al final de este post incluiré un listado de los posibles comandos de esta utilidad.

La primera ventana ya la tenemos pero, podemos crear una nueva con el comando

CTRL + b y después c

 

Ahora crearemos nuestro primer panel en la ventana, esto la dividirá horizontal o verticalmente.

CTRL + B y después % para dividirla verticalmente

CTRL + b y después " para dividirla horizontalmente

 

Nosotros vamos a crear una división de cada una

Controla múltiples procesos con Tmux en Linux

 

Como vemos en la imagen hemos dvidido la primera ventana en 2 paneles verticales y el segundo panel vertical en dos horizontales. Para poder cambiar entre los diferentes paneles podemos hacer uso de los siguientes comandos

CTRL + b y después o para pasar al siguiente panel

CTRL + b y después q nos aparecerá el número de cada panel, pulsamos el número del panel seleccionado

 

Si queremos eliminar un panel tendríamos que pulsar la siguiente combinación

CTRL + b y después x

 

Una vez que sabemos como cambiar entre paneles, si tenemos ventanas, como lo hacemos

CTRL + b y después n para ir a la siguiente ventana

CTRL + b y después p y seleccionar la ventana que queremos

CTRL + b y después número de ventana

 

Attached and Dettached

Una vez tenemos una sesión ya con una serie de comandos en proceso, que pasa si queremos ponernos a trabajar con otra sesión, como podemos hacerlo. Primero para poder desatarnos de la sesión actual utilizaremos la siguiente combinación de teclas

CTRL + b y después d

 

Pero, y ahora como podemos recuperar nuestra sesión. Podemos ver un listado de sesiones con el comando

tmux list-sessions

y después acceder a ella con el comando

tmux attach-session -t nombre_sesion

Esto reanudará nuestra sesión tal cual y como la dejamos en su momento.

 

Programación Anfitrión Invitado

Otro de los usos muy interesantes de Tmux es la posibilidad de la programación remota entre anfitrión e invitado. Para esto se recomienda construir una sesión de usuario aparte para asegurar que nadie acceda a nuestra información. En este caso, lo haremos con un usuario normal.

Lo primero será especificar el socket que usará, para ello debemos crearlo y darle los permisos necesarios para que el resto de usuarios pueda ejecutarlo.

tmux -S /tmp/anfitrion

chmod 755 /tmp/anfitrion

 

Una vez creada la sesión y otorgados los permisos, accedemos vía ssh al equipo anfitrión y accedemos a la sesión, para ello una vez conectados ejecutamos el siguiente comando

tmux -S /tmp/anfitrion attach

 

Controla múltiples procesos con Tmux en Linux

 

Como podemos ver en la imagen, tenemos la máquina física (anfitrión) y una máquina virtual (invitado) en donde ambos están trabajando en la misma sesión y, lo que uno escribe el otro lo visualiza en tiempo real.

Además, podemos ver unas líneas de puntos en la ventana del anfitrión, esto indica que esta ventana es más grande y el espacio extra se cubre de esta forma.

Si estas interesado en este tipo de herramientas y sobre todo en la programación por terminal en pareja, te recomendamos investigar sobre Tmate y Wemux, ambas basadas en Tmux y que ofrecen diferentes ventajas centradas en este modo de trabajo.

 

Hoja de atajos

Para terminar y, como lo prometido es deuda, aquí os dejo una tabla con un listado de atajos de teclado disponibles en esta herramienta.

Acción Atajo
Crear nueva ventana Ctrl-b c
Eliminar ventana actual Ctrl-b &
Mover a ventana siguiente Ctrl-b n
Mover a ventana anterior Ctrl-b p
Mover a ventana especifica Ctrl-b <num ventana>
Mover a ultima ventana seleccionada Ctrl-b l
Mostar ventanas (al seleccionar una se irá a ella) Ctrl-b w
Dividir panel verticalmente Ctrl-b %
Dividir panel horizontalmente Ctrl-b "
Ciclar entre paneles Ctrl-b o
Mostar paneles (al seleccionar uno rapidamente, se irá a él) Ctrl-b q
Mover panel actual a la derecha Ctrl-b }
Mover panel actual a la izquierda Ctrl-b {
Eliminar panel actual Ctrl-b x
Eliminar todos los paneles excepto el actual Ctrl-b !
Mostrar la hora Ctrl-b t
Desatar de la sesión Ctrl-b d
Mostar sesiones (al seleccionar una se irá a ella) Ctrl-b s
Renombrar sesión Ctrl-b $
Escribir en consola de comandos (comandos avanzados) Ctrl-b :
Mostar atajos Ctrl-b ?

 

Gracias por visitarnos en otro post y no se olviden de comentar su opinión, dudas, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *