Un multiplexor de terminales es una aplicación que se puede usar para dividir un terminal en una o más sesiones virtuales. Básicamente, podemos tener varias sesiones dentro de un solo terminal y conectar y desconectar estas sesiones cuando nos sea más conveniente.
Es útil para administrar múltiples herramientas y aplicaciones de línea de comandos y para separar los programas de las sesiones de shell de Unix que los iniciaron; esto es particularmente importante cuando queremos que un proceso o programa remoto continúe ejecutándose incluso cuando la conexión se ha interrumpido o cerrado.
Digamos que tienes que administrar un servidor remoto a través de ssh pero la conexión es inestable y se pierde continuamente. Eso significa que tienes que volver a conectarte con frecuencia y no quieres perder todo tu trabajo y tener que empezar de cero cada vez que te conectas. Los multiplexores de terminales te ofrecen la posibilidad de guardar tus sesiones y luego desconectarte. Una vez que accedas al sistema, puedes volver a conectarte a tu última sesión y continuar justo donde lo dejaste.
Windows Terminal es el terminal que se asemeja más a tmux para Windows porque permite la división del terminal en varios paneles, independiente del shell. El Terminal de Windows admite múltiples pestañas y la división del terminal en múltiples paneles para incrementar tu productividad.
Para abrir/cerrar una nueva pestaña, simplemente haz clic en el botón + en la barra de pestañas o teclea Ctrl, Shift y T/W. Para moverte por las pestañas, pulsa Ctrl+Tab/Ctrl+Shift+Tab. Para dividir el terminal en varias pestañas, teclea simultáneamente Alt, Shift y “+” (verticalmente), Alt, Shift y “-” (horizontalmente). Para desplazarte entre estos paneles, pulsa Alt + teclas de flecha.
iTerm también es similar a Tmux con una configuración predeterminada adecuada para la mayoría de los usuarios. Puedes crear múltiples ventanas virtuales dentro de una sola ventana ‘física’ y puedes dividir, intercambiar y cambiar el tamaño de los paneles.
Cuando inicias iTerm2 por primera vez, se abre una ventana que muestra una sesión de terminal. Si deseas abrir más de una sesión a la vez…
… cada uno de los cuales es una sesión de terminal diferente.
Tmux es un multiplexor de terminal de código abierto. Te permite crear múltiples sesiones en el terminal y puedes abrir múltiples ventanas dentro de cada sesión. Cada ventana ocupa toda la pantalla, pero se puede dividir vertical y horizontalmente en paneles rectangulares. Las sesiones son persistentes, lo que significa que los programas que se ejecutan en Tmux seguirán ejecutándose incluso cuando te desconectas.
# Reasignar el prefijo de 'Ctrl-b' a 'Ctrl-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Compatibilidad con el ratón
set-option -g mouse on
set -g set-clipboard on
# Dividimos los paneles usando "Ctrl-h" y "Ctrl-v"
bind h split-window -h
bind v split-window -v
unbind '"'
unbind %
# Navegamos entre ventanas con Alt + teclas de flecha
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Recargamos la configuración de tmux con Prefijo + r
bind r source ~/.tmux.conf
# No queremos ningún tiempo de espera o demora
set -g escape-time 10
############################################
### CAMBIOS De DISEÑO (/u/dothebarbwa) ###
############################################
# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none
# modes
setw -g clock-mode-colour colour5
setw -g mode-style 'fg=colour1 bg=colour18 bold'
# panes
set -g pane-border-style 'fg=colour19 bg=colour0'
set -g pane-active-border-style 'bg=colour0 fg=colour9'
# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-style 'bg=colour18 fg=colour137 dim'
set -g status-left ''
set -g status-right '#[fg=colour233,bg=colour19] %d/%m #[fg=colour233,bg=colour8] %H:%M:%S '
set -g status-right-length 50
set -g status-left-length 20
setw -g window-status-current-style 'fg=colour1 bg=colour19 bold'
setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F '
setw -g window-status-style 'fg=colour9 bg=colour18'
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '
setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold'
# messages
set -g message-style 'fg=colour232 bg=colour16 bold'
# /home/$USER/.config/tmuxinator/mySession.yml
name: mySession # Nombre de la sesión y el proyecto
root: ~/
windows: # La opción windows te permite definir un número arbitrario de ventanas tmux. En nuestro ejemplo, especificamos tan solo tres ventanas: first_window, system_info y entertaining.
- first_window:
layout: main-horizontal # Puedes organizar los paneles en uno de los cinco diseños preestablecidos: even-horizontal, even-vertical, main-horizontal, main-vertical, o tiled.
panes: # Los paneles son opcionales y son hijos de las ventanas. Definimos los paneles que se crean dentro de cada ventana.
- nvim myfile.txt # En cada panel, indicamos la orden a ejecutar.
- cal
- date
- system_info:
layout: tiled
panes:
- free -h
- df -h
- sensors
- htop
- entertaining:
layout: 4a38,192x55,0,0{101x55,0,0,2,90x55,102,0,8} # Usamos la distribución o diseño de paneles que obtuvimos previamente.
panes:
- is_justtothepoint_alive: # Puedes ejecutar varios comandos en un panel.
- ping -c 4 justtothepoint.com
- newsboat
- music:
- radio