tmux

¡Esta es una revisión vieja del documento!


tmux es un multiplexor de terminal: permite abrir varias aplicaciones de consola al mismo tiempo a partir de una única conexión al servidor. De esta forma es posible mantener una sesión activa incluso si nos desconectamos del mismo.

tmux utiliza el fichero de configuración opcional ~/.tmux.conf.

Tmux es un proyecto creado por OpenBSD (Texto-plano funciona en un servidor OpenBSD).

Para iniciar una instancia de tmux, simplemente escribe:

tmux

Una vez que arranque el entorno tmux, normalmente nos presentará una única sesión con una sola ventana, cargando en ella tu intérprete de comandos (como si fuese un emulador de terminal común y corriente).

En la parte inferior verás la barra de estado de Tmux (normalmente en color verde).

Crear Ventana nueva

Como primera medida podrás crea una ventana nueva en Tmux. Utiliza la combinación Ctrl+b,c, y crearás una nueva ventana de terminal, y en ella se cargará otra instancia de tu intérprete de comandos, que dará nombre a la ventana (por ejemplo: 0:ksh?, 1:ksh, 2:ksh, etc, ya que “ksh” constituye el intérprete de comandos que texto-plano.xyz utiliza por defecto).

Para conmutar entre las ventanas creadas, utiliza Ctrl+b,n (ventana siguiente) y Ctrl+b,p (ventana anterior). Podrás distinguir la ventana activa en la barra de estado pues recibirá un *.

En cada una de estas ventanas puedes ejecutar un programa que desees.

Para cerrar estas ventanas, podrás introducir el comando “exit” para cerrar el intérprete (como en cualquier sesión de terminal común y corriente), o bien -en caso que se hubiese colgado- forzar su cierre con Ctrl+b,&.

Trabajar con Paneles

Sin duda la característica favorita que ofrece tmux es la posibilidad de subdividir la ventana actual en “paneles”, tanto vertical como horizontalmente.

Utiliza Ctrl+b,% y Ctrl+b, para subdividir la ventana en paneles horizontales y verticales respectivamente. Podrás conmuta el panel activo de la ventana con Ctrl+b,o.

Existen varias maneras de redimensionar los paneles, pero la más simple es conmutar entre las diferentes diseños de panelado que vienen ya preconfigurados en tmux. Esta función se realiza con Ctrl+b,Barra espaciadora.

Tmux emplea el clásico modelo cliente-servidor de otros emuladores de terminal, pero puede tener múltiples sesiones y cada ventana es una entidad independiente que puede ser enlazada libremente a múltiples sesiones, se puede anclar (esto es, disponerla para usar en ella el teclado como dispositivo de entrada).

Como has visto, casi todos los comandos de Tmux se activan con el atajo Ctrl+b, a lo que se suma otro caracter, combinación o palabras para activar uno de las operaciones.

Comandos Generales

Ctrl+b,? Ayuda de los atajos de Tmux
Ctrl+b,c Crea una nueva ventana de sesión Terminal.
Ctrl+b,n Activa la la Ventana siguiente
Ctrl+b,p Activa la Ventana previa
Ctrl+b,& Mata (fuerza el cierre) la ventana actual
Ctrl+b,l Se mueve a la próxima ventana seleccionado
Ctrl+b,, Renombra la ventana actual
Ctrl+b,d Cierra Tmux
Manejo básico de paneles
Ctrl+b,% Divide la ventana actual verticalmente.
Ctrl+b, Divide la ventana actual horizontalmente.
Ctrl+b,o Nos deplaza hacia el próximo panel.
Ctrl+b,q Muestra los números de paneles. En este momento podremos tipear el número correspondiente para desplazarnos a él.
Ctrl+b,{ Mueve el panel actual a la izquierda.
Ctrl+b,} Mueve el panel actual a la derecha.
Redimensionado de paneles
Ctrl+b, resize-pane Achica el panel actual (por defecto)
Ctrl+b, resize-pane 20 Cambia el tamaño del panel actual achicándolo 20 celdas
Ctrl+b, resize-pane -U Cambia el tamaño del panel actual hacia arriba
Ctrl+b, resize-pane -U 20 Cambia el tamaño del panel actual hacia arriba 20 celdas
Ctrl+b, resize-pane -L Cambia el tamaño del panel actual hacia la izq
Ctrl+b, resize-pane -L 20 Cambia el tamaño del panel actual hacia la izq 20 celdas
Ctrl+b, resize-pane -R Cambia el tamaño del panel actual hacia la der
Ctrl+b, resize-pane -R 20 Cambia el tamaño del panel actual hacia der 20 celdas
Ctrl+b, resize-pane -t 2 20 Cambia el tamaño del panel identificado como 2 achicándolo 20 celdas
Ctrl+b, resize-pane -t -L 20 Cambia el tamaño del panel id2 a la izq 20 celdas

¿Cómo abro una nueva ventana?

Todas las operaciones de tmux se realizan con la combinación de teclas Ctrl+b, siendo ésta la predeterminada, aunque con su archivo de configuración es posible cambiarla. Mantienes presionada la tecla Ctrl mientras presionas la tecla b, sueltas ambas y presionas la tecla que realiza la función que deseas.

En este caso debes presionar Ctrl+b seguido de c

¿Cómo me muevo entre ventanas?

Es notorio que, en caso de seguir con la configuración predeterminada, en la barra de estado nos aparecerán la información que necesitamos, que en este caso son los índices de las ventanas. Hay distintas formas de poder movernos entre ventanas, las cuales dependerán de cada usuario, hábito y contexto. Primero que nada, vamos a presionar el prefijo de tmux Ctrl+b seguido de c para poder crear una nueva ventana. Notaremos que se ha incrementado a 1 (en caso de que sea la segunda ventana, ya que se cuenta desde 0) seguido de dos puntos y el nombre del programa, que mayormente es la shell de usuario.

Para desplazarte presiona Ctrl+b y usa las teclas RePág y AvPág.

También puedes moverte hacia la derecha con Ctrl+b seguido de n. Para moverte hacia la izquierda presiona Ctrl+b seguido de p.

Otra opción es seleccionarla de un listado con Ctrl+b seguido de w.

O en caso de conocer directamente el índice de la ventana, se puede presionar Ctrl+b seguido de una comilla simple (')

¿Le puedo cambiar el nombre a una ventana?

Sí, se puede con Ctrl+b seguido de ,.

¿Cómo cierro una ventana?

Con Ctrl+b seguido de & (te va a preguntar si estás seguro/a).

¿Cómo muevo una ventana de lugar?

Esto es un poco más complejo pero se hace así:

Primero: Ctrl+b seguido de :

Segundo (escribimos):

swap-window -s [número de la ventana] -t [posición que queremos]

¿Cómo salir de la sesión de tmux sin matar el servidor?

Al presionar Ctrl+b seguido de d saldremos de la sesión, aunque, como el servidor de tmux está todavía encendido, no está perdida, por lo que si algún proceso en ejecución sigue activo, no morirá al concluir esta operación.

¿Cómo recupero una sesión de tmux?

Primero, es necesario saber cómo se llama la o las sesiones (ya que es posible tener varias). Al principio tienen el mismo sistema de nombramiento que las ventanas, o en otra palabras, son nombradas a partir del 0 y se aumentan secuencialmente por cada nueva sesión creada. Para poder ver una lista de las sesiones, es necesario ejecutar el siguiente comando en la shell de nuestro sistema.

tmux ls

Esto nos mostrará una salida con el siguiente formato:

0: 1 windows (created Mon Jul 12 17:49:23 2021)
1: 1 windows (created Mon Jul 12 17:50:34 2021)

O mejor dicho: [nombre de la sesión]: [número de ventanas] (fecha de creación).

Por lo tano, si deseas acceder nuevamente a la sesión 1, introduce lo siguiente:

tmux attach -t 1

Terminología

  • Session (“Sesión”): Grupos de una o más ventanas juntas;
  • Session name (“Nombre de la sesión”): El nombre de la sesión, que por defecto es un número empezando desde cero;
  • Window (“Ventana”): Grupos de uno o más paneles juntos, enlazados a una o más sesiones;
  • Pane (“Panel”): Contiene una terminal y un programa en ejecución, mostrada en una ventana;
  • Active pane (“Panel activo”): El panel en la ventana actual que se puede escribir; uno por ventana;
  • Current window (“Ventana actual”): La ventana actual en la sesión adjuntada que se puede escribir; uno por sesión;
  • Last window (“Última ventana”): La ventana anterior;
  • Window list (“Lista de ventanas”): La lista de ventanas en una sesión en orden numérico;
  • Window index (“Índice de la ventana”): El número de una ventana en una lista de ventanas de una sesión;
  • Window layout (“Diseño de ventana”: El tamaño y posición de los paneles en una ventana;
  • Prefix (Prefijo): El prefijo de tmux para iniciar la ejecución de comandos, siendo éste por defecto CTRL más b.

Más información: https://github.com/tmux/tmux/wiki/Getting-Started#basic-concepts

tpm es un gestor de paquetes para tmux, muy simple, ligero y fácil de usar.

Para instalarlo, clona su repositorio en tu directorio:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Coloca luego lo siguiente en nuestro archivo de configuración ubicado en ~/.tmux.conf:

run '~/.tmux/plugins/tpm/tpm'

Y si tenemos una sesión en ejecución, es necesario presionar prefix+: y ejecutar lo siguiente:

source-file ~/.tmux.conf

Eso recargaría la configuración de tmux en ejecución.

Más información: https://github.com/tmux-plugins/tpm

tmux-themepack

tmux es altamente configurable, tanto que hasta su interfaz se puede configurar, pero por suerte de los novicios, hay personas que han creados soluciones sencillas de usar. Usaremos tpm, que fue descrita en la anterior sección.

Primero que nada es necesario elegir un tema, y luego escribir tanto el tema seleccionado como la variable que le indica a tpm que debe instalar el plugin jimeh/tmux-themepack; todo ésto debe estar antes de ejecutar el comando inicial de tpm. Todo debería quedar así:

# Plugins
set -g @plugin 'jimeh/tmux-themepack'

# tmux-themepack (configuración)
set -g @themepack 'powerline/block/blue'

# Comando inicial de tpm
run '~/.tmux/plugins/tpm/tpm'

Ahora en tmux, y con los cambios ya guardados, se debe ejecutar prefix+I y se congelará todo hasta que se termine de instalar todos los plugins. Cuando concluya, nuestra sesión se convertirá en un lindo azul.


Hay muchas más cosas que se pueden hacer pero esto es lo fundamental para poder usar nuestra sesión SSH de una forma eficiente y mantener procesos funcionando cuando apaguemos nuestro pc en casa. Uno de los casos más comunes es mantener una sesión de IRC activa.

Cualquier consulta a admin arroba texto-plano.xyz

Video de TMUX en acción

  • tmux.1713893037.txt.gz
  • Última modificación: 2024/04/23 17:23
  • por peron