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   # 关闭所有会话

自动清理已退出的会话

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 + dexit 关闭一个分屏
均匀分配大小 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, ]