by ChatGPT.
1️⃣ tmux 基础
启动 & 退出
tmux # 直接启动 tmux(新建默认会话)
tmux new -s name # 新建一个指定名称的会话
tmux list-sessions # 列出所有会话
tmux attach -t name # 重新连接已断开的会话
tmux kill-session -t name # 关闭指定会话
tmux kill-server # 关闭所有会话
- 退出
tmux会话:exit或Ctrl + d - 断开
tmux(会话仍运行):Ctrl + b, d - 重连
tmux会话:tmux attach -t name
自动清理已退出的会话
alias tmux-clean='tmux list-sessions | awk -F: "{print $1}" | xargs -I{} tmux kill-session -t {}'
要使其永久生效,添加到~/.bashrc并使用source。
2️⃣ 分屏操作
创建分屏
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 左右分屏 | Ctrl + b, % |
垂直分屏(左右分割) |
| 上下分屏 | Ctrl + b, " |
水平分屏(上下分割) |
切换 & 调整分屏
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 切换到下一个分屏 | Ctrl + b, o |
在多个分屏间切换 |
| 调整分屏大小 | Ctrl + b, ⬅ ⬆ ⬇ ➡ |
方向键调整大小 |
| 关闭当前分屏 | Ctrl + d 或 exit |
关闭一个分屏 |
| 均匀分配大小 | Ctrl + b, Alt + 1 |
所有分屏平均大小 |
3️⃣ 多窗口管理
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 新建窗口 | Ctrl + b, c |
新建一个窗口 |
| 切换到下一个窗口 | Ctrl + b, n |
切换到下一个窗口 |
| 切换到上一个窗口 | Ctrl + b, p |
切换到上一个窗口 |
| 选择窗口 | Ctrl + b, w |
显示窗口列表并选择 |
| 重命名窗口 | Ctrl + b, , |
给窗口起个名字 |
| 关闭当前窗口 | Ctrl + b, & |
关闭当前窗口 |
💡 窗口 = 多个分屏的集合,可以理解为 tmux 的“标签页”。
4️⃣ 复制 & 粘贴(适用于鼠标模式)
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 进入复制模式 | Ctrl + b, [ |
启用选择模式 |
| 开始选取 | 空格键 |
选择文本 |
| 复制选中文本 | Enter |
复制到 tmux 内部剪贴板 |
| 粘贴 | Ctrl + b, ] |
粘贴复制的文本 |
💡 建议开启鼠标支持,在 ~/.tmux.conf 里加:
set -g mouse on
然后 tmux source-file ~/.tmux.conf 让配置生效。
5️⃣ 进阶功能
后台运行任务
tmux new -s mysession "long_running_command"
💡 这样可以直接后台运行一个任务,比如:
tmux new -s backup "rsync -av /data /backup"
然后可以随时 tmux attach -t backup 进入查看。
监控窗口变化
tmux setw -g monitor-activity on
tmux set -g visual-bell on
💡 如果窗口有输出更新,状态栏会有提示!
日志记录
tmux pipe-pane -o 'cat >> /tmp/tmux.log'
💡 这样所有 tmux 里的输出都会写入 /tmp/tmux.log,方便查看日志。
6️⃣ 配置优化
在 ~/.tmux.conf 里加入:
# 开启鼠标支持
set -g mouse on
# 设置窗口编号从 1 开始
set -g base-index 1
setw -g pane-base-index 1
# 让 tmux 状态栏更好看
set -g status-bg black
set -g status-fg white
set -g status-left "#[fg=green]#H #[fg=cyan]#S"
set -g status-right "#[fg=yellow]%Y-%m-%d %H:%M"
然后运行:
tmux source-file ~/.tmux.conf
让配置立即生效!
🚀 总结
| 功能 | 快捷键 |
|---|---|
| 创建分屏(左右/上下) | Ctrl + b, % / Ctrl + b, " |
| 切换分屏 | Ctrl + b, o |
| 调整分屏大小 | Ctrl + b, ⬅ ⬆ ⬇ ➡ |
| 新建窗口 | Ctrl + b, c |
| 切换窗口 | Ctrl + b, n / Ctrl + b, p |
| 重命名窗口 | Ctrl + b, , |
| 断开会话 | Ctrl + b, d |
| 恢复会话 | tmux attach -t name |
| 复制/粘贴 | Ctrl + b, [, 选择后 Enter,粘贴 Ctrl + b, ] |