tmux 常用操作手册

AI摘要
【知识分享】本文是 tmux 常用操作手册,涵盖会话管理、窗口操作、窗格分屏、滚屏复制、脚本化操作及快捷键查询等内容。以 Ctrl+b 为前缀键,介绍了新建、接回、杀死会话,创建与切换窗口,分屏与调整布局,复制粘贴及鼠标支持配置,并给出通过 send-keys 遥控会话和一键启动开发环境的脚本示例。

tmux 常用操作手册

前缀键统一是 Ctrl+b:先按 Ctrl+b 松手,再按后续的键。下文写作 Ctrl+b + x 的形式。

一、会话管理

新建带名字的会话

tmux new -s ic2

敲完就进到 tmux 里了,底部会出现绿色状态栏,左下角显示 [ic2]

新建但不进去(后台建)

tmux new -s ic2 -d

适合写脚本。-d 是 detached,建好会话但你还留在原来的 shell。

存在就接回、不存在就新建

tmux new -A -s ic2

这条最实用,每天开工敲它就行,不用先判断会话在不在。

查看有哪些会话

$ tmux ls
ic2: 3 windows (created Fri Sep 18 10:05:12 2026)
test: 1 windows (created Fri Sep 18 09:12:44 2026)

接回会话

tmux a -t ic2      # 接回 ic2
tmux a             # 接回最近一个,只有一个会话时最省事

杀会话

tmux kill-session -t test    # 杀掉 test
tmux kill-server             # 全杀掉,慎用

断开与切换

操作 按键 说明
断开当前会话 Ctrl+b + d 回到普通 shell 并看到 [detached (from session ic2)],里面的 go run 还在跑
图形化切换会话 Ctrl+b + s 出现会话列表,方向键选中、回车进入

二、窗口操作

假设你已经在 ic2 会话里。

操作 按键 说明
新建窗口 Ctrl+b + c 状态栏会变成 0:bash 1:bash*,星号表示当前所在
重命名当前窗口 Ctrl+b + , 底部变成输入框,删掉旧名字输入 admin 回车,状态栏变成 0:admin*,比 0:bash 好认得多
跳到指定窗口 Ctrl+b + 0 / 1 分别跳到第 0、第 1 个窗口
下一个窗口 Ctrl+b + n next
上一个窗口 Ctrl+b + p previous
列出窗口来选 Ctrl+b + w 出现所有窗口的预览列表
关闭当前窗口 Ctrl+b + & 会问 kill-window admin? (y/n),按 y 确认

三、窗格分屏

操作 按键 说明
左右分屏 Ctrl+b + % Shift+5,屏幕竖着切成两半,光标在右半边
上下分屏 Ctrl+b + " Shift+单引号,横着切成上下两块
窗格间移动 Ctrl+b + 按方向直接跳
按编号跳 Ctrl+b + q 每个窗格左上角闪出一个数字(0、1、2…),趁数字还在赶紧按对应数字键
放大 / 还原当前窗格 Ctrl+b + z 窗格临时铺满整屏,看长报错栈时必备,再按一次 z 恢复原布局
调整窗格大小 按住 Ctrl+b 不放,连按方向键 也可精确调,见下方命令
切换预设布局 Ctrl+b + 空格 even-horizontaleven-verticaltiled 等布局间循环,手动调乱了用它一键复位
关闭窗格 Ctrl+b + x,确认 y 或者直接在窗格里敲 exit
把窗格拆成独立窗口 Ctrl+b + ! 某个服务日志太多想单独占一屏时用

搭一个典型的四窗格布局:先 Ctrl+b % 切成左右,再在右边 Ctrl+b " 切成上下,然后 Ctrl+b 回到左边 Ctrl+b " 再切一刀。

精确调整窗格大小Ctrl+b + : 进入命令模式后输入

resize-pane -R 20

表示向右扩 20 列。

四、滚屏与复制

操作 按键 说明
进入滚屏模式 Ctrl+b + [ 右上角出现 [0/2000],表示当前位置和历史总行数,此时方向键、PageUpPageDown 都能翻历史输出,按 q 退出
滚屏模式里搜索 Ctrl+s 进入滚屏后按,输入要找的词(比如 error)回车,n 跳下一个匹配
复制一段文字 Ctrl+b [ → 移到起点按 空格 → 移到终点按 回车 选中内容进了 tmux 缓冲区
粘贴 Ctrl+b + ] 从 tmux 缓冲区粘贴

开启鼠标支持:用鼠标滚轮翻页需要先开鼠标支持,Ctrl+b + : 输入

set -g mouse on

开了之后滚轮、点击切窗格、拖边框调大小都能用。要永久生效就写进 ~/.tmux.conf

注意 tmux 缓冲区和 Windows 剪贴板是隔开的,WSL2 下想复制到 Windows 得在配置里接 clip.exe

五、脚本化操作

这些在普通 shell 里执行,用来遥控已存在的会话。

往会话发命令

tmux send-keys -t ic2 'go run ./admin-api/cmd' C-m

C-m 代表回车,没有它命令只会被输入而不执行。

指定到某个窗口 / 窗格

tmux send-keys -t ic2:em 'go run ./em/cmd' C-m        # 发到 ic2 会话的 em 窗口
tmux send-keys -t ic2:front.1 'bun dev' C-m           # 发到 front 窗口的 1 号窗格

定位格式是 会话:窗口.窗格。用窗口名而不是编号,编号会随开关窗口变化,名字不会。

建窗口和窗格

tmux new-window -t ic2 -n front       # 建名为 front 的窗口
tmux split-window -t ic2 -h           # 左右分(horizontal)
tmux split-window -t ic2 -v           # 上下分(vertical)
tmux select-layout -t ic2 tiled       # 平铺排列

一键启动脚本

存成 scripts/dev.sh

#!/usr/bin/env bash
set -e
cd "$(dirname "$0")/.."
if tmux has-session -t ic2 2>/dev/null; then
  exec tmux attach -t ic2
fi
tmux new-session -s ic2 -d -n admin
tmux send-keys -t ic2:admin 'go run ./admin-api/cmd' C-m
tmux new-window -t ic2 -n em
tmux send-keys -t ic2:em 'go run ./em/cmd' C-m
tmux new-window -t ic2 -n front
tmux send-keys -t ic2:front 'cd packages/admin && bun dev' C-m
tmux new-window -t ic2 -n shell
tmux select-window -t ic2:admin
tmux attach -t ic2

chmod +x scripts/dev.sh 之后,每天 ./scripts/dev.sh 一条命令搞定。重复执行也安全——has-session 那段会直接接回已有会话,不会把服务启第二遍。

六、两个救急的

忘了快捷键Ctrl+b + ?,列出所有当前绑定,q 退出。

命令模式Ctrl+b + :,底部出现命令行,可以敲任意 tmux 命令。改完配置想立即生效:

source-file ~/.tmux.conf
本作品采用《CC 协议》,转载必须注明作者和本文链接
刻意学习
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
144
粉丝
116
喜欢
230
收藏
316
排名:281
访问:3.3 万
私信
所有博文
社区赞助商