TMUX

Trucos y Utilidades 25 de nov. de 2023

TMUX - Multiplexor de Ventanas

tmux es un multiplexor de terminal para sistemas tipo Unix/Linux, similar a los pogramas GNU Screen o Byobu que permite dividir una consola en múltiples secciones ya sea en modo horizontal, vertical o combinaciones de ellas.
Además te permite generar sesiones independientes en la misma terminal.

Permite crear varias terminales dentro de una misma pantalla, las cuales pueden incluso puedes desacoplar y volver a acoplar en una sesión distinta.

Instalar TMUX

La instalación es realmente sencilla, ejecuta desde la terminal:

sudo apt -y install tmux

Además del uso habitual para gestionar sesiones o dividir la pantalla, puedes usar TMUX para realizar lo que se denomina "Pair Programing", mira el siguiente artículo en donde lo explico:

Programación en grupo desde la consola
‘Pair Programming’ desde la consola en GNU/Linux La “programación por pares/parejas” es ponerse dos personas sobre el mismo código de un programa y alternar el tiempo de tecleo mientras se van comentando las tareas que se van desarrollando... Hasta no hace poco, no sabía que lo que yo
"Pair Programing" con Tmux

Chuleta de uso de TMUX

Hay muchas recopilaciones de "chuletas" para usar TMUX, seguramente más completas que la mía.
Yo os dejo por aquí una recopilación de las opciones que suelo usar yo.

Iniciar tmux desde la terminal

tmux new -s "nombre_sesion"

Iniciar tmux automáticamente

# Incluir en fichero .bash_profile del home del usuario

if command -v tmux &> /dev/null && [ -z "$TMUX" ] ; then
  /usr/bin/tmux attach -t "nombre" || /usr/bin/tmux new -s "nombre"
fi

Temas y Colores para tmux

# Clonar desde el home vuestro usuario
cd; git clone https://github.com/gpakosz/.tmux.git

# Crear enlaces
ln -s -f .tmux/.tmux.conf

# Copiar configuración a local
cp .tmux/.tmux.conf.local

Activar el ratón (editar fichero configuración .tmux.conf.local )

# Incluir si no existe / Descomentar
set -g mouse on

TMUX diferencias entre Sesión/Ventana/Panel

  1. Sesión: Puede contener multiples Ventanas/pestañas.
  2. Ventana: Puede dividirse Horizontal y Verticalmente en Paneles.
  3. Panel: Es la terminal desde la que se trabaja.

Teclas/Comandos para Sesiones

  • Crear Sesión: tmux new
  • Crear Sesión con nombre: tmux new-session -s "NombreSesion"
  • Crear Sesión en segundo plano: tmux new-session -d -t "NombreSesion
  • Ver Sesiones (y cambiar a otra): CTRL + b s
  • Listar Sesiones: tmux list-sessions
  • Renombrar Sesión: CTRL + b $
  • Segundo Plano/detach Sesión (puedes cerrar la shell y se seguirá ejecutando): CTRL + b d
  • Recuperar Sesión (Primer plano): tmux attach -t "NombreSesion"

Teclas/Comandos para Ventanas

  • Abrir/crear nueva Ventana: CTRL + b c
  • Crea nueva ventana con nombre 'Shell': tmux new-window -n "Shell"
  • Renombrar Ventana (pedirá el nombre): CTRL + b ,
  • Renombra ventana a 'Comandos': tmux rename-window "Comandos"
  • Cambiar a Ventana Nº (1,2...n): CTRL + b Num
  • Cambiar a Ventana Nº: tmux select-window -t Num
  • Ver Ventanas (y cambiar): CTRL + b w
  • Divide ventana actual en horizontal (2 paneles): tmux split-window h

Teclas/Comandos para Paneles

  • Dividir panel en horizontal: CTRL + b "
  • Dividir panel en vertical: CTRL + b %
  • Cerrar panel actual: CTRL + b x
  • Alternar vertical/horizontal: CTRL + b Espacio
  • Ver el numero del panel: CTRL + b q
  • Cambiar entre paneles: CTRL + b Flechas-Direccion
  • Zoom activar/Desactivar panel actual: CTRL + b z
  • Intercambiar ventana con la derecha: CTRL + b }
  • Intercambiar ventana con la izquierda: CTRL + b {
  • Rotar paneles (sentido anti-horario): CTRL + b CTRL + o
  • Llevar panel actual a nueva sesion: CTRL + b !
  • Llevar paneles a otra sesion (-s NumOrigen -t NumDestino):
    • Desde el modo comando escribir: tmux join-pane -s Num -t Num
  • Redimensionar tamaño panel actual:
    • Desde el modo comando escribir:
      resize-pane -U 10 [10 hacia arriba/Up]
      resize-pane -D 10 [10 hacia abajo/Down]
      resize-pane -L 10 [10 hacia izquierda/Left]
      resize-pane -R 10 [10 hacia derecha/Right]
  • Selecciona y pone foco en Panel 2: `tmux select-pane -t 2

Modo Comando (MC)

  • Modo Comando. Para escribir comandos tmux: CTRL + b :

Modo Ratón - Tras activar el modo comando (MC)
Atención: El cortar-pegar de Linux con el ratón puede verse afectado.

  • Activar modo Raton (desde MC): set-option -g mouse on
  • Desactivar modo Raton (desde MC): set-option -g mouse off
  • Redimensionar paneles con raton: CTRL + b y arrastrar con raton la linea de separacion de paneles
    Cambiar de Ventana/Panel: Clic en Ventana o en Panel para seleccionarla

Modo Copia (CC)

  • Activar modo copia: ctrl+b [
  • Desplazarse en modo copia: Flechas o Avance/Retroceso Pag
  • Activar selección (tras activar CC): CTRL + Espacio
  • Copiar (despues de seleccionar): ALT + w
  • Pegar (lo copiado en CC): CTRL + b ]
  • Buscar en el panel (con CC activado): CTRL + s palabra

Otros Comandos TMUX

  • Escribir 'comando' + INTRO: tmux send-keys "comando" C-m

Chuleta en Formato PDF

Si quieres el resumen en modo chuleta como la siguiente imagen:

Usa el enlace de debajo de estas líneas para descargarlo:

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux