Tmux, multiplexando terminales

Buenas,

Hoy he estado jugando con Tmux así que hablo de ello y listo que para eso es el blog.

Veamos. ¿Qué es tmux?

Tmux es un multiplexador de terminal. Dicho de otra manera, es, básicamente, un programa que corre en la terminal y permite, al ejecutarlo, tener acceso a varias terminales desde dentro de él. Permite tener diferentes sesiones dentro de una. Eso es multiplexar.

Se parece mucho a GNU-Screen, pero luego entro a hablar de eso.

¿Qué diferencia tiene Tmux con Konsole, Terminator, Guake, etc?

La diferencia es que los programas que menciono son emuladores de terminal para entornos de escritorio, no multiplexores. Es decir, son programas de escritorio que te permiten acceder a la terminal. Con estos se pueden tener varias ventanas o pestañas en la terminal, pero cada una sería una sesión independiente. Tmux se ejecuta en la terminal y te permite tener varias sesiones partiendo de una.

Como Vim y otros programas, Tmux tiene una interfaz gráfica hecha para la terminal, en ella se puede dividir la pantalla en diferentes secciones, abrir pestañas, etc. ¡Todo desde la terminal!

Os dejo un ejemplo tomado de la web:
tmux

Además, Tmux permite lanzar programas en una terminal y desengancharnos mientras los dejamos ejecutando para volver después y volver a engancharnos cuando queramos.

Dicho esto, Tmux es superinteresante.

Como se ejecuta en la terminal, podemos lanzarlo en un equipo remoto a través de una única sesión SSH, por ejemplo, y tener acceso a muchas terminales sin tener que hacer más conexiones (multiplexador, remember). Como podemos desengancharnos, podemos ejecutar un programa en un equipo remoto y dejarlo corriendo en Tmux, cerrar la conexión SSH y volver luego y recuperar la terminal como estaba antes. Como sabéis, esto no puede hacerse con SSH sin más, donde, si cerramos la conexión perdemos el estado y no lo podemos recuperar.

De la misma forma, podemos ejecutarlo en nuestro equipo local para varias pestañas, cada una con un servidor (en los que podríamos ejecutar Tmux para poder aprovechar la conexión SSH para tener muchas terminales). ¡Podemos multiplexar de forma anidada!

Para tener una pequeña intro:

En Tmux todo empieza con Ctrl+B (se puede configurar para cambiarlo) y sigue con su hotkey correspondiente o su comando. Por ejemplo: si queremos dividir la pantalla en vertical hacemos Ctrl+B, : así vamos al modo comandos y ejecutamos split o usamos el hotkey directamente: Ctrl+B, ".

De esta forma podemos crear nuevas pestañas Ctrl+B, c y movernos entre ellas Ctrl+B, [0-9] o movernos entre las divisiones (panes) que le hemos hecho a la pantalla (Ctrl+B, Flecha de dirección).

Para desengancharnos y dejar Tmux corriendo podemos ejecutar Ctrl+B, d. Luego podríamos ver cuantas instancias de Tmux hay corriendo haciendo tmux ls en la terminal y para engancharnos: tmux attach-session -t NUMERO_DE_SESION. Así de simple.

Para los que estéis jugando: para hacer scroll en la pantalla podéis hacer Ctrl+B, [ y moveros con las teclas de dirección. A mí también me ha pasado que lo he perdido.

Como veis, se parece mucho a GNU-Screen, pero es mucho más moderno (GNU-Screen comenzó en los 80 y Tmux en los 2000). Hay muchas comparativas en internet, investigad un poco.

Os animo a que lo probéis, yo todavía no he profundizado mucho, pero tiene millones de opciones de configuración y podéis arrancar con sesiones por defecto, etc. Seguro que os gusta.

Deciros para terminar que tiene licencia BSD, por si os mola el rollo.

¡Saludos!


Si queréis investigar, Tmux tiene una man page muy chula que podéis consultar en su web o lanzando man tmux en la terminal (tenéis que instalarlo antes, claro). A parte de esto, no tenéis que recordar las hotkeys, haciendo Ctrl+B, ? podéis verlas.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s