¡Esta es una revisión vieja del documento!
Tabla de Contenidos
tmux
Multiplexor de terminales, permite ejecutar diferentes programas en un único terminal.
Vocabulario
- Window (ventana): como los escritorios virtuales, pero en el terminal, es decir, espacios de trabajo diferentes.
- Pane (panel): cada división del terminal
- Prefix (prefijo): combinación de teclas base para realizar acciones en tmux
Configuración
La configuración se establece en un fichero .tmux.conf que se guarda en el directorio personal del usuario.
Ejemplo:
# Cambiamos la combinación por defecto unbind C-b set -g prefix C-a # Cambiar de panel con Alt + flecha bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # Habilitar el ratón (a partir de la versión 2.1) set -g mouse on
En el ejemplo anterior quitamos la combinación por defecto Ctrl+B para establecer una más cómoda
Atajos de teclado
prefix es la combinación que se tenga definida por defecto (en esta wiki la definimos como Ctrl+A).
- prefix +
%: divide la pantalla verticalmente - prefix +
": divide la pantalla horizontalmente - prefix +
z: zoom en el panel activo (o recupera su tamaño original). - prefix +
x: cerrar panel activo. - prefix
A-1: cambia a la disposición horizontal - prefix
A-2: cambia a la disposición vertical - prefix
A-3: cambia a la disposición horizontal (incrementa el panel con foco) - prefix
A-4: cambia a la disposición vertical (incrementa el panel con foco) - prefix
A-5: cambia a la disposición en mosaico - prefix
space: cambia a la siguiente disposición - prefix
A-↑[↓|→|←]: redimensiona un panel - prefix
Control+↑[↓|→|←]: redimensiona un panel con más sensibilidad. - prefix
{: mover el panel a la anterior posición - prefix
}: mover el panel a la siguiente posición - prefix
$: renombrar la sesión actual - prefix
c: Crear una nueva ventana - prefix
p: Ir a la ventana anterior. - prefix
n: Ir a la ventana siguiente. - prefix
1[2|2… ]: moverse a la ventana 1, 2… - prefix
,: renombrar la ventana actual. - prefix
s: mostrar sesiones abiertas de Tmux. - prefix
?: muestra la lista de comandos de tmux - prefix
[: habilita el scroll para poder moverse con los cursoresAv Pág… (qpara salir de ese modo)
Uso
Crear sesión
tmux
Crearla sesión con un nombre:
tmux new -s <nombre_sesion>
Salir sesión
Para salir de la sesión, pero que siga funcionando de fondo:
prefix + d
Recuperar sesión
Si hemos perdido la conexión con el servidor (SSH). Tan pronto nos reconectemos, miramos las sesiones de tmux:
tmux ls 0: 2 windows (created Tue Aug 23 12:39:52 2011) [103x30]
En el caso anterior nos dice que existe una sesión llamada 0 (no tiene nombre) que tiene dos ventanas.
Y nos conectamos a ella:
tmux attach -t 0
Si solo tuviésemos una sesión de Tmux, podríamos usar la forma abreviada:
tmux a
Renombrar sesión
Por defecto, al lanzar tmux, le asigna un identificador numérico a la sesión. Si queremos cambiarle el nombre:
tmux rename-session -t 0 <nuevo_nombre_sesion>
En el ejemplo anterior, cambiaríamos el nombre de la sesión 0 por nuevo_nombre_sesion
Matar sesión
Si queremos finalizar alguna sesión de tmux, no tenemos que entrar en ella, podemos hacerlo de la siguiente manera:
tmux kill-session -t <nombre_sesion>
Modo comando
Para entrar en el modo comando:
prefix + :
En ese modo, podemos sincronizar todos los paneles abiertos con:
setw synchronize-panes
Entonces lo que escribamos, se enviará a todos los paneles, permitiéndonos realizar las mismas operaciones en todos a la vez.
Compartir sesión
Utilizando la misma cuenta de usuario, es sencillo compartir la sesión de tmux para que varias conexiones vean lo mismo y lo que se teclee en una se vea en directo en la otra:
tmux new -s compartida
Si abrimos otro terminal y entramos:
tmux attach -t compartida
Habremos entrado en la misma sesión.
Si queremos lograr lo mismo, pero con usuarios diferentes la sesión compartida tendría que crearse mediante un socket al que tengan acceso ambos usuarios, es decir, que estén en el mismo grupo. Por ejemplo:
tmux -S /tmp/sesion-compartida new -s compartida
Cambiamos el grupo del socket:
chgrp grupo-compartido /tmp/sesion-compartida
Donde grupo-compartido sería un grupo donde están los usuarios que quieren acceder a la sesión de tmux.
En otro terminal, otro usuario, se conectaría a la sesión:
tmux -S /tmp/sesion-compartida attach -t compartida

