Cómo usar Tmux: guía completa con cheat sheet 

Tmux es una herramienta que permite a los usuarios crear múltiples sesiones virtuales de terminal en su sistema, cada una ejecutando un proceso individual. Funciona de forma similar a otros multiplexores como GNU Screen, pero ofrece funciones mejoradas de gestión de ventanas.

Además de mejorar la colaboración en las tareas, tmux permite a los usuarios mantener procesos de larga duración en segundo plano y guardar el estado del terminal tras desconectarse. Esto hace que la herramienta sea adecuada para gestionar un sistema remoto como un servidor VPS.

En este tutorial, te enseñaremos cómo usar tmux, una herramienta que te permite dividir una ventana de terminal en varias. Esto incluye el proceso de instalación, atajos de teclado, casos de uso comunes y ventajas sobre el terminal tradicional.

Tmux es un multiplexor de terminal donde se pueden crear varias sesiones de shell en tu sistema, cada una ejecutando un proceso distinto. Mantiene las tareas ejecutándose en segundo plano, aceptando que los usuarios continúen su trabajo luego.

Tmux permite crear múltiples sesiones de terminal para una colaboración eficiente. Para mejorar tu flujo de trabajo, también puedes modificar la configuración mediante el archivo tmux.conf.

Cómo instalar tmux

Para configurar tmux, inicia sesión en tu sistema remoto como root utilizando un cliente SSH como PuTTY. Los usuarios de hosting VPS de Hostinger pueden encontrar las credenciales en la pestaña de acceso SSH de la página de Vista general del VPS en hPanel.

Vista general del VPS en hPanel

Una vez conectado, asegúrate de cambiar a otro superusuario, ya que ejecutar comandos erróneos utilizando root podría causar algunos problemas graves:

su nombredeusuario

Antes de instalar tmux, actualiza el repositorio de paquetes de tu sistema. Este comando variará según el sistema operativo Linux. Por ejemplo, aquí tienes cómo hacerlo en Ubuntu:

sudo apt update

A continuación, ejecuta el siguiente comando de Linux para instalar tmux:

sudo apt install tmux

Ajusta el comando según el gestor de paquetes de tu sistema. Por ejemplo, CentOS utiliza yum o dnf en lugar de apt.

Una vez finalizado el proceso de configuración de tmux, comprueba si está bien configurado consultando la versión:

tmux -V

Si tu terminal devuelve el número de versión, tmux está correctamente instalado. En caso contrario, mostrará el error «comando no encontrado«.

Ejemplo de uso de terminal

En tmux, puedes dividir el terminal en sesiones, ventanas y paneles. Son shells dedicados y aislados en los que puedes ejecutar comandos o ejecutar procesos sin afectar a los demás.

La única diferencia es su estructura jerárquica, que proporciona modularidad para una organización eficaz de las tareas. Una sesión es una colección de ventanas, mientras que los paneles son subdivisiones de una única ventana.

Teclas y atajos de tmux

Los atajos de teclado de tmux son esenciales para la gestión de ventanas y paneles. Aquí tienes algunas de las combinaciones de teclas más útiles y sus funciones:

  • Ctrl-b + d: salir de la sesión actual.
  • Ctrl-b + %: dividir una ventana en paneles superior e inferior.
  • Ctrl-b + «: dividir una ventana en dos paneles verticalmente.
  • Ctrl-b + flecha: mover a un panel diferente en una dirección.
  • Ctrl-b + x: cerrar el panel actual.
  • Ctrl-b + c: crear una nueva ventana.
  • Ctrl-b + n: pasar a la siguiente ventana según el número.
  • Ctrl-b + p: volver a la ventana anterior.
  • Ctrl-b + número ID: saltar a una ventana concreta utilizando el número ID.
  • Ctrl-b + :  abrir el modo línea de comandos.
  • Ctrl-b + ?: mostrar todos los atajos.
  • Ctrl-b + w: lista todas las ventanas de la sesión actual.

Ten en cuenta que los atajos tmux sólo funcionan dentro de una sesión tmux. Además, para que las combinaciones de teclas funcionen, tendrás que pulsar Ctrl-b antes de la tecla que quieras utilizar, como se muestra arriba.

Cómo utilizar tmux

Veamos cómo los administradores de sistemas pueden utilizar el multiplexor para un flujo de trabajo eficiente desde la línea de comandos. Aprenderás a iniciar sesiones tmux, crear ventanas múltiples, dividir paneles y personalizar su configuración.

Iniciar una nueva sesión

Para iniciar tmux y crear tu primera sesión, ejecuta uno de los siguientes comandos en tu ventana principal de terminal:

tmux 
tmux new
tmux new-session
Nueva sesión de tmux

Ten en cuenta que debes ejecutar estos comandos en la ventana principal del terminal. Aunque puedes crear una nueva dentro de una sesión existente, no es recomendable y requiere desactivar la variable de entorno $TMUX.

Por defecto, una nueva sesión tmux utilizará un número ID para identificarse. Sin embargo, puedes darle un nombre personalizado utilizando la opción -s:

tmux new-session -s [nombre]

Separar y unir sesiones

Después de crear una nueva sesión, se te adjuntará automáticamente a ella. Para desvincularte y abandonar el cliente tmux, pulsa Ctrl-b + d. Para volver a vincularte a la sesión más reciente, utiliza el comando tmux attach-session. También puedes volver a entrar en un shell específico introduciendo:

tmux attach-session -t [sesión-nombre]

Alternativamente, vuelve a conectarte a una sesión de destino concreta utilizando su número de ID. Como tmux inicia el orden desde 0 por defecto, introduce lo siguiente para acceder al primer intérprete de órdenes:

tmux attach-session -t 0

Gestionar sesiones

Para listar todas las sesiones activas, ejecuta cualquiera de los siguientes comandos tmux. Puedes hacerlo dentro del shell principal o virtual:

tmux list-sessions
tmux ls

Tu interfaz de línea de comandos mostrará todas las sesiones con detalles como su nombre, ID, número de ventanas y fecha de creación. También verás a cuál estás conectado actualmente.

Interfaz de línea de comandos

Si estás en una sesión de terminal virtual, puedes cambiar a otra utilizando el siguiente comando. Al igual que para volver a conectarte, utiliza el nombre o el número de ID:

tmux switch -t [nombre-o-id-de-sesión]

Para terminar la sesión actual, introduce exit o pulsa Ctrl-d. Mientras tanto, ejecuta este comando si quieres cerrar una en concreto:

tmux kill-session -t [nombre-o-id-de-sesión]

¡Atención! Utiliza el atajo o comando de finalización con precaución, ya que la sesión tmux eliminada desaparece permanentemente.

Crear y navegar por las ventanas

Por defecto, tu nueva sesión tmux será una única ventana de terminal. Para dividirla en dos, pulsa Ctrl-b + c. La nueva ventana aparecerá en la barra de estado inferior con su nombre y número de identificación.

Tu ventana tmux actual está marcada con un asterisco (*). Puedes pasar a la siguiente ventana pulsando Ctrl-b + n o volver a la anterior utilizando Ctrl-b + p.

Ventana actual de tmux

En lugar de alternar entre varias ventanas del terminal, puedes saltar directamente a una concreta pulsando Ctrl-b + ID numérico. Por ejemplo, pulsa Ctrl-b + 0 para volver a la primera ventana.

Renombrar y organizar ventanas

Por defecto, tmux creará una nueva ventana llamada bash o sh. Si tienes muchos procesos, distinguir entre ellos puede ser difícil, complicando la gestión de tareas.

Asigna a las nuevas ventanas tmux un nombre personalizado para facilitar su identificación. Para ello, navega hasta la que quieras renombrar y pulsa Ctrl-b + : para entrar en el modo de comandos de tmux. A continuación, ejecuta lo siguiente:

rename-window nombre-ventana

Sustituye nombre-ventana por el nombre que desees. Deberías ver cómo cambia la información de la nueva ventana en la barra de estado inferior de la sesión.

Ventana actual de tmux

Dividir ventanas en paneles

Para organizar una tarea más específica, divide una ventana en varios paneles. Pulsa Ctrl-b + » para dividirla horizontalmente o verticalmente utilizando Ctrl-b + %.

Puedes repetir los atajos de división de ventanas para dividir aún más los paneles en áreas de trabajo más pequeñas. Por ejemplo, este es el aspecto que tendrá tu ventana actual después de separarla tres veces.

división de ventanas en tmux

Navegar y cambiar el tamaño de los paneles

Para navegar entre los paneles, pulsa Ctrl-b + una tecla de flecha según la dirección que prefieras. Tu posición actual se resalta con un borde verde.

También puedes pasar al panel siguiente pulsando Ctrl-b + o, o volver al anterior utilizando el atajo de teclado Ctrl-b + ;.

Por defecto, al dividir una ventana se crearán dos paneles con tamaños idénticos. Para cambiar la dimensión, pulsa Ctrl-b y mantén pulsado Alt y el botón de flecha según la dirección para cambiar el tamaño.

Pulsa arriba y abajo para cambiar la altura. Mientras tanto, utiliza la tecla de flecha derecha o izquierda para ajustar la anchura.

Cambio de tamaños en tmux

Ten en cuenta que sólo puedes modificar el tamaño una vez por pulsación de tecla. Si quieres hacer un panel dos veces más pequeño, tienes que repetir el atajo de teclado Ctrl-b + Alt-izquierda.

Cerrar paneles

Para cerrar un panel, navega hasta el que quieras cerrar y pulsa Ctrl-b + &. Sin embargo, recomendamos evitar este método, ya que la falta de un mensaje de confirmación lo hace propenso al borrado accidental.

En su lugar, pulsa Ctrl-b + x para cerrar un panel de forma segura. Esto mostrará una ventana de verificación, que deberás confirmar pulsando Y, y pulsando Intro.

Terminar los paneles no afectará a las tareas de otras sesiones. Además, recuerda que este proceso es irreversible.

Personalizar tmux

Tmux te permite crear un archivo de configuración al que puedes añadir código, personalizando su aspecto y comportamiento. Según el ámbito, puede ser local o global.

El archivo local se aplica a un usuario concreto y se encuentra en el directorio bash por defecto de la cuenta. Ejecuta lo siguiente para crearlo:

sudo touch ~/.tmux.conf

Mientras tanto, la configuración global se aplica a todo el sistema y se encuentra en el directorio /etc. A continuación te explicamos cómo hacer una:

sudo touch /etc/tmux.conf

Para añadir el código de configuración, abre el archivo con un editor de texto como Nano. Puedes cambiar muchos ajustes, incluyendo la apariencia y los accesos directos. Consulta nuestro tutorial sobre personalización de tmux para saber más sobre las opciones de personalización.

Por ejemplo, el siguiente fragmento cambiará las combinaciones de teclas prefijadas por defecto de Ctrl-b a Ctrl -a:

# Change prefix from 'Ctrl+B' to 'Ctrl+A'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

Además, puedes modificar el número de ID inicial. Por ejemplo, el siguiente código de configuración de tmux lo cambia de 0 a 1:

# Start counting pane and window number at 1
set -g base-index 1
setw -g pane-base-index 1

Para guardar los cambios, pulsa Ctrl+X, Y e Intro.

Interfaz de GNU nano 6.2

¿Por qué utilizar Tmux?

En un terminal Linux tradicional, los usuarios sólo pueden trabajar en una tarea por sesión y no pueden continuar su progreso después de desconectarse. Tmux ayuda a resolver este problema proporcionando estas ventajas:

  • Gestión de tareas y sesiones: los administradores del sistema pueden crear varias sesiones para agrupar tareas. También pueden enlazar ventanas, replicando un proceso en otro para mantener la coherencia.
  • Multitarea: los usuarios pueden desconectarse de una sesión y volver a conectarse donde la dejaron. Esto permite una multitarea eficaz, ya que pueden trabajar en varias tareas a la vez.
  • Trabajo a distancia: el servidor tmux conserva todos los procesos en ejecución, incluso cuando el usuario se desconecta. Te permite trabajar de forma fiable en un sistema remoto, como un VPS, sin preocuparte de la conexión SSH.
  • Procesos de larga duración: los procesos en tmux permanecerán activos hasta que el usuario los termine. Esta función es útil para tareas como registrar eventos o desplegar una aplicación.

Conclusión

Tmux es un multiplexor que te permite crear múltiples sesiones shell en tu sistema. Estas pseudoterminales pueden ejecutar un proceso dedicado, que permanece en ejecución incluso después de que te desconectes de la máquina.

Tras instalar la herramienta, ejecuta el comando tmux para crear una sesión y conectarte automáticamente a ella. Desconéctate ejecutando attach-session -t y termínala introduciendo exit. Para listar todas las sesiones, utiliza tmux ls.

Puedes dividir una sesión tmux en varias ventanas pulsando Ctrl-b + c. Alterna entre ellas utilizando Ctrl-b + n o p. Estas ventanas se llamarán bash o sh por defecto, pero puedes cambiarles el nombre con el comando rename-window.

Para dividir el área de trabajo en instancias más pequeñas llamadas paneles, pulsa Ctrl-b + » o %, según la orientación. Puedes personalizar aún más tmux modificando el archivo de configuración ~/.tmux.conf.

tmux – Preguntas frecuentes

Para ayudarte a profundizar en tus conocimientos, esta sección responderá a varias preguntas comunes sobre tmux.

¿Cuáles son las ventajas de utilizar tmux?

Los administradores de sistemas pueden crear varias sesiones tmux para organizar las tareas y colaborar de forma más eficaz. También pueden mantener los procesos en ejecución en segundo plano, incluso después de desconectarse.

Con tmux, el trabajo a distancia también es más eficaz, ya que los usuarios pueden continuar donde lo dejaron en caso de problemas de conectividad.

¿Cuál es la diferencia entre tmux y screen?

Tmux tiene varias mejoras respecto a GNU Screen. Por ejemplo, ofrece más funciones de gestión de ventanas, como renombrar y enlazar.

Tmux también ofrece más opciones de configuración, lo que te permite ajustar la herramienta a tus necesidades específicas. Además, este multiplexor de terminal utiliza un lenguaje de scripting nativo más flexible.

¿Puedo personalizar la apariencia y el comportamiento de tmux?

Sí. Puedes personalizar tmux para el usuario actual añadiendo código de configuración al archivo ~/.tmux.conf. Para modificaciones en todo el sistema, utiliza en su lugar /etc/tmux.conf.

Por ejemplo, puedes cambiar el color del fondo de la ventana, cambiar el número de identificación inicial y añadir un nuevo atajo de teclado prefijo.

Author
El autor

Deyimar A.

Deyi es una entusiasta del marketing digital, con experiencia en diseño de páginas web, creación de contenido, copywrite y SEO. Forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, le gusta desarrollar proyectos, leer un libro o ver una buena película.