tmux 是一款优秀的终端复用软用工具,可以实现分屏、会话共享等功能

  • 会话(session): 建立一个 tmux 工作区会话,回话可以长期主流,重新链接服务器不会丢失
  • 窗口(window):
  • 窗格(pane): 工作的最小单位

一个 tmux session 可以包含多个 Windows,一个 window 可以包含多个 pane

Session 操作

  • tmux new -s name: Start a new named session
  • tmux attach: Attach to the most recently used session
  • tmux a(ttach-session) -t name: 进入到名称为 name 的会话
  • tmux detach/Ctrl-b d: 断开当前回话,会话在后台运行
  • tmux kill -session -t name: 关闭会话
  • tmux ls/Ctrl-b s: 查看所有会话

快捷指令

tmux 的所有指令都有一个前缀,默认 Ctrl-b

系统指令

  • Ctrl-b ?: 显示帮助文档
  • Ctrl-b d: Detach from the current session
  • Ctrl-b [: 进入复制模式, q 退出
  • Ctrl-b ]: 粘贴复制模式中复制的文本

窗口指令

  • Ctrl-b c: 新建窗口
  • Ctrl-b &: 关闭当前窗口
  • Ctrl-b 数字键: 切换到指定窗口
  • Ctrl-b n/p: 下一个/上一个窗口
  • Ctrl-b w: Switch between sessions and windows(inside a tmux session)
  • Ctrl-b 方向键:
  • Ctrl-b ,: 重命名当前窗口(window)名字
  • Ctrl-b .: 修改当前窗口(window)编号
  • Ctrl-b f: 快速定位到窗口(输入关键字匹配窗口名称)

面板指令

  • Ctrl-b "/%: 横/竖分屏
  • Ctrl-b ": 上下分屏
  • Ctrl-b %: 左右分屏
  • Ctrl-b x: 关闭当前窗格(pane)
  • Ctrl-b z: 最大化当前窗格(pane)… 重复按一次恢复
  • Ctrl-b !: 将当前面板移动到新窗口打开
  • Ctrl-b ;: 切换到最后一次使用的面板
  • Ctrl-b q: 显示编号
  • Ctrl-b {: 向前置换当前面板
  • Ctrl-b }: 向后置换当前面板

每个窗口的历史内容被 tmux 接管

  • ctrl-b PgUp/pgDn 浏览历史记录,q 退出

配置修改

修改配置可以参考 http://louiszhai.github.io/2017/09/30/tmux/

1
2
3
4
5
6
7
8
# force Vi mode
# really you should export VISUAL or EDITOR environment variable, see manual
set -g status-keys vi
set -g mode-keys vi

set -g prefix C-a # 设置前缀键
bind C-a send-prefix

使用 oh my tmux 可以美化显示