tmux puede administrar múltiples ventanas y pantallas divididas en una terminal, y puede mantener las tareas en ejecución después de una desconexión SSH.
Su tecla de prefijo predeterminada es Ctrl+b. La mayoría de los atajos siguen esta secuencia:
- Presione
Ctrl+b; - Suelte ambas teclas;
- Presione la tecla de acción nuevamente.
Por ejemplo, para crear una nueva ventana, en lugar de presionar
Ctrl+b+cal mismo tiempo, presione primeroCtrl+b, suéltelo y luego presionec.
Los atajos de teclado más importantes para recordar
|
|
Restaura la sesión de la que acabas de salir:
|
|
Instale y confirme que tmux esté disponible
Debian y Ubuntu:
|
|
Fedora:
|
|
Arch Linux:
|
|
macOS usando Homebrew:
|
|
Verifique la versión después de la instalación:
|
|
El terminal devuelve información similar a tmux 3.x, lo que indica que el comando ha ingresado a PATH en el entorno actual.
Crear, salir y reanudar sesiones
Inicie una sesión anónima directamente:
|
|
Es más recomendable crear una sesión con nombre:
|
|
work se puede reemplazar por el nombre del proyecto, el nombre del servidor o el nombre de la tarea.
Presione Ctrl+b cuando salga temporalmente y presione d después de soltar. Esta operación se llama desconectar, que solo desconecta el terminal actual de la sesión. La compilación, las descargas, la supervisión de registros y los scripts dentro de la sesión seguirán ejecutándose.
Si se ejecuta exit en el panel, se cerrará el shell actual. Después de que salga el último panel, la ventana y la sesión correspondientes también pueden finalizar.
| funcionar | Tecla de comando o método abreviado |
|---|---|
| Crear una nueva sesión con nombre | tmux new -s nombre-sesion |
| Ver sesión | tmux ls |
| Restaurar conversaciones recientes | tmux attach |
| Restaurar la sesión especificada | tmux attach -t nombre-sesion |
| salida temporal | Ctrl+b, luego presione d |
| Cambiar el nombre de la sesión actual | Ctrl+b, luego presione $ |
| Eliminar sesión especificada | tmux kill-session -t nombre-sesion |
Cuando hay varias sesiones, tmux attach puede indicar que el objetivo no está claro. Comprueba el nombre primero: |
|
|
Luego reanude la sesión especificada:
|
|
Los comandos abreviados también funcionan:
|
|
Teclas de acceso directo de ventana
Windows es similar a las pestañas del navegador. Una sesión puede tener varias ventanas y cada ventana puede contener varios paneles.
| funcionar | tecla de acceso directo |
|---|---|
| Nueva ventana | Ctrl+b, luego presione c |
| siguiente ventana | Ctrl+b, luego presione n |
| Ventana anterior | Ctrl+b, luego presione p |
| ventanas usadas recientemente | Ctrl+b, luego presione l |
| Cambiar a Windows 0–9 | Ctrl+b, luego presione las teclas numéricas |
| Ver lista de ventanas | Ctrl+b, luego presione w |
| Cambiar nombre de ventana | Ctrl+b, luego presione , |
| Cerrar la ventana actual | Ctrl+b, luego presione & |
tmux pedirá confirmación al cerrar la ventana. Después de escribir y, todos los paneles y programas de la ventana finalizarán. No confunda & con d utilizado por desprendimiento. |
|
Cuando el número de ventana exceda 9, use Ctrl+b w para seleccionar de la lista. También puede presionar Ctrl+b ', ingresar el número de ventana y presionar Enter. |
Operación de pantalla dividida y panel
Los paneles son áreas terminales independientes dentro de la misma ventana.
| funcionar | tecla de acceso directo |
|---|---|
| Pantalla dividida a izquierda y derecha | Ctrl+b, luego presione % |
| Dividir pantalla arriba y abajo | Ctrl+b, luego presione " |
| Panel de interruptores | Ctrl+b, luego presione las teclas de flecha |
| Cambiar al siguiente panel | Ctrl+b, luego presione o |
| Número del panel de visualización | Ctrl+b, luego presione q |
| Panel actual en pantalla completa o restaurado | Ctrl+b, luego presione z |
| Cerrar el panel actual | Ctrl+b, luego presione x |
| Girar diseños preestablecidos | Ctrl+b, luego presione espacio |
Después de presionar Ctrl+b q, cada panel mostrará brevemente el número. Presione el número correspondiente mientras el número todavía está en la pantalla para saltar directamente. |
|
Ctrl+b z solo cambia el rango de visualización y no elimina otros paneles; ejecútelo nuevamente para restaurar el diseño original. |
Cambiar tamaño del panel
La operación común es presionar primero Ctrl+b, luego mantener presionado Ctrl y presionar las teclas de dirección continuamente. Si el terminal intercepta la combinación de teclas, puede usar el comando tmux.
Primero presione Ctrl+b :, luego ingrese:
|
|
L, R, U y D representan la izquierda, la derecha, la parte superior y la inferior respectivamente, y los números representan el número de unidades que se ajustarán.
Establezca el ancho o alto del panel actual como porcentaje:
|
|
Desplazarse por la historial de salida
La rueda de desplazamiento de un terminal normal a veces no puede desplazarse directamente por el historial de tmux. Primero ingrese al modo de copia:
|
|
| funcionar | botón |
|---|---|
| Mover línea por línea | teclas de flecha |
| Página arriba | PageUp |
| Página abajo | PageDown |
| saltar a la cima | g, necesita usar el modo vi |
| saltar al fondo | G, necesita usar el modo vi |
| buscar | /, necesita usar el modo vi |
| Salir del modo de copia | q o Esc |
Si g, G y / se comportan de manera diferente, generalmente es porque se utilizan pulsaciones de teclas estilo emacs. El modo Vi se puede habilitar en ~/.tmux.conf: |
|
|
Copiar y pegar texto
Cuando se utiliza el modo vi, el proceso común es el siguiente:
- Presione
Ctrl+b [para ingresar al modo de copia; - Ir al punto de partida;
- Presione la barra espaciadora para iniciar la selección;
- moverse al punto final;
- Presione Enter para copiar al búfer tmux;
- Presione
Ctrl+b ]para pegar. Diferentes versiones o configuraciones personalizadas pueden usarvpara iniciar la selección yypara completar la copia. PresioneCtrl+b ?para ver el enlace real actual. Ver y guardar buffers tmux:
|
|
Habilitar la operación del mouse
Cuando desee utilizar el mouse para seleccionar paneles, ajustar bordes y desplazarse, agregue ~/.tmux.conf:
|
|
Recargar configuración:
|
|
Cuando enciende el mouse, la rueda de desplazamiento generalmente ingresa automáticamente al modo de copia. En algunas terminales, tmux se hará cargo de la selección del mouse; cuando necesites usar la selección nativa del terminal, puedes intentar mantener presionado Shift y arrastrar.
Una configuración básica suficiente
Editar ~/.tmux.conf:
|
|
Después de guardar, ejecute:
|
|
También puede presionar Ctrl+b : e ingresar source-file ~/.tmux.conf. Cuando hay errores de sintaxis en la configuración, tmux señalará el número de línea; comente la configuración agregada recientemente e inténtelo nuevamente sin eliminar el archivo completo.
Modificar clave de prefijo predeterminada
Si Ctrl+b entra en conflicto con la tecla de acceso directo del editor, puede cambiarla a Ctrl+a:
|
|
Después de la carga, todas las operaciones Ctrl+b en este artículo deben reemplazarse con Ctrl+a. La última línea se utiliza para enviar el prefijo al tmux anidado.
Reanudar la tarea después de la desconexión SSH
Al ejecutar una tarea larga de forma remota, puede seguir el siguiente proceso:
|
|
Cuando necesite salir, presione Ctrl+b d y luego salga de SSH. Las sesiones suelen sobrevivir a desconexiones inesperadas de la red.
Después de volver a conectar ejecute:
|
|
tmux solo puede guardar sesiones de terminal y no puede reactivar automáticamente programas que salieron con un error. Las tareas importantes aún deben registrarse:
|
|
Errores comunes y soluciones.
no server running
Cuando se ejecuta tmux ls, aparece no server running on /tmp/tmux-..., lo que indica que el usuario actual no tiene un servidor tmux en ejecución. Simplemente recrea la sesión:
|
|
sessions should be nested with care
Esto significa que el shell actual ya está en tmux y se ha ejecutado tmux. Primer control:
|
|
Cuando haya resultados, primero presione Ctrl+b c para crear una nueva ventana o use el siguiente comando para cambiar de sesión:
|
|
El tamaño de la pantalla es incorrecto después de attach
Cuando se conectan terminales de diferentes tamaños a la misma sesión, el área de visualización puede verse afectada por el cliente más pequeño. Otros clientes pueden desconectarse durante la recuperación:
|
|
Ver clientes existentes:
|
|
Las teclas de acceso directo no responden
Consultar en orden:
- Ya sea para presionar el prefijo primero y soltarlo;
- Si el prefijo ha sido modificado en la configuración;
- Si el terminal o el escritorio remoto interceptan la combinación de teclas;
- Ya sea en tmux anidado;
- Si el complemento sobrescribe el enlace actual. Mostrar todos los enlaces reales:
|
|
Consultar desde el shell las teclas vinculadas a la división de paneles:
|
|
Cerrar accidentalmente un panel o sesión
tmux no tiene una función general de deshacer y cerrar. Antes de cerrar, asegúrese de que no haya editores no guardados, tareas interactivas o resultados no escritos en archivos. Utilice tee para guardar el registro, lo que puede reducir la pérdida después de cerrar accidentalmente el panel.
Apagado y limpieza seguros
Simplemente finalice una sesión:
|
|
Mantenga work y finalice otras sesiones:
|
|
Finalice todo el servidor tmux para el usuario actual:
|
|
kill-server cerrará todas las sesiones administradas por el servidor y los procesos en ellas. Antes de la ejecución, ejecute tmux ls para confirmar que aún no hay tareas que deban conservarse.
Especifique con precisión sesiones, ventanas y paneles.
El comando tmux suele utilizar -t para especificar el objetivo. El formato de destino completo es:
|
|
Por ejemplo, work:1.2 representa la ventana 1, panel 2 en la sesión work.
Ver objetivos actuales:
|
|
Listar todas las ventanas:
|
|
Enumere todos los paneles y sus comandos actuales:
|
|
Este método de escritura es adecuado para solucionar problemas de ubicaciones de tareas entre múltiples sesiones y también es adecuado para que los scripts solo operen paneles específicos para evitar cerrar accidentalmente otras terminales.
El objetivo puede omitir algunos campos. La ventana 2 de la sesión actual se puede escribir como :2 y el panel 1 de la ventana actual se puede escribir como .1. Se recomienda utilizar el objetivo completo en los scripts de automatización para reducir la ambigüedad causada por los cambios en el foco actual.
Crea ventanas y divide pantallas desde el shell.
Además de los atajos de teclado, los comandos tmux también se pueden llamar directamente. Cree una nueva ventana para la sesión work:
|
|
Cree pantallas divididas izquierda y derecha en la ventana:
|
|
Crea una pantalla dividida de arriba a abajo:
|
|
Ejecute el comando directamente al crear el panel:
|
|
El panel con el comando se cerrará una vez que finalice el comando. Si desea ver el resultado final, puede decirle al shell que persista después del comando:
|
|
En un entorno de producción remoto, no escriba comandos que requieran contraseñas directamente en el historial de Shell. Utilice los mecanismos de autenticación existentes y limite el panel de registro para leer solo los archivos necesarios.
Enviar comando a la sesión en segundo plano
send-keys puede simular la entrada del teclado en el panel especificado:
|
|
Envíe Ctrl+c al programa en primer plano en ejecución:
|
|
Antes de enviar el comando, confirme el programa que se está ejecutando actualmente en el panel:
|
|
Si el resultado es un editor, un cliente de base de datos u otro programa interactivo, enviar texto directamente puede provocar la modificación de los datos. Al automatizar, prepare sesiones dedicadas y nombres de ventanas fijos para las tareas, y no confíe en números temporales.
Cree una sesión en segundo plano y comience la tarea:
|
|
Compruebe si la sesión existe:
|
|
Un código de retorno de 0 indica que la sesión de destino existe. Solo muestra que la sesión tmux todavía está ahí, no que el script tuvo éxito. También debe verificar el estado de salida, el registro o el archivo de salida.
Capturar la salida del panel para diagnosticar problemas
También puedes leer el historial del panel sin entrar a una sesión:
|
|
Obtenga solo las últimas 100 filas:
|
|
Guardar en archivo:
|
|
capture-pane lee la pantalla y el contenido del historial guardado por tmux. Si la salida del programa excede history-limit, el contenido anterior no se puede restaurar.
Las tareas que requieren auditorías a largo plazo deben hacer que el programa escriba sus propios registros, en lugar de depender únicamente del historial de tmux. Si los registros contienen tokens, cadenas de conexión o datos de usuario, también se deben establecer los permisos de archivo y los períodos de retención adecuados.
Comprobar si la sesión todavía tiene clientes
El siguiente comando puede verificar qué terminales todavía están conectados a tmux:
|
|
Si se requiere una sesión exclusiva antes del período de mantenimiento, notifique primero a otros usuarios y luego decida si desea usar attach -d para desconectar a sus clientes.
Una lista de clientes vacía no significa que la tarea haya finalizado, solo significa que ningún terminal muestra la sesión actualmente.
Preguntas frecuentes
¿La desconexión detendrá el programa?
No. Ctrl+b d solo desconecta clientes. Si el programa continúa ejecutándose también depende de si el servidor se apaga, se reinicia o si el proceso finaliza mediante otro mecanismo.
¿Por qué Ctrl+b % ingresó un signo de porcentaje?
Por lo general, no hay un prefijo de activación o las teclas se presionan en una combinación simultánea. Presione primero Ctrl+b y suéltelo todo antes de ingresar a %; la mayoría de las distribuciones de teclado requieren Shift+5.
¿Por qué es difícil presionar comillas dobles?
Primero active el prefijo y luego use la combinación de comillas dobles correspondiente a la distribución del teclado actual, generalmente Shift+'. También puede volver a vincular una clave de pantalla dividida más conveniente en la configuración.
¿Cómo confirmar la sesión, ventana y panel actual?
|
|
El resultado es el nombre de la sesión, el número de ventana y el número del panel, en orden.
Resumen rápido
La estructura de tmux se divide en tres capas: la sesión guarda todo el entorno de trabajo, la ventana distingue las tareas y el panel se encarga de dividir la pantalla.
El proceso diario consiste en usar tmux new -s nombre para crear una sesión, organizar tareas a través de ventanas y pantallas divididas, presionar Ctrl+b d para salir de manera segura y luego usar tmux attach -t nombre para reanudar.
Cuando olvide un acceso directo, presione Ctrl+b ? para ver los enlaces reales en su configuración actual, lo cual es más confiable que memorizar la lista completa.