跳到主要内容

tmux 终端复用器入门

tmux (Terminal Multiplexer) 是后端开发、运维和 Linux 爱好者的必备神器。简单来说,它能让你的终端拥有分屏多标签页以及**后台挂起(防断线)**的能力。

想象一下:你在远程服务器上跑代码,突然网断了,或者你不小心关掉了终端窗口。如果没有 tmux,你的程序就挂了;有了 tmux,程序还在后台跑,你连回去还能接着刚才的地方继续。


0. 安装 tmux

Linux (Debian/Ubuntu)

apt install tmux

macOS

brew install tmux

1. 核心概念:套娃结构

理解这三个概念,你就懂了 tmux 的逻辑:

  1. Session (会话):最外层的容器。就像一个"工作区"。你可以为一个项目建一个 Session。
  2. Window (窗口):Session 里的"标签页"。就像浏览器的 Tab,全屏显示。
  3. Pane (窗格):Window 里的切分块。把一个屏幕切成几块,同时看日志、敲代码、监控资源。

2. 最重要的按键:前缀键 (Prefix)

Tmux 的所有快捷键都需要先按一个"前缀键"来唤醒。 默认是 Ctrl + b (同时按住 Ctrl 和 b,然后松开)。

  • 下文中提到 Prefix 时,指的就是按一下 Ctrl + b

3. 常用操作速查表

A. 会话管理 (在普通终端里敲命令)

目标命令说明
新建会话tmux新建一个无名会话
命名会话tmux new -s mywork新建叫 "mywork" 的会话 (推荐)
列出会话tmux ls查看后台有哪些会话
进入会话tmux a -t mywork重新连回 (attach) 到 "mywork"
杀掉会话tmux kill-session -t mywork彻底关闭某个会话

B. 窗格控制 (Pane) - 最常用的功能

先按 Prefix,松开后按下列键:

快捷键功能记忆法
%左右分屏 (垂直切分)Shift + 5
"上下分屏 (水平切分)Shift + '
方向键在不同窗格间切换光标上下左右
x关闭当前窗格会提示确认 (y/n)
z最大化/恢复当前窗格Zoom (临时全屏看日志很有用)

C. 窗口控制 (Window)

先按 Prefix,松开后按下列键:

快捷键功能
c创建新窗口 (Create)
w列表选择窗口 (可视化菜单)
n切换到下一个窗口 (Next)
p切换到上一个窗口 (Previous)
,重命名当前窗口 (方便记忆)

D. 挂起与离开 (关键!)

  • Prefix + dDetach (分离)
    • 这会让你回到普通终端,但 tmux 里的所有程序都在后台继续跑,不会断开。这是 tmux 的灵魂功能。

4. 实战示例:模拟一次开发流程

假设你要在服务器上运行一个 Python 脚本,同时监控系统 CPU。

第一步:创建会话 在终端输入:

tmux new -s demo

(你现在进入了 tmux 界面)

第二步:分屏

  1. Ctrl+b,松开,按 %。屏幕变成了左右两半。
  2. Ctrl+b,松开,按 "。右半部分又切成了上下两半。

现在你的屏幕布局是:左边一大块,右边分上下。

第三步:运行任务

  1. 左边窗格:输入 vim main.py 开始写代码。
  2. Ctrl+b 然后按 右方向键,光标跳到右侧。
  3. 右上窗格:输入 htop 监控 CPU。
  4. Ctrl+b 然后按 下方向键
  5. 右下窗格:输入 python main.py 运行程序看输出。

第四步:下班挂起 你要下班了,但想让程序一直跑。

  1. Ctrl+b,松开,按 d
  2. 界面显示 [detached],你回到了普通终端。
  3. 你可以安全地关闭 SSH 连接,程序依然在后台运行。

第五步:第二天恢复 第二天上班,连上服务器:

  1. 输入 tmux ls,看到 demo: 1 windows...
  2. 输入 tmux a -t demo
  3. Boom! 昨天的三个分屏、运行的代码、光标位置,全部原封不动地回来了。

5. 新手必装配置 (开启鼠标支持)

默认的 tmux 不支持鼠标点击切换窗格,新手会很痛苦。建议开启鼠标支持。

  1. 在用户目录下新建/编辑配置文件:
    nano ~/.tmux.conf
  2. 在里面粘贴这一行:
    set -g mouse on
  3. 保存退出。然后重新加载配置(在终端执行):
    tmux source-file ~/.tmux.conf

效果:现在你可以直接用鼠标点击来切换窗格,或者拖动分割线来调整大小了!