tmux 工具

运维笔记 | 📅 2021-07-07 | tmux terminal

tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.

tmux 是一个终端复用工具。它可以使你在一个终端里,轻易地在若干个程序间切换。也可使之脱离终端(在后台保持运行)然后将其重连到其他终端上。

https://github.com/tmux/tmux

操作

常用命令

  • tmux 创建新会话
  • tmux ls 列出所有会话
  • tmux attach -t [id] 连接指定会话

快捷键

快捷键使用方式

tmux 的快捷键均以 Ctrl+B 开始。

  1. 按下 Ctrl 同时 按下 B
  2. 释放上述按键
  3. 按下快捷键,命令生效

常用快捷键

  • 脱离会话:Ctrl+B · D
  • 横向分割会话:Ctrl+B · "
  • 纵向分割会话:Ctrl+B · %
  • 移动焦点:Ctrl+B · [方向键](↑↓←→)

常用场景

1. 终端复用

在同一个终端里,执行若干个不同的程序。

我们使用 “分割会话”,将会话分割为若干份,使用 “移动焦点”在各个终端中切换,执行不同的程序。

终端复用

实现上图的操作如下:

  1. tmux 创建tmux会话
  2. Ctrl+B · " 横向分割会话为上下两个终端,此时焦点在下方终端上
  3. Ctrl+B · % 纵向分割焦点所在的下方终端,此时焦点在右下的终端上
  4. htop 在当前焦点所在的右下终端执行命令
  5. Ctrl+B · 切换焦点到左下终端
  6. vim 在当前焦点所在的左下终端执行命令
  7. Ctrl+B · 切换焦点到上方终端
  8. ……执行其他命令

2. 后台运行

当一个程序在 tmux 中运行的时候,可以使用 “脱离会话” 操作,退出当前 tmux 会话,释放被占用的终端,并保持程序运行。

可以使用 tmux attach -t [id] 连接回去,而不影响程序运行。如果忘记会话 id ,可以使用tmux ls 列出所有会话,来辅助查找。