Hipatia

Manejando “ventanas” en la terminal

Cuando lleves un tiempo trabajando con Hipatia puede que hayas encontrado algunas limitaciones en su forma de funcionar. Una de ellas es que desde tu aplicación cliente de SSH, normalmente PuTTy solo puedes estar conectado a una terminal de comandos de Hipatia. En caso de que quieras tener varias aplicaciones abiertas dentro del servidor seguramente hayas abierto varios PuTTy contra Hipatia y así conseguirlo. Esta solución funciona pero no es lo más recomendable. Ni para ti ni por supuesto para el servidor, porque lo sobrecarga y perjudica a todos los usuarios.

Uso de Hipatia sin tmux

Existe una aplicación instalada en Hipatia que soluciona este problema. Esta aplicación se llama tmux y es un comando muy útil y muy utilizado en todos los servidores Linux compartidos hoy en día. No solo sería bueno que la aprendieras a usar para mejorar tu experiencia de usuario sino que además te aportará conocimiento sobre una aplicación que, como decimos, es ampliamente usada a día de hoy.

Este comando permite tener abiertas diferentes terminales de comandos, una por ventana y alternar la vista entre todas ellas. De esta forma, con una misma conexión SSH con PuTTy podemos estar manejando diferentes ventanas de forma simultánea.

Uso de Hipatia con tmux

Para conseguir esto simplemente ejecutaremos tmux sobre nuestra terminal de comandos. Esto nos abrirá una consola nueva. Aparentemente no ha cambiado nada pero ya estamos dentro de tmux. Ahora, si pulsamos las teclas Crtl+b y luego c crearemos una segunda ventana con otra terminal de comandos. En la parte inferior de la pantalla verás una barra verde donde puedes ver listadas todas las ventanas que tienes creadas en un momento dado. Para alternar la vista entre esas ventanas puedes usar las teclas Ctrl+b 0 para ir a la primera ventana, Ctrl+b 1 para ir a la segunda y así sucesivamente. Cada terminal de comandos que tienes abierta es independiente de la otra. Puedes tener abierta en una un editor de texto y dejar la otra libre para ejecutar comandos. Para salir ahora de este entorno puedes cerrar cada terminal de forma indepenciente usando el comando exit en cada una de ellas.

Usando sesiones

Pero tmux tiene un uso todavía más interesante. Si tienes abiertas varias ventanas, quieres cortar tu conexión con el servidor pero no quieres volver a abrir todo este entorno cuando vuelvas, puedes dejar todas estas ventanas abiertas y listas. Para ello, simplemente ejecuta dentro de una consola en tmux el comando:

sdemingo@hipatia:~$ tmux detach

Con este comando volverás a la consola original a la que te conectaste con PuTTy y sobre la que ejecutaste tmux. Si ahora abandonas el servidor usando exit en esta consola, tu sesión de tmux quedará abierta y lista para cuando vuelvas a conectarte.

Dejamos una sesión abierta en el servidor y nos desconectamos

Si ahora vuelves a conectarte al servidor de nuevo y quieres unirte a la sesión de tmux que dejaste abierta anteriormente simplemente debes teclear el comando:

sdemingo@hipatia:~$ tmux attach

Verás que vuelve a aparecer en tu pantalla la misma sesión que dejaste pendiente, tal y como estaba en ese momento. Este comando es muy potente y tiene un montón más de funciones que no hemos explicado, dividir una ventana en diferentes paneles, abrir más de una sesión, etc. En Internet puedes encontrar mucha más información que seguramente te será útil.

Combinaciones de teclas

A continuación te listamos las combinaciones de teclas más usadas en tmux:

Ctrl+b c            Crea una nueva ventana
Ctrl+b &            Cierra la ventana actual
Ctrl+b Ctrl+b d     Provoca un detach de la sesión actual

Ctrl+b "            Parte la ventana actual en dos paneles horizontales
Ctrl+b %            Parte la ventana actual en dos paneles verticales
Ctrl+b ↑            Ir al panel anterior (de esa ventana)
Ctrl+b ↓            Ir al panel siguiente (de esa ventana)

Ctrl+b 0            Se mueve la ventana 0
Ctrl+b 1            Se mueve la ventana 1
Ctrl+b 2            Se mueve la ventana 2
...

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.