¿Cómo instalar, configurar y usar Tmux?
Hoy queremos centrarnos en Tmux, una herramienta que puede potenciar el trabajo con el terminal de Linux. Gracias a Tmux puedes realizar el trabajo con el terminal de una manera más productiva, sacando partido a múltiples sesiones, trabajos en background y muchas otras funcionalidades avanzadas que te ayudarán en tareas como la administración del sistema, el desarrollo o la administración de servidores.
- ¿Qué es Tmux?
- ¿Por qué usar Tmux?
- Cómo instalar Tmux paso a paso
- Primeros pasos con Tmux
- Cómo configurar Tmux a tu gusto
- Trabajar con sesiones en Tmux
- Ventanas y paneles de Tmux
- Comandos avanzados y personalización con Tmux
- Casos prácticos de uso de Tmux
- Consejos y buenas prácticas al trabajar con Tmux
¿Qué es Tmux?
Tmux es el acrónimo de Terminal Multiplexer, una herramienta que permite gestionar múltiples sesiones de terminal, accediendo a ellas a través de varios paneles dentro de una sola ventana de un terminal basado en texto.
Básicamente, te permite dividir tu pantalla en un terminal clásico, ofreciendo funcionalidades típicas de terminales avanzados que funcionan en sistemas de interfaz gráfica, como el trabajo con múltiples pestañas, así como otras utilidades como mantener procesos en ejecución, incluso si cierras la terminal. Con todo, te abre nuevas posibilidades de trabajar de forma más organizada y productiva, especialmente cuando tienes que operar en entornos de servidores o trabajo remoto.
¿Por qué usar Tmux?
Si te dedicas a la administración de servidores o el desarrollo moderno obtendrás diversos beneficios al trabajar con Tmux.
Multiplexación de terminales en una sola ventana
La multiplexación de terminales que ofrece Tmux permite dividir tu pantalla en múltiples paneles, que son como distintas ventanas de ejecución que funcionan dentro de una misma sesión. Esto facilita la ejecución simultánea de varios procesos en un mismo servidor, sin necesidad de abrir varias terminales.
Persistencia de sesiones tras cerrar la terminal
Otra cosa que también nos permite mejorar la productividad con Tmux es que las sesiones continúan ejecutándose aunque cierres la ventana, incluso si pierdes la conexión SSH de manera momentánea.
Simplemente, al volver a conectarte a Internet, podrás recuperar exactamente el mismo estado en el que estabas cuando perdiste la conexión.
Ideal para trabajo remoto y administración de servidores
Tmux puede servir para cualquier tipo de operación en el termina,l pero cuando le vas a sacar mucho partido es al trabajar por SSH con servidores remotos.
Situaciones habituales como perder la conexión no interrumpirán los procesos y eso es algo que se agradece mucho como administrador de sistemas, incluso si eres desarrollador y tienes que lidiar con entornos Linux, algo muy habitual en el panorama actual.
Compatible con scripts y flujos de trabajo automatizados
Por supuesto, Tmux permite también ejecutar y organizar comandos de forma automatizada mediante scripts, facilitando tareas repetitivas, con la seguridad que los procesos no se van a interrumpir y que completarán los procesos, aunque puntualmente puedas perder la conexión.
Ligero, rápido y disponible en múltiples sistemas operativos
Todas las funcionalidades que ofrece las implementa de una manera ligera, por lo que esta herramienta puede aplicarse en cualquier tipo de equipo, incluso aunque no tenga demasiados recursos. Además es compatible con la mayoría de distribuciones Linux, incluso con otros sistemas «Unix like» como macOS.
Cómo instalar Tmux paso a paso
Utilizar Tmux requiere un primer paso de instalación, que no difiere mucho de cualquier otro programa que utilices en tu distribución Linux. Vamos a explicar paso a paso como poder instalarlo en tu sistema.
Instalación de Tmux en sistemas basados en Debian (Ubuntu, Linux Mint, etc.)
Para instalarlo en sistemas basados en Debian utilizamos el gestor de paquetes «atp». Simplemente tienes que lanzar los siguientes comandos:
sudo apt update sudo apt install tmux
Instalación de Tmux en sistemas basados en Red Hat (CentOS, Fedora, etc.)
Cada distribución de Linux tiene su propio gestor de paquetes. Por ejemplo si estamos en sistemas basados en Red Hat utilizamos este comando:
sudo dnf install tmux
Ten en cuenta que en versiones más antiguas de estas distros se usaba yum.
sudo yum install tmux
Cómo instalar Tmux en macOS
La recomendación para la instalación de Tmux en sistemas MacOS es utilizar el gestor de paquetes Homebrew, lo que hace extremadamente sencillo conseguir cualquier programa basado en terminal.
brew install tmux
Primeros pasos con Tmux
Una vez que tienes Tmux instalado puedes empezar a disfrutar de las funcionalidades avanzadas que nos ofrece Terminal Multiplexer. Vamos a ver aquí una descripción de las primeras funciones que deberías aprender a utilizar.
Cómo iniciar y cerrar una sesión de Tmux
Para iniciar una nueva sesión con Tmux lanzamos el comando «tmux». Esto simplemente cambiará el estilo de nuestro terminal, añadiendo una barra en la parte inferior, con la sesión en el mismo sistema en el que estábamos trabajando.
Una vez abierto de Tmux podemos cerrar la sesión con el comando exit, o bien presionar Ctrl + D.
Comandos básicos para navegar entre paneles y ventanas
El trabajo con Tmux se realiza completamente dentro de nuestra propia ventana de terminal, pudiendo realizar operaciones típicas de sistemas de interfaz gráfica basados en ventanas, pero dentro de una interfaz basada en texto.
Algunas acciones de uso de Tmux que debes conocer son:
- Dividir la ventana verticalmente con Ctrl + B y luego %
- Dividir la ventana horizontalmente: Ctrl + B luego «
- Para cambiar entre paneles: Ctrl + B + flechas
También puede trabajar con una especie de «ventanas», que no son ventanas propiamente dichas, sino que son producidas dentro del mismo terminal. Sería como trabajar con paneles pero a tamaño completo.
- Si deseas crear una nueva ventana: Ctrl + B luego c
- Luego puedes cambiar entre ventanas con: Ctrl + B + número de ventana
En la parte de abajo te aparece el número de la ventana. En esta imagen tenemos abierta la segunda ventana, que tiene el índice 1.
Atajos de teclado esenciales en Tmux
Los atajos de teclado en Tmux empiezan siempre mediante un prefijo que es Ctrl + B. Luego se presiona cualquier comando que queramos producir en el Terminal Multiplexer.
Otros atajos de teclado importantes son:
- Cerrar panel: Ctrl + B luego x
- Renombrar ventana: Ctrl + B luego ,
- Listar ventanas: Ctrl + B luego w
Cómo configurar Tmux a tu gusto
Tmux ya viene configurado de una manera bastante estándar, por lo que podríamos utilizarlo sin necesidad de mayores acciones. Ahora bien, existe la posibilidad de personalizarlo para conseguir adaptarlo mejor a nuestras necesidades.
Archivo .tmux.conf: qué es y cómo editarlo
El archivo principal para conseguir realizar las configuraciones en Tmux es «.tmux.conf». Se debe situar en la carpeta personal del usuario y permite definir ajustes personalizados como colores, atajos de teclado y comportamientos.
El archivo no se encontrará de manera predeterminada en tu sistema, por lo que tienes que crearlo con algún editor. Por ejemplo puedes utilizar el editor «nano» que es bastante sencillo de usar.
nano ~/.tmux.conf
Luego utiliza los comandos de nano, que aparecen en la parte inferior de la ventana para guardar el archivo y cerrar la edición.
Personalización de colores, prefijos y comportamiento
Algunas configuraciones típicas dentro del archivo .tmux.conf son las personalizaciones de colores, así como prefijos.
Por poner un ejemplo, vamos a ver cómo podemos cambiar el prefijo a Ctrl + A, algo que conseguimos con la siguiente sintaxis:
unbind C-b set -g prefix C-a bind C-a send-prefix
Otra cosa útil que igual te interesa es activar el modo de ratón que se hace con esta línea de configuración.
set -g mouse on
Luego puedes personalizar la barra de estado con algunas configuraciones como estas, que permiten cambiar los colores.
set -g status-bg colour235 set -g status-fg white
Plugins útiles para mejorar la experiencia con Tmux
Tmux tiene una buena cantidad de plugins que puedes utilizar para conseguir ampliar las funcionalidades del terminal. Los tienes que activar con Tmux Plugin Manager. En esa misma página encontrarás alternativas de plugins interesantes, además de información útil por si acaso quieres crear tu propio plugin.
Trabajar con sesiones en Tmux
Vamos a ver ahora nuevos comandos que pueden resultarte útiles para trabajar con sesiones en Tmux.
Crear, nombrar y listar sesiones
Las sesiones se crean con el comando que ya explicamos anteriormente «tmux», sin embargo las puedes crear con un nombre con un comando un poco más elaborado:
tmux new -s mi_sesion
Luego puedes listar las sesiones que tienes en funcionamiento asi:
tmux ls
Entrar y salir (detach) de una sesión
Para salir de una sesión usamos el atajo de teclado que se activa con «d» (recuerda siempre el prefijo delante, por lo que el comando completo sería Ctrl + b y luego d).
Matar (kill) una sesión de Tmux
Podemos ir un poco más lejos, y «matar» unas sesión con el comando kill.
tmux kill-session -t mi_sesion
En este punto es importante aclarar la diferencia entre salir (detach) de una sesión y matar (kill) de la sesión, ya que es bastante importante:
Salir se usa para desconectarte de una sesión sin cerrarla, lo que quiere decir que los procesos dentro de Tmux siguen ejecutándose en segundo plano.
Puedes volver a entrar más tarde con:
tmux attach -t nombre_sesion
Matar (kill) cierra la sesión por completo, por lo que todo lo que se esté ejecutando se interrumpe sin más.
Ventanas y paneles de Tmux
En los anteriores puntos de este post ya vimos cómo se crean ventanas y paneles en Tmux.
Crear y navegar entre ventanas
Recuerda, en Tmux, una ventana es como una pestaña en un navegador, cada una con su propia consola, que se muestra en todo el espacio del terminal.
Puedes crear una nueva ventana con Ctrl + b, luego c. Para cambiar de ventanas tienes que usar Ctrl + b, luego el número de ventana. Recuerda que la ventana primera comienza con 0, igual que los arrays en programación.
Para facilitarte la vida, puedes ver el índice de la ventana en la barra de estado. También puedes usar los comandos «n» y «p» para ir a la ventana siguiente y anterior.
Dividir paneles (layouts verticales y horizontales)
También hemos visto antes en este post que puedes utilizar paneles, tanto verticales como horizontales, para dividir una misma ventana en varias áreas de trabajo visibles a la vez.
Puedes crear divisiones verticales con %, horizontales con » y luego moverte con las flechas (activando siempre los comandos con el prefijo ya mencionado Ctrl + b).
Moverse entre paneles y cambiar sus tamaños
Aparte de moverse entre paneles, que haces con Ctrl + b y luego las flechas de dirección de los cursores, también puedes redimensionar paneles usando el comando Alt + flechas de los cursores, lo que te permite ajustar tamaños, según las necesidades de cada tarea que tengas en ellos y el espacio que necesites para ver la salida del terminal.
Comandos avanzados y personalización con Tmux
Tmux es un programa muy avanzado, que nos permite unas acciones realmente sofisticadas. Vamos a ver algunas cosas útiles que todavía no hemos mencionado.
Sincronizar paneles para escribir en múltiples ventanas a la vez
Puedes tener paneles sincronizados, algo que permite que todo lo que escribes en uno de ellos se replique en los demás.
Para activarlo tenemos que poner un comando avanzado, que introduce de la siguiente manera:
- Primero colocamos el prefijo, igual que siempre, Ctrl + b
- Luego escribimos «:», con lo que se cambiará la barra de estado de color, para que sepas que vas a introducir comandos avanzados en modo texto.
- Luego escribimos el resto del comando «set-window-option synchronize-panes on»
En resumen:
Ctrl + b, :set-window-option synchronize-panes on
Entonces veremos como, al escribir cualquier texto en un panel, ese mismo texto aparecerá en la línea de comandos de los otros paneles abiertos.
Para desactivar esta funcionalidad tienes que escribir este otro comando avanzado:
Ctrl + b, :set-window-option synchronize-panes off
Atajos de teclado útiles para aumentar la productividad
Algunos atajos comunes que no hemos visto:
- Saltar al siguiente panel con «o»
- Cerrar panel actual con «x»
- Recargar configuración con el comando avanzado :source-file ~/.tmux.conf
Casos prácticos de uso de Tmux
Podemos utilizar Tmux en muchos contextos para obtener una mayor productividad en nuestro trabajo del día a día. Algunos usos clásicos donde los administradores de sistemas le sacan especial partido son los siguientes.
Uso de Tmux para monitorear logs en tiempo real
Por ejemplo, podremos utilizar diversos paneles para monitorear logs en tiempo real.
Incluso podrías ejecutar comandos en algún servicio y ver el log en un panel al lado, verificando en todo momento el funcionamiento de las acciones que vienes ejecutando.
Organización de entornos de desarrollo por proyecto
Cuando estamos desarrollando, podemos tener en una ventana el texto del script y en otra ventana o panel su ejecución, de modo que en un mismo espacio de trabajo podemos apreciar la marcha de nuestro programa, algo que cobra especial utilidad cuando desarrollamos en sistemas remotos.
Automatización de tareas con múltiples paneles
Con scripts de automatización podemos acelerar nuestro trabajo ejecutando varios procesos en paneles distintos. Incluso podríamos usar paneles sincronizados para desplegar actualizaciones en varios servidores simultáneamente, por poner un ejemplo.
Recuperación de sesiones tras caídas de red o SSH
Como hemos dicho antes, si se corta la conexión SSH Tmux mantiene la sesión activa en el servidor. Por lo que solamente necesitas reconectar y ejecutar el attach correspondiente con el comando:
tmux attach-session
Integración de Tmux con editores como Vim o Neovim
Tmux se integra perfectamente con editores de texto para terminal. Usando editores como Vim o Neovim puedes tener el editor en un panel y ejecutar el programa en otro panel, incluso ejecutar pruebas y tener el terminal para ejecutar comandos en paneles independientes. Sería casi como tener un IDE de interfaz gráfica en un terminal basado en texto.
Consejos y buenas prácticas al trabajar con Tmux
Ya para acabar vamos a ver algunos consejos útiles para sacarle el máximo partido a Tmux.
Asigna nombres personalizados a tus sesiones
Al abrir nuevas sesiones con Tmux es interesante asignarles nombre, tal como explicamos antes:
tmux new-session -s nombre_sesion
Esto facilita la posibilidad de reanudar sesiones específicas más tarde, lo que te puede ahorrar bastantes pasos de configuración.
Usa atajos de teclado personalizados para ganar velocidad
Si ves que hay algunas tareas repetitivas puedes hacer un atajo personalizado, realizando la edición del archivo «.tmux.conf».
Divide tus ventanas de forma lógica según tareas
Agrupa tus paneles por función, ya sean tareas de control y visionado de logs, compilación de tus programas, ejecución de aplicaciones, ejecución de pruebas, etc.
Y otra recomendación: mantén una consistencia en la localización de los paneles para evitar confusiones y mejorar tu experiencia de usuario.
Guarda configuraciones en el archivo .tmux.conf
Recuerda que rodo lo que configures manualmente se puede automatizar guardándolo en el archivo .tmux.conf. Esto te permitirá cargarlo automáticamente en nuevas sesiones. Consulta la documentación de Tmux para encontrar todos los detalles de configuración de usuario.
Usa plugins como Tmux Plugin Manager (TPM) para mejorar tu experiencia
Revisa los plugins que puedes instalar a través de TPM, ya que algunos facilitan mucho tareas específicas o la aplicación de temas