Hay muchas herramientas para sacar más partido de nuestras sesiones de ssh o de terminal, tales como screen, nohup o en este caso tmux Sin duda fue una de las herramientas preferidas de la #semanaegra
Terminal Multiplexor
Muchas veces tenemos que mantener una sesión de ssh porque estamos editando por ejemplo algo y queremos comprobar de inmediato si se está realizando correctamente.
Por ejemplo una configuración o una modificación que requiera el reinicio de un servicio. En esos casos podemos editar salir del editor y volver a recargar el servicio o bien podemos abrir otra sesión, pero es engorroso tener que abrir otro terminal y logearse de nuevo.
Tmux nos permite dividir el terminal en trozos, tal y como lo hacen ya algunos terminales como terminator, además de poder dividir en pestañas los distintos paneles de tmux. Para instalarlo:
apt-get install tmux
Uso básico: Tmux es como un panel divisible en más paneles. Cada combinación de teclas que realicemos eviará una acción.
Inciamos tmux:
tmux
Importante, es distinto «y luego» que «+» quiero decir que no es la misma combinación de teclas, redimensionar un panel que moverse a el, a través, por ejemplo, de la combinación de teclas que hay para ello. Porque aunque intervienen las mismas teclas, la pulsación es distinta.
Una vez hecho esto podemos empezar a usar los atajos más básico del teclado
- ctrl + b es la combinación de teclas que le indica a tmux q vas a enviar una acción
- ctrl + b y luego » (pulsa shitf +2) divide el panel horizontalmente
- ctrl + b y luego % (pulsa shitf + 5) divide el panel verticalmente
- ctrl + b y luego flechas de dirección nos movemos entre los paneles
- ctrl + b + -/+ Escala las fuentes del terminal
- exit cierra el panel actual
- ctrl + b + flechas de dirección, redimensiona el panel actual en la dirección de la flecha
- ctrl + b + c crea una pestaña nueva. Cada pestaña tendra sus paneles
- tmux list-sessions lista las sesiones de tmux
Al poder crear varias pestañas cada una con su propia configuración de paneles, emulando el funcionamiento de los escritorios múltiples, se pueden obtener un número muy elevado de terminales, organizados en cada pestaña al gusto del usuario.
Ejemplo de tmux corriendo con un buen número de divisiones
Mucha gente usa tmux como su base para el escritorio y maximizan de esa manera el espacio ¿Pierden usabilidad o productividad por ello? No lo creo. Quizás un poco rudo y como siempre acostumbrarse lleva un tiempo, pero ideal para los que no quieren perder tiempo levantando la mano para coger el ratón.
Sitio oficial https://tmux.github.io/
Yo conocía algo similar, pero ahora que lo pruebo no funciona igual. Es terminator que te permite abrir un montón de pestañas y dividir la pantalla en todas las formas posible. Pero este por lo que estoy probando solo tenes control de la división que abriste, hasta no salir de ahí no podes hacer nada en las otras. Igual esta tremendo es muy lo que hace screen
ctrl + b y luego flechas de dirección nos movemos entre los paneles, para moverse entre pestañas ctrl + b y luego n o p (next previus)
Muy buen dato, gracias.
Hace un par de semanas lo descubrí y es cojonudo.
Recomendaciones:
Mapear ctrl+b a ctrl+a (como en screen, los dedos ganaran en salud…)
Activar soporte de ratón (para cambio de panel y modificar el tamaño de los paneles)
Un ejemplo de tmux.conf con las anteriores personalizaciones y otras:
http://media.pragprog.com/titles/bhtmux/code/config/tmux.conf
Luego tambien se pueden instalar plugins desde github: https://github.com/tmux-plugins
Otra buena opcion es la barra powerline (tambien compatible con vim y otras shells)
Se puede instalar desde apt-get o https://github.com/lokaltog/powerline
Es un poco coñazo configurarla y la documentación un poco pesima, pero visualmente muy bonita y práctica.
Genial los plugins, no me habia dado por buscar nada similar! Nada más verlo, me quede con el de guardar sesiones x)
A mi me mola screen para otras cosas y tmux lo he usado pero … al final he terminado por tirar de terminator que bien configurado es hasta esteticamente agradable.
Bueno, es cómo las terminales en i3-wm, tmux es flojo en comparación, pero creo que sirven para otras cosas. Tmux y screen van bien sobretodo para ssh, y poder dejar scripts y sesiones montadas sin tener que hacerlo todo el rato, o no tener que empezar de nuevo con lo que haces si tienes mala conexión.
Exacto drymer, como ya digo en el post, cumple bien la funcion de screen y además permite no tener que estar haciendo login todo el tiempo. Hay plugins de todo tipo como apunta yippekay y ahora mismo estoy buscando como agregar la configuración para seleccionar con el ratón el panel que desee y hacerlo aún más usable. =)