Ya sea que esté iniciando un elaborado laboratorio casero de Raspberry Pi o esté administrando un edificio lleno de estaciones de trabajo, a veces necesita hacer la misma tarea en varios hosts. Hay muchas formas de automatizar tareas en todos los sistemas. Ansible, por ejemplo, garantiza que todos los sistemas estén en el mismo estado y, a veces, basta con un simple trabajo cron. Pero a veces necesita ejecutar comandos manualmente. Para eso, necesita tmux, un único terminal que le permite controlar varias indicaciones de comando.
tmux es una aplicación de código abierto que agrega capas (o "ventanas", en la terminología de tmux) a la ventana de su terminal para que pueda abrir más de una terminal en una sola ventana de escritorio. El resultado es una interfaz con pestañas (sin las pestañas físicas), por lo que puede cambiar de una terminal abierta a otra sin tener que usar el mouse como lo hace cuando cambia de una pestaña en Firefox a otra.
Esto puede parecer redundante. Después de todo, las aplicaciones de terminal modernas, como GNOME Terminal y Konsole, tienen pestañas incorporadas de manera predeterminada, e incluso algunas terminales muy antiguas, como rxvt, tienen la capacidad de agregar una interfaz con pestañas. Sin embargo, tmux agrega la capacidad de dividir una ventana en paneles, con cada panel que contiene un terminal separado, y cada terminal puede iniciar sesión en un host separado. Puede crear una variedad de terminales con solo unos pocos atajos de teclado o un script tmuxinator rudimentario.
(Seth Kenlon, CC BY-SA 4.0)
Instalar tmux
En Linux y BSD, puede instalar tmux desde su repositorio de software o árbol de puertos. En Mac, usa Homebrew.
Por ejemplo, en RHEL o Fedora:
$ sudo dnf install tmux
Iniciar tmux
Para iniciar tmux, abra una terminal y escriba:
$ tmux
Cuando hace esto, el resultado obvio es que tmux lanza un nuevo shell en la misma ventana con una barra de estado en la parte inferior. Sin embargo, están sucediendo más cosas y puedes verlo con este pequeño experimento. Primero, haz algo en tu terminal actual para ayudarte a diferenciarlo de otro terminal vacío:
$ echo hello
hello
Ahora presiona Ctrl+B seguido de C en tu teclado. Puede parecer que su trabajo se ha desvanecido, pero en realidad ha creado lo que tmux llama una ventana (lo cual puede ser, sin duda, confuso porque probablemente también llame a la terminal que abrió una ventana ). Gracias a tmux, en realidad tiene dos ventanas abiertas, las cuales puede ver en la barra de estado en la parte inferior de tmux. Puede navegar entre estas dos ventanas por número de índice. Por ejemplo, presione Ctrl+B seguido de 0 para ir a la ventana inicial:
$ echo hello
hello
Presiona Ctrl+B seguido de 1 para ir a la primera ventana nueva que creó.
También puede "caminar" a través de sus ventanas abiertas usando Ctrl+B y N (para Siguiente) o P (para Anterior).
El disparador y los comandos de tmux
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
El atajo de teclado Ctrl+B es el disparador tmux. Cuando lo presiona en una sesión de tmux, alerta a tmux para que "escuche" la siguiente tecla o combinación de teclas que sigue. Todos los atajos de tmux, por lo tanto, tienen el prefijo Ctrl+B .
También puede acceder a una línea de comando tmux y escribir comandos tmux por nombre. Por ejemplo, para crear una nueva ventana de la manera difícil, puede presionar Ctrl+B seguido de : para ingresar a la línea de comando tmux. Escriba new-window
y presiona Entrar para crear una nueva ventana. Esto hace exactamente lo mismo que presionar Ctrl+B entonces C .
Dividir ventanas en paneles
Una vez que haya creado más de una ventana en tmux, suele ser útil verlas todas en una sola ventana. Puede dividir una ventana horizontalmente (lo que significa que la división es horizontal, colocando una ventana en una posición Norte y otra en una posición Sur) o verticalmente (con ventanas ubicadas en las posiciones Oeste y Este).
- Para crear una división horizontal, presione Ctrl+B seguido de " (eso es una comilla doble).
- Para crear una división vertical, presione Ctrl+B seguido de % (porcentaje).
Puede dividir las ventanas que se han dividido, por lo que el diseño depende de usted y del número de líneas en su terminal.
A veces las cosas pueden salirse de control. Puede ajustar un terminal lleno de paneles divididos al azar usando estos preajustes rápidos:
Ctrl+B Alt+1 :Divisiones horizontales uniformesCtrl+B Alt+2 :Divisiones verticales uniformesCtrl+B Alt+3 :Tramo horizontal para el panel principal, divisiones verticales para paneles menoresCtrl+B Alt+3 :Tramo vertical para el panel principal, divisiones horizontales para paneles menoresCtrl+B Alt+5 :Diseño en mosaico
Cambiar entre paneles
Para pasar de un panel a otro, presione Ctrl+B seguido de O (como en otro ). El borde alrededor del panel cambia de color según su posición y el cursor de su terminal cambia a su estado activo. Este método "camina" a través de los paneles en orden de creación.
Alternativamente, puede usar las teclas de flecha para navegar a un panel de acuerdo con su diseño. Por ejemplo, si tiene dos paneles abiertos divididos por una división horizontal, puede presionar Ctrl+B seguido de Arriba flecha para cambiar del panel inferior al panel superior. Del mismo modo, Ctrl+B seguido de Abajo flecha cambia del panel superior al inferior.
Ejecutando un comando en múltiples hosts con tmux
Ahora que sabe cómo abrir muchas ventanas y dividirlas en paneles convenientes, sabe casi todo lo que necesita saber para ejecutar un comando en varios hosts a la vez. Suponiendo que tiene un diseño con el que está satisfecho y cada panel está conectado a un host independiente, puede sincronizar los paneles de modo que la entrada que escriba en su teclado se refleje en todos los paneles.
Para sincronizar paneles, acceda a la línea de comando tmux con Ctrl+B seguido de : y luego escribe setw synchronize-panes
.
Ahora todo lo que escribe en su teclado aparece en cada panel, y cada panel responde en consecuencia.
Descargue nuestra hoja de trucos
Es relativamente fácil de recordar Ctrl+B para invocar las características de tmux, pero las claves que siguen pueden ser difíciles de recordar al principio. Todos los atajos de teclado integrados de tmux están disponibles presionando Ctrl+B seguido de ? (salga de la pantalla de ayuda con Q ). Sin embargo, la pantalla de ayuda puede ser un poco abrumadora por todas sus opciones, ninguna de las cuales está organizada por tarea o tema. Para ayudarlo a recordar las funciones básicas de tmux, así como muchas funciones avanzadas que no se tratan en este artículo, hemos desarrollado una hoja de trucos de tmux. Es gratis para descargar, así que obtenga su copia hoy.