6

TMUX: La navaja suiza de la terminal

15621Puntos

hace 3 años

tmux es una de esas herramientas que, al principio, no entiendes del todo, pero al final termina siendo indispensable en tu dia a dia. Si trabajas en ambientes Linux, es muy probable que uses un emulador de terminal como terminator, o tengas iterm2 en OS X. Como ellos, tmux es un multiplexor que te permite manejar múltiples instancias de la terminal, ya sea con pestañas o dividiéndola horizontal y/o verticalmente. ¿La gracia? No es un programa de escritorio, y acá viene lo interesante: es un software sin interfaz gráfica. Estos son sus beneficios:

Multiplexar el terminal que quieras, dónde quieras

Puedes cargar el mismo layout de ventanas que usamos en iterm2 en, por ejemplo, la terminal de OS X (que no es posible multiplexar), mostrándonos así su interfaz: alt text Esto es especialmente útil, porque puedes conectarte via ssh a tus servidores y tener un layout igual al que tendrías en tu escritorio, tan solo conectándote a ellos.

Herramientas únicas, que funcionan incluso via ssh

tmux no depende del emulador de terminal, ya que es un programa más: puedes usar el que quieras. De hecho, puedes comenzar trabajando en la terminal de Mac y continuar más tarde en iterm2 donde lo dejaste. Además de poder dividir la pantalla horizontal o verticalmente, y utilizar pestañas y renombrarlas a tu gusto, tmux te ofrece sesiones. Cada sesión contiene un número de ventanas que, a su vez, contienen paneles con terminales. Las sesiones, usualmente, se usan para manejar multiples proyectos de forma muy cómoda, porque cada una representa uno diferente. Esto resulta muy útil si trabajas con microservicios. alt textTmux te permite trabajar sin usar el mouse, ya que todas las acciones las ejecutas a través del teclado. De cualquier manera, puedes usar el mouse para ciertas acciones, aunque mi recomendacion es que aprendas a usar los comandos de texto siempre Además, a la hora de manipular los paneles, tienes libertad absoluta: puedes moverlos entre ventanas, pestañas, y sesiones; cambiarlos de orden; aumentar su tamaño; crear nuevas ventanas en base a paneles, y muchas otras opciones.

Corre en el background

Puedes cerrar tranquilamente la ventana de tu terminal, o en el caso de tu servidor, puedes cerrar la conexión ssh… y no perderás nada, ni tu layout ni las tareas que estabas corriendo. Simplemente, puedes volver más tarde, y seguir trabajando.alt text

Puedes hacer pair programming

Si dos personas se unen a una misma sesión, ambos tienen un feedback en vivo de lo que están haciendo. Incluso, si las resoluciones de pantalla son distintas, verás una franja que te indica dónde está tu compañero remotamente. alt text

Es extendible y personalizable

Tmux tiene plugins que extienden aún más sus funcionalidades. Mi preferido es tmuxp, que te permite definir las sesiones de tus proyectos en archivos, que puedes usar para inicializarlos automáticamente al abrir tmux. Además de esto, puedes modificar tu archivo de configuración y personalizar la paleta de colores y la barra de acciones. alt text Mi invitación es a que pruebes esta herramienta, y veas por ti mismo las ventajas de utilizarla. Tal vez sea lo que siempre estuviste buscando, o quizá no se acomode a tus necesidades, pero no lo sabrás hasta que no la pruebes. En mi caso, fui muy escéptico de tmux hasta que la probé, encontré un flujo de trabajo y los plugins que necesitaba para trabajar de forma más cómoda. Si tienes comentarios, dudas o aportes, no dudes en dejarlos aquí abajo.
David
David
@davidtoca

15621Puntos

hace 3 años

Todas sus entradas
Escribe tu comentario
+ 2
1

Wow la verdad no sabia sobre esta herramienta, si la habia escuchado por ahi pero nunca me habia dado la tarea de revisarla, ahora a invertirle la mañana!

Gracias David Toca, muy buen curso de Django 😃