Unos minutos antes de salir del trabajo, abandoné por completo tmux.

1. Introducción a tmux

tmux (terminal multiplexor) es una herramienta muy poderosa, principalmente tiene las siguientes funciones:

  • Multiplexación de terminales: tmux le permite ejecutar y administrar múltiples terminales en una sola ventana o sesión de terminal. Esto no solo le permite cambiar rápidamente entre diferentes tareas, sino que también permite mostrar múltiples tareas una al lado de la otra en la misma pantalla. Por ejemplo, es posible que desee ejecutar un editor de texto en una ventana y un servidor en otra, o puede necesitar monitorear varios archivos de registro simultáneamente. tmux hace que todo esto sea posible.
  • Gestión de sesiones: tmux le permite crear, acceder y controlar múltiples sesiones. Cada sesión es un espacio de trabajo completamente independiente que puede contener varias ventanas y paneles. Esto significa que puede trabajar en una tarea en una sesión separada, como desarrollar un proyecto específico, y otra tarea en otra sesión, como administrar el sistema. De esta manera, la organización del trabajo es mucho más fácil.
  • Persistencia: cuando su conexión SSH se cae, o su conexión de red falla, tmux seguirá ejecutándose. Todas las sesiones, ventanas y paneles se conservan, como si nunca se hubiera ido. Cuando vuelva a conectarse, puede continuar donde lo dejó y continuar su trabajo sin perder nada.
  • Colaboración: con tmux, varios usuarios pueden trabajar en la misma sesión. Esto permite a los miembros del equipo compartir sus puntos finales para la edición colaborativa o la resolución de problemas.

Instalar tmux:

# Ubuntu
sudo apt-get install tmux

# MacOS
brew install tmux

Primero debemos comprender los tres conceptos principales de tmux: Sesión (sesión) , Ventana (ventana) y Panel (panel) .

Para facilitar la comprensión, simplemente puede pensar que Session es un navegador, mientras que Window es la página de pestañas en él, y Pane es el espacio de trabajo debajo de la página de pestañas (parece que no hay concepto de espacio de trabajo debajo de la página de pestañas, pero solo se puede explicar con fuerza ) .

Escriba el comando en la línea de comando tmuxpara crear una nueva sesión y observe la barra de estado a continuación, que tiene la siguiente forma:

Como puede ver, para una sesión, solo tiene el concepto de un nombre. En cuanto a la ventana, tiene los dos conceptos de número y nombre al mismo tiempo. *Representa la ventana actual -y la ventana anterior.

Mientras está en una sesión, escriba exito presione Ctrl + dpara salir de la sesión (la sesión también se elimina).

2. Sesión

Ejecutar directamente en la línea de comando

tmux

Puede crear rápidamente una nueva sesión de tmux. El nombre de la sesión por defecto es 已存在的会话数. Por ejemplo, si actualmente existen dos sesiones, el nuevo nombre de la sesión será 2.

La siguiente tabla enumera los comandos relacionados con la sesión más utilizados:

Orden efecto
tmux new -s [会话名称] Crear una nueva sesión con un nombre personalizado
tmux rename-session -t [旧会话名称] [新会话名称] cambiar el nombre de una sesión existente
tmux detach desconectarse de la sesión actual
tmux ls enumerar todas las conversaciones
tmux a -t [会话名称] Volver a conectarse a una sesión existente (a significa adjuntar)
tmux kill-session -t [会话名称] matar una sesión
tmux kill-session -a matar todas las sesiones
tmux switch -t [会话名称] Cambiar a una sesión (el comando debe ejecutarse en la sesión)

Luego viene la parte más crítica de tmux: teclas de acceso directo . Las teclas de acceso directo se componen de teclas de prefijo y teclas de comando , y solo se pueden usar en sesiones tmux .

La tecla de prefijo de tmux es que Ctrl + bpara usar la tecla de acceso directo, primero debe presionar la tecla de prefijo y luego presionar la tecla de comando, en lugar de presionar la tecla de prefijo y la tecla de comando juntas.

La siguiente tabla enumera las teclas de método abreviado relacionadas con la sesión que se usan comúnmente ( las teclas de prefijo se omiten aquí, lo mismo a continuación ):

tecla de comando efecto
$ cambiar el nombre de la sesión actual
s Enumere todas las sesiones (teclas de flecha para cambiar de sesión hacia arriba y hacia abajo, expanda las ventanas en las sesiones hacia la izquierda y hacia la derecha)
d desconectarse de la sesión actual

Por ejemplo, para salir de la sesión actual, presione primero Ctrl + b, luego presione d, no todos juntos Ctrl + b + d.

3. Ventana

La siguiente tabla enumera las teclas de método abreviado relacionadas con la ventana que se utilizan comúnmente :

tecla de comando efecto
c crear una nueva ventana
, cambiar el nombre de la ventana actual
& eliminar ventana actual
0-9中的一个数字 Saltar a la ventana correspondiente según el número de ventana
w Enumere todas las ventanas (si el número de la ventana es mayor que 9, puede saltar de esta manera)

4. Panel

La siguiente tabla enumera las teclas de método abreviado relacionadas con el panel de uso común :

tecla de comando efecto
% Dividir un panel horizontalmente
" Dividir un panel verticalmente
x eliminar el panel actual
0-9中的一个数字 Saltar a la ventana correspondiente según el número de ventana
w Enumere todas las ventanas (si el número de la ventana es mayor que 9, puede saltar de esta manera)
方向键 Saltar de un lado a otro entre los paneles
q Mostrar todos los números de panel (presione el número antes de que desaparezca para saltar al panel correspondiente)
z Maximizar el panel actual (ejecutar la misma operación después de maximizar para restaurar al original)

5. Personaliza la configuración de tmux

El archivo de configuración de tmux está aquí ~/.tmux.conf, aquí hay una configuración propia de un blogger:

# 启用鼠标模式
# 可使用鼠标点击以在窗格中跳转
# 也可以使用鼠标改变窗格大小
set -g mouse on

# 设置历史命令缓存为 20000
set -g history-limit 20000

# 设置状态栏背景色为品红色
set -g status-bg magenta
# 设置状态栏文字颜色为白色
set -g status-fg white
# 设置状态栏左侧显示会话名称
set -g status-left "[#S] "
# 设置状态栏右侧显示当前日期和时间
set -g status-right "%Y-%m-%d %H:%M"

# 设置当前窗口状态显示格式
set -g window-status-current-format '#[fg=black](#I:#W)'
# 设置非当前窗口状态显示格式
set -g window-status-format '#[default]#I:#W'
# 设置窗口自动重命名
setw -g automatic-rename

# 设置快捷键 Ctrl + h/j/k/l 来切换窗口面板
# -n代表不需要按前缀键
bind -n C-h select-pane -L
bind -n C-j select-pane -D
bind -n C-k select-pane -U
bind -n C-l select-pane -R

# 按下命令键y后,可以在所有窗格同步进行输入
bind y setw synchronize-panes

# 按下命令键r后,重新加载tmux配置
bind r source-file ~/.tmux.conf \; display "Config reloaded!"

Después de la configuración, necesitamos ejecutar

tmux source-file ~/.tmux.conf

para que el archivo de configuración surta efecto. Pero fíjate que ya tenemos configuradas las teclas de atajo, por lo que solo debemos presionar primero en la sesión de tmux Ctrl + b, y luego presionar rpara cargar la nueva configuración.

Si la configuración aún no se carga correctamente, ejecute el siguiente comando

tmux kill-server

6. Manipular tmux en un script de shell

En los scripts de shell, generalmente agregamos -dpara crear una sesión tmux en segundo plano (esto asegura que la sesión no se ingresará inmediatamente después de que se cree la sesión):

tmux new -ds [会话名称]

Después de crear una sesión, use para send-keysenviar una clave a la sesión especificada (tenga en cuenta que es una clave), la sintaxis es la siguiente:

tmux send-keys -t [会话名称] [按键1] [按键2] ...

Por ejemplo

tmux new -ds abc
tmux send-keys -t abc pwd
tmux a -t abc

Se puede ver que el comando no ha sido ejecutado

Esto se debe a que send-keysla función de es solo enviar la tecla, para ejecutar el comando también necesitamos enviar una tecla Enter al final, es decir, para modificar el segundo comportamiento.

tmux send-keys -t abc pwd Enter

Para los comandos que contienen espacios, podemos usar cadenas para envolverlos o usar Spaceclaves. Los siguientes dos comandos son equivalentes:

tmux send-keys -t abc "ls -l" Enter
tmux send-keys -t abv ls Space -l Enter

También podemos enviar Ctrl + cpara interrumpir la ejecución de un comando:

tmux send-keys -t abc C-c

Si hay varias ventanas en la sesión y cada ventana tiene varios paneles, las pulsaciones de teclas anteriores se enviarán al panel activo actual de la ventana activa actual de la sesión de forma predeterminada . Para especificar un panel de ventana para enviar, use la siguiente sintaxis:

tmux send-keys -t [会话名称]:[窗口编号/窗口名称].[窗格编号] [按键1] [按键2] ...

Referencias

[1] https://github.com/tmux/tmux/wiki/Getting-Started
[2] https://www.cnblogs.com/zuoruining/p/11074367.html

Supongo que te gusta

Origin blog.csdn.net/raelum/article/details/131613773
Recomendado
Clasificación