tmux 常用操作手册
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-horizontal、even-vertical、tiled 等布局间循环,手动调乱了用它一键复位 |
| 关闭窗格 | 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],表示当前位置和历史总行数,此时方向键、PageUp、PageDown 都能翻历史输出,按 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 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: