MENU

tmux

2025 年 12 月 08 日 • 生活

tmux 是一款终端复用工具,支持多窗口、多会话管理,以下是按使用场景分类的常用命令,涵盖日常操作核心场景:

一、会话管理(最核心,tmux 所有操作基于会话)

1. 创建会话

# 创建默认名称的会话(会话名自动为 0、1、2...)
tmux
# 创建指定名称的会话(推荐,便于管理)
tmux new -s <会话名>  # 例:tmux new -s dev

2. 列出所有会话

tmux ls  # 或 tmux list-sessions
# 输出示例:dev: 1 windows (created Mon Dec  8 10:00:00 2025) [80x24]

3. 分离/退出会话(不关闭会话,仅断开连接)

# 在 tmux 会话内执行:快捷键 Ctrl + b + d(推荐)
# 或命令行执行(会话内/外均可)
tmux detach -t <会话名>  # 例:tmux detach -t dev

4. 接入/恢复会话

# 接入指定名称的会话
tmux attach -t <会话名>  # 例:tmux attach -t dev
# 若只有一个会话,可简化
tmux a

5. 重命名会话

# 会话内执行
tmux rename-session -t <旧名> <新名>  # 例:tmux rename-session -t dev prod
# 快捷键:Ctrl + b + $(会话内直接重命名)

6. 关闭/杀死会话

# 杀死指定会话
tmux kill-session -t <会话名>  # 例:tmux kill-session -t dev
# 杀死所有会话
tmux kill-server
# 会话内直接退出(关闭当前会话):exit 或 Ctrl + d

7. 切换会话

# 在不同会话间切换
tmux switch -t <会话名>  # 例:tmux switch -t test
# 快捷键:Ctrl + b + s(会话列表交互式切换)

二、窗口管理(一个会话可包含多个窗口)

1. 创建新窗口

# 会话内执行命令
tmux new-window -n <窗口名>  # 例:tmux new-window -n log
# 快捷键(推荐):Ctrl + b + c(创建默认名称窗口)

2. 列出当前会话的窗口

tmux list-windows  # 或 tmux lsw

3. 切换窗口

# 按窗口编号切换(编号从 0 开始)
tmux select-window -t <窗口编号>  # 例:tmux select-window -t 1
# 快捷键:
# Ctrl + b + <编号>(直接切换到对应编号窗口,如 Ctrl+b+1)
# Ctrl + b + n(切换到下一个窗口)
# Ctrl + b + p(切换到上一个窗口)
# Ctrl + b + w(窗口列表交互式切换)

4. 重命名窗口

tmux rename-window -t <窗口编号> <新名>  # 例:tmux rename-window -t 0 mysql
# 快捷键:Ctrl + b + ,(会话内直接重命名当前窗口)

5. 关闭窗口

tmux kill-window -t <窗口编号>  # 例:tmux kill-window -t 1
# 快捷键:Ctrl + b + &(会话内关闭当前窗口,需确认)
# 窗口内执行 exit 也可关闭当前窗口

三、窗格管理(一个窗口可拆分多个窗格,核心高效操作)

1. 拆分窗格

# 水平拆分(上下)
tmux split-window  # 或 tmux splitw
# 垂直拆分(左右)
tmux split-window -h
# 快捷键:
# Ctrl + b + "(水平拆分)
# Ctrl + b + %(垂直拆分)

2. 切换窗格

tmux select-pane -t <窗格编号>  # 例:tmux select-pane -t 1
# 快捷键:
# Ctrl + b + 方向键(上下左右切换)
# Ctrl + b + o(按顺序切换下一个窗格)

3. 调整窗格大小

# 调整当前窗格高度(上下),数字为行数
tmux resize-pane -U <数字>  # 向上,例:tmux resize-pane -U 5
tmux resize-pane -D <数字>  # 向下
# 调整当前窗格宽度(左右),数字为列数
tmux resize-pane -L <数字>  # 向左
tmux resize-pane -R <数字>  # 向右
# 快捷键:Ctrl + b + 按住 Ctrl + 方向键(微调窗格大小)

4. 关闭窗格

tmux kill-pane -t <窗格编号>  # 例:tmux kill-pane -t 1
# 快捷键:Ctrl + b + x(关闭当前窗格,需确认)
# 窗格内执行 exit 也可关闭当前窗格

5. 窗格全屏/还原

# 快捷键:Ctrl + b + z(当前窗格全屏,再按一次还原)

四、其他常用操作

1. 查看 tmux 快捷键帮助

# 快捷键:Ctrl + b + ?(弹出帮助列表,按 q 退出)

2. 复制粘贴(tmux 复制模式)

# 1. 进入复制模式:Ctrl + b + [
# 2. 移动光标到复制起始位置,按 Space 开始选择
# 3. 移动光标到复制结束位置,按 Enter 复制
# 4. 粘贴:Ctrl + b + ]

3. 调整 tmux 终端大小(适配窗口)

# 快捷键:Ctrl + b + Ctrl + r(刷新终端大小)

五、实用组合示例

  1. 快速创建开发会话

    tmux new -s dev -n editor  # 创建名为 dev 的会话,默认窗口名 editor
  2. 会话内快速拆分窗格并操作

    Ctrl + b + %  # 垂直拆分窗格
    Ctrl + b + 右方向键  # 切换到右侧窗格
    vim .  # 右侧编辑代码
    Ctrl + b + 左方向键  # 切回左侧窗格
    npm run dev  # 左侧启动服务
  3. 远程服务器保持会话

    ssh user@server  # 登录远程服务器
    tmux new -s server-dev  # 创建会话
    # 执行耗时任务(如部署、日志监控)
    Ctrl + b + d  # 分离会话,断开 ssh 连接
    # 重新登录后恢复
    ssh user@server
    tmux a -t server-dev

核心快捷键速查表(高频)

快捷键功能
Ctrl + b + d分离会话
Ctrl + b + s切换会话
Ctrl + b + c创建新窗口
Ctrl + b + n/p切换下/上一个窗口
Ctrl + b + %垂直拆分窗格
Ctrl + b + "水平拆分窗格
Ctrl + b + 方向键切换窗格
Ctrl + b + z窗格全屏/还原
Ctrl + b + ?查看快捷键帮助
Ctrl + b + [/]]进入复制模式/粘贴

记住 Ctrl + b 是 tmux 的前缀键,所有快捷键都需要先按前缀键,再按后续键。熟练掌握会话、窗口、窗格的核心操作,就能高效使用 tmux 提升终端效率。