Tmux: Iniciación al multiplexor de terminales (Primera parte )

Seguimos con las frikadas:

Si acostumbras de cierta manera a hacer uso extensivo de consolas  ( me incluyo ) te habrás topado que la mejor opcion a la hora de acometer ciertas tareas sin tirar un montón de consolas  en el desktop es usar un multiplexor  que no es mas que una entidad que permite crear una pila de consolas accesibles desde una misma terminal. En el mejor de los casos disponemos de herramientas como Gnuscreen  que evidentemente es la opción más  conocida y longeva. Lo cierto es  que en el mundo del software libre si podemos encontrar algo, son opciones para usar. Literalmente disponemos de un abanico casi interminable:

En esta oportunidad os  quiero hablar un poco de Tmux

Si como yo tienes Arch basta con hacer un pacman -S tmux para instalarlo  Los usuarios de otras distros los tienen de igual forma en los repos oficiales.

Una vez instalado comenzamos tipeando tmux en un tertmial:

A simple vista solo es una terminal esperando comandos a ejecutar  y ciertamente lo es . Lo primero a ejecutar para este tuto sera varias terminales en una sola ventana, para lo cual pulsamos la combinación de teclas:

Control + b  Control +  %

quedando de la siguiente forma:

Como veremos el espacio de trabajo se divide en dos primeramente, pero podemos repetir tantas veces como sea necesario el proceso para lograr tantas terminales queramos. Lógicamente quizás con tantos espacios de trabajo sin duda necesitamos ordenar de cierta manera la disposición de esas terminales. Para lo cual pulsamos:

NOTA: en el primer intento de esta combinación de teclas las terminales se ajustaran para tener un tamaño igual en dimensiones por lo que no vera un cambio de posición propiamente dicho sino un acomodo de ellas

Control + b Tecla espaciadora

Ahora se nos presenta el caso de querer pasar de una terminal a la otra  para lo cual hacemos uso de la lógica de la dirección de la teclas arriba abajo del teclado. Para este caso como tenemos dos terminales una encima de la otra pulsamos:

Control + b Tecla abajo ( suponiendo que el puntero este en en la terminal de arriba)

Control + b Tecla arriba ( suponiendo que el puntero este en en la terminal de abajo)

 En el caso  de que tuviéramos mas terminales, por ejemplo una en la desde la terminal superior y una vez estando situados en la primera terminal de abajo usaríamos la lógica de dirección de las teclas del teclado es decir:

Control + b Tecla derecha

Ahora tal y como lo comentaba en la descripción de entrada Tmux literalmente crea una pila de sesiones en la misma terminal. El comando para ello es:

Control + b  c

A partir de este momento habremos creado una sesión nueva (parte de la pila que les comentaba) y que podremos comprobar viendo la parte señalada de la imagen  ( 😛 )  . Veremos un asterisco cambiado  a la terminal  donde nos encontramos exactamente esto a modo de guía. Si queremos volver nuevamente a donde comenzamos pulsamos:
 
Control + b  p  (Para volver a la terminal anterior ) 
Control + b n  ( Para pasar a la siguiente terminal )
 
Veremos el asterizco cambiar de lugar nuevamente. Cada ventana es independiente por lo que podra dividir y modificar a voluntad.
Si quieramos cerrar una de las ventanas de la sesion  tendriamos que pulsar:
 
                                                                                                                                                                 Control + b &
 
 
En la parte indicada en amarillo veremos un dialogo de confirmacion de cierre donde deberemos colocar  Y ( para cerrar ) o N  ( para cancelar la otrden )  Y/N . quedando en la terminal contigua luego de haber respondido afirmativamente a la pregunta.
 
La pregunta seria que utilidad le doy a esta herramienta ?  las respuestas son mucha pero la que mas rapido viene a mi mente es :  disponer de varias consolas para el manejo de cuentas ssh, analisis de red ejecusion de comandos de manera general y monitores de sistema sin salir de una terminal eleva bastante la productividad de una persona que tenga que manejarse con muchas terminales. 
 
En la segunda parte de este tutorial de introduccion explicare un poco mas de la configuracion interna de Tmux y otras caracteristicas, aunque siempre esta disponble el manual que proveen los desarrolladores  “man tmux” 

Les dejo una captura adicional:

Saludos-….


35 comentarios

  1.   satanAG dijo

    Hola, excelente post. Aclarando e informando que se encuentra en los repositorios de Debian Wheezy (7). Basta entonces, con un apt-get install tmux

    Saludos.

    1.    freebsddick dijo

      Que bien que te haya sido de provecho. saludos!!

    2.    eliotime3000 dijo

      Ya lo instalé, y me va de maravillas.

  2.   Ezequiel dijo

    Sobretodo tmux es muy útil cuando te conectás remotamente vía ssh. Excelente entrada!

    1.    freebsddick dijo

      Sin duda.. Francamente es el primer uso que se me viene a la mente !! pero claro las posibilidades son muy amplias !!.. Saludos

  3. Muchas gracias por este post, estaba buscando algo así para KDE, anteriormente usaba el emulador terminator pero no hay una alternativa qt que haga los mismo, esto me ayudó bastante.

    Cordial saludos.

    1.    freebsddick dijo

      pues sep .. es una herramienta bastante ulti.. lo que me llama la atencion de su simplicidad de uso. quizas si le das una mirada a la docu oficial podrias lograr muchas cosas interesantes. saludos

    2.    pandev92 dijo

      No entiendo, no te sirve konsole? o.O

  4.   pregunta dijo

    Mola. Pero me queda una duda: ¿que diferencia hay con utilizar un emulador de terminal (como el de gnome, por ejemplo) que permite abrir varias pestañas en la misma aplicacion?. A mi me parece mas sencillo de utilizar el que comento, y la mayoria de los terminales de entornos de escritorio que conozco tienen esa posibilidad…

    1.    freebsddick dijo

      Lo de la facilidad es un hecho algo subjetivo. Cuando un usuario tienen a usar herramientas como urxvt busca simplicidad no busca que sea bonito ( aunque puede serlo con alguna que otra configuracion adicional ).

      En el caso de rxvt si Tienes la posibilidad de tener tab ( pestañas ) debidadmente identificadas con las fuentes que prefierascon los colores que quieras. Creo que el punto fundamental de esto es basicamente el consumo de recursos. gnome terminal y otras vienen con los entornos de escritorios generalmente por lo que usan bastante mas ram eso podria ser algo insignificante en un equipo relativamente nuevo pero en un equipo de cierta edad cualquier ahorro sin quitar funcionalidad es algo a considerar

  5.   pandev92 dijo

    MHH se ve interesante

    1.    freebsddick dijo

      Las personas que suelen tener regadas terminales en el escritorio y que ademas disponen de poco espacio para hacer uso de ello adoran este tipo de herramientas .. !! tambien si usas un entorno como i3 que es un manejador de tipo cascada se le puede sacar mucho provecho porque ahorra mucho espacio en el escritorio ..

  6.   Saito dijo

    Muy ineteresante la verdad y lo he usado un par de veces pero viendo en rendimiento, peso (Dependencias del programa), y facilidad siempre termino regresando a “terminator” que es un terminal con multiplexor incluido y pestañas tambien, y me hace lo mismo, incluso puedo guardar perfiles y todo, puedo abrir links sin la necesidad de un complemento como es el caso de urxvt, deberian probarla……

    Eso no le quita que Urxvt sea hermosisima, pero por comodidad y facilidad Terminator.

    Nota si alguien quiere la configuracion de Terminator no duden en pedirmela 🙂

    1.    freebsddick dijo

      En tmux tambien hay esas caracteristicas.. Si es por la cantidad de programas puedo asegurarse que con solo descargar Tmux no necesitas nada mas !! Actualmente tengo varias maquinas sin entorno grafico inclusive corriendo varias servicios de manera paralela. El consumo de recursos es realmente importante para mi ya que los equipos en los que uso tmux tienen mas de 10 años de antiguedad.. En lo referente al emulador de terminal en lo particular suelo usar zsh como consola predeterminada + urxvt . El punto es que Tmux puede guardar las sesiones de lo que hayas estado haciendo sin ningun problema con el fin de retomerlas en el momento que quieras. lo de las tab debes saber que con solo activar las tab en uxrvt ya tendras esa funcion.. Claro debes tomar en cuenta que no es que vaya a explicar todo de una vez seria muy largo para un post introductorio Por eso voy a dividir esto en partes.

      Si quieres comprobar lo que te digo solo tienes que ir a la docu oficial te aseguro que encontraras todas esas caracteristicas que acostumbras a usar con las herramientas sobre la que comento. Saludos…

    2.    eliotime3000 dijo

      Ya lo instalé. Ahora, estoy siguiendo el tuto. Gracias por el aviso, pues ya no tengo que instalar necesariamente el ratpoison.

  7.   Ghermain dijo

    Algo más para probar y aprender; se agradece el aporte, aunque por ahora con Konsole en KDE me va bien.

  8.   eliotime3000 dijo

    Buena herramienta, aunque también es válido usar RatPoison de vez en cuando para trabajar.

    Hasta ahora, la herramienta más KISS y sencilla de manejar hasta ahora.

  9.   Saito dijo

    Si es verdad lo que tu me comentas, solo que como dije para facilidad y comodidad sale mejor Terminator, un ejemplo:

    Tu como divides la terminal en 2 partes horizontales
    Control + b y despues la Tecla de espacio

    Como cambias a las terminales adjuntas:
    Control + b y despues Flecha de direccion

    Como divido yo la terminal en 2 partes horizontales:
    Control + Flecha de abajo

    Como cambio entre terminales adjuntas:
    Alt + Flecha de direccion

    Ese paso mas que hay que hacer con tmux es lo hace que las dos veces que lo he probado bien termine regresando a terminator por esa comodidad, ademas de que la configuracion no es tan larga como en el caso de Urxvt + Tmux

    Y como dije claro que es bellisima esa configuracion, si tan solo pudiera configurarla de la mimsa manera que terminator me paso enseguida, cosa que no he podido hacer (tal vez por pereza de configurar, o por que a lo mejor lo hice mal)

    Buena explicacion en el post!!!!

    PD: Me gusta tu escritorio es fluxbox verdad???

    1.    freebsddick dijo

      Bueno imagino que ya es una cosa de gustos .. por ejemplo yo busco simplcidad y realmente veo extremadamente simple el uso de esos dos elementos, tendria que hacer un post para poder describir las razones.Quizas tengo un poco menos tendencia a usar el mouse..
      Si es fluxbox configurado con pocos elementos..

      Saludos

  10.   tmux dijo

    para facilidad y comidad tenes tmux, el mapeo de teclas se lo podes asignar a lo que se te cante.

    Ademas podes crear un socket y compartir sessiones, y si queres algo que te preconfigure el entorno o establezca permisos para el socket tenes scripts como tmuxinator para el manejo de proyectos, y wemux para compartir sessiones. Y en este aspecto terminator se queda corto, ademas de consumir mas recursos que tmux.

    1.    Saito dijo

      Como dije es mas facil y comodo terminator por la forma en la que confguras los atajos de teclado, no he podido configurarlo para que se divida directamente con (Control + Flecha) sino que siempre que lo he usado es (Control + z + Flecha), esa es la forma en la que pude configurar al menos como yo lo ve, me parece un paso mas, pero como dijo “freebsddick” es ya mas cuestion de gustos, no me voy a una pelea de comparaciones entre tmux y terminator, que como dice “msx” terminator es una terminal grafica, claro que viene con multiplexor incluido a diferencia de tmux que lo puedes usar bajo una tty

  11.   msx dijo

    Para todos los que comparan tmux con el resto de las terminales gráficas:

    TMUX NO ES UNA TERMINAL, ES UN MULTIPLEXADOR DE TERMINALES TTYs/VTYs

    La diferencia principal radica en que si bien Terminator, Konsole y amigos puede subdividir su pantallas principales en otras tantas siempre lo hacen SOBRE LA CAPA GRAFICA.

    tmux y GNU Screen en cambio emulan por si mismos una terminal de texto permitiendo DESACOPLAR el contenedor principal como aplicación foreground y seguir corriendo en background.

    tmux es especialmente útil cuando accedemos remotamente via SSH y cuando necesitamos un 100% de fiabilidad al ejecutar determinadas tareas no-gráficas en entornos gráficos que no son 100% fiables.

    Supongamos que estamos realizando un backup, scp o la ejecución de un script que va a llevar horas completarse y que no podemos arriesgarnos a que se interrumpa: tmux viene al rescate.
    En vez de ejecutar dicho script, backup, o scp directamente desde una terminal gráfica o tener que loguearnos en una tty en modo texto podemos invocar tmux, poner a correr la tarea asignada y desacoplar la terminal multiplexada en caso que no necesitemos ver el feedback de nuestro comando.
    Si por cualquier motivo nuestra sesión X crashea tranquilamente iniciamos una nueva sesión o pasamos a una tty, acoplamos la sesión en curso de tmux y continuamos desde donde estamos.

    O si, por ejemplo, necesitamos correr una tarea que va a demandar cierto tiempo y debemos alejarnos de la máquina siempre podemos acceder via SSH a la sesión corriendo de tmux y continuar trabajando desde allí.

    tmux es fantástico aunque con las últimas modificaciones que hicieron en Konsole me encuentro usándolo cada vez menos y sólo para algunas tareas muy puntuales como las que cito arriba.

    http://i.imgur.com/L4JJI8m.png
    http://i.imgur.com/rfWjAMs.png
    http://i.imgur.com/oy5uqSN.jpg
    http://i.imgur.com/AN8guja.png
    http://i.imgur.com/og6NQBE.png
    http://i.imgur.com/JTH4SHc.jpg
    http://i.imgur.com/LaO9IUp.png
    http://i.imgur.com/fQoaKSk.png

  12.   just-another-dl-user dijo

    Excelente dato, justo el otro día necesitaba algo como esto.

    1.    freebsddick dijo

      Que bueno que te sirva.. en lo que tenga algo de tiempo publico la segunda parte 🙂

  13.   @Jlcmux dijo

    Hola. Se puede editar el tmux para que la consola tenga colores. y todo esto que editamos casi todos en el .bashrc ?

  14.   David Solórzano dijo

    Una de las terminales que tabn recomiendo ya que tiene esa caracteristica de ser multiplexor es terminator, la recomiendo
    Para instalarla simple con aptitude install terminator

  15.   Dragnell dijo

    Una pena, en elementary no funciona, Saludos

    1.    msx dijo

      WHAT!?
      En el único elementary OS que tengo instalado (Beta 2 al día) es una de las primeras herramientas que instalé.

      tmux funciona hasta en tostadoras, y si no cheuqueá el proyecto NetBSD.

  16.   Algabe dijo

    Muy bueno el Tmux muy parecido a Terminator, aun que estoy acostumbrado a usar screen 🙂

  17.   snock dijo

    Se puede mezclar konsole con tmux ?

    1.    msx dijo

      No se mezclan, se complementan, chequeá las capturas de mi comentario más arriba.

  18.   armando dijo

    Tmux es increible solo y tambien en combinacion con Vim. Para los que usan screen el paso a Tmux es directo solo es cuestion de mapear ctrl b a ctrl a y aprenderse unos cuantos comandos.

  19.   Dvirus dijo

    tmux = Terminator

    Provides a fully-functional command line interface (CLI) for Linux, Arrange terminals in a grid, Open multiple sessions in tabs,Drag and drop re-ordering of terminals, Lots of configurable keyboard shortcuts,Save multiple layouts and profiles in the preferences, Simultaneous typing to arbitrary groups of terminals, Customizable visual style.

  20.   Luigi dijo

    Exelente, me ha servido mucho.

  21.   cromos dijo

    muchas gracias por el aporte

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.