tmux使用指南

我们来系统地学习 tmux。我会把它分成几个部分,从核心概念到日常使用,并提供记忆技巧。

第一步:核心概念(为什么是这样?)

要掌握 tmux,首先要理解它的三个核心概念。把这个记在脑子里,所有命令都会变得有意义。

想象一下 tmux 是一个虚拟的终端工作区:

  1. 会话 (Session): 这是最高层级。一个会话好比一个独立的工作项目。比如,你可以一个会话叫 project-A,另一个叫

    project-B。你可以在它们之间切换,而且当你关闭电脑上的终端窗口时,会话并不会死掉,它会在后台继续运行。这就是 tmux 最大的魔力——工作区持久化。

  2. 窗口 (Window): 在一个会话内部,可以有多个窗口。这就像浏览器的标签页 (Tabs)。每个窗口都是一个全屏的终端。比如,在 project-A

    这个会话里,你可以有一个窗口用于编辑代码,一个窗口用于运行服务器,另一个窗口用于查看日志。

  3. 窗格 (Pane): 在一个窗口内部,你可以把屏幕切分成多个小块,每一块就是一个窗格。这让你可以在同一个屏幕上,同时看到多个终端命令的运行情况。比如,在一个窗

    口里,左边窗格写代码,右上窗格看日志,右下窗格执行 git 命令。

层级关系记忆: 会话 (Session) > 窗口 (Window) > 窗格 (Pane)。一个项目包含多个任务,一个任务占据一个全屏,一个全屏可以分成几小块来看。


第二步:命令的“钥匙”——前缀键 (Prefix)

几乎所有的 tmux 命令都需要先按下一个“前缀组合键”,默认是 Ctrl + b。

为什么需要前缀?

因为 tmux 需要区分你是想给 tmux 下命令,还是想给终端里的程序(比如 bash、vim)下命令。按下 Ctrl + b 就等于告诉

tmux:“嘿,注意了,下一个按键是给你的命令!”

记忆技巧:

把 Ctrl + b 当成打开 tmux 命令模式的“钥匙”。每次想操作窗口或窗格时,就先按 Ctrl +b,松开,然后再按具体的功能键。


第三步:会话管理 (项目的开始与结束)

这是你和 tmux 交互的起点。这些命令直接在你的普通终端里输入,而不是在 tmux 内部。

  • 新建会话:

1 tmux new -s my-session

   * 解释: tmux new 就是新建一个会话。-s 是 session 的缩写,后面跟上你给会话起的名字。
   * 记忆: 给会话起名是好习惯,方便以后找回。比如 tmux new -s web-dev。
  • 列出所有会话:

1 tmux ls

   * 解释: ls 是 list 的缩写,这是 Linux/macOS 用户非常熟悉的命令。
   * 记忆: 和列出文件一样,tmux ls 就是列出所有会-话。
  • 断开连接 (Detach):

    在 tmux 会话中,按下 Ctrl + b,然后按 d。

    • 解释: 这会让你从当前会话中“脱离”,但会话以及里面的所有进程会继续在后台运行。这是 tmux 的核心功能。

    • 记忆: d 代表 detach (分离)。

  • 重新连接 (Attach):

1 tmux attach -t my-session

   * 解释: attach 就是“附着”的意思。-t 是 target (目标) 的缩写,告诉 tmux 你要连接到哪个会话。
   * 记忆: attach -t <目标会话>,非常直观。

第四步:窗口操作 (像浏览器标签页一样)

现在你已经在一个会话里了。以下所有命令都需要先按前缀 Ctrl + b。

  • 创建新窗口: Ctrl + b 然后 c

    • 记忆: c 代表 create (创建)。
  • 切换到下一个窗口: Ctrl + b 然后 n

    • 记忆: n 代表 next (下一个)。
  • 切换到上一个窗口: Ctrl + b 然后 p

    • 记忆: p 代表 previous (上一个)。
  • 切换到指定编号的窗口: Ctrl + b 然后 0, 1, 2...

    • 解释: 每个窗口都有一个编号,从 0 开始。

    • 记忆: 和数组下标一样,直接按数字。

  • 重命名当前窗口: Ctrl + b 然后 , (逗号)

    • 解释: 给窗口起个有意义的名字(比如 "API Server", "Database")能让你更容易分辨。

    • 记忆: 逗号在写作中用来分隔和标注,这里用来给窗口“做标注”。

  • 关闭当前窗口: Ctrl + b 然后 &

    • 解释: 这会关闭整个窗口以及里面的所有窗格。

    • 记忆: 这个符号不太直观,可以记成“这个窗口 和 (&) 里面的东西都不要了”。


第五步:窗格操作 (分屏大师)

这是在单个屏幕内进行多任务处理的关键。同样,先按前缀 Ctrl + b。

  • 垂直分割 (左右分屏): Ctrl + b 然后 %

    • 记忆: % 符号里有两个小圈圈,是左右排列的。
  • 水平分割 (上下分屏): Ctrl + b 然后 " (双引号)

    • 记忆: " 符号是两个小竖线,是上下排列的。
  • 在窗格间切换: Ctrl + b 然后 方向键 (↑ ↓ ← →)

    • 记忆: 这是最直观的命令,想去哪个方向的窗格,就按哪个方向键。
  • 关闭当前窗格: Ctrl + b 然后 x

    • 解释: 这会提示你确认是否关闭。

    • 记忆: x 通常代表关闭或退出。

  • 最大化/还原当前窗格 (Zoom): Ctrl + b 然后 z

    • 解释: 临时将当前窗格放大到整个窗口,方便查看内容。再按一次可以恢复。

    • 记忆: z 代表 zoom (缩放)。

总结与实践

我们来串联一个实际场景:

  1. 打开终端,输入 tmux new -s my-work 启动一个名为 "my-work" 的新会话。

  2. 你现在在窗口 0。按 Ctrl + b 然后 ",将屏幕上下分成两块。

  3. 按 Ctrl + b 然后 ↑,回到上面的窗格。

  4. 按 Ctrl + b 然后 %,将上面的窗格左右分开。

  5. 现在你有了三个窗格。用 Ctrl + b + 方向键 自由切换。

  6. 按 Ctrl + b 然后 c,创建一个全新的窗口 (窗口 1)。

  7. 按 Ctrl + b 然后 p,回到上一个窗口 (窗口 0)。

  8. 按 Ctrl + b 然后 d,断开会话。你的终端回到了普通模式,但 my-work 仍在后台运行。

  9. 在普通终端里输入 tmux attach -t my-work,看,你又回到了刚才的工作区!

从这个流程开始练习,每天用 tmux 工作,很快这些命令就会成为你的肌肉记忆。如果忘了,就回来看看这个指南或者输入 tmux ls 提醒自己有哪些会话。