Linux tmux 命令:终端复用与会话管理神器
tmux (Terminal Multiplexer) 是 Linux 命令行工作者的"效率倍增器"。它的核心价值在于会话持久化——即使你关闭终端、断开 SSH 连接,tmux 中运行的程序依然会在后台继续执行,下次连接时一键恢复原状。这对于跑长时间任务(编译、训练模型、数据迁移)的场景来说是刚需。
最基础的用法
tmux
执行后你会进入一个新的 tmux 会话,底部会出现一条状态栏显示会话名称(如 [0] 0:bash*)。此时你就像在普通终端中一样操作,但已经获得了"断线保护"的能力。
实际使用中,高频场景与命令组合
1. 会话管理
创建命名会话:
tmux new -s myproject
列出所有会话:
tmux list-sessions
或简写为 tmux ls,查看当前有哪些后台会话在运行。
分离当前会话(detach):
按下 Ctrl+b 然后按 d,会话会在后台继续运行,你回到普通终端。
重新接入会话(attach):
tmux attach -t myproject
瞬间恢复之前的工作状态,所有窗口、分屏、运行的程序都原封不动。
2. 窗格(Pane)操作 —— 分屏显示
tmux 允许将一个窗口拆分成多个窗格,每个窗格独立运行命令。
- 垂直分屏:
Ctrl+b然后按% - 水平分屏:
Ctrl+b然后按" - 在窗格间切换:
Ctrl+b然后按方向键 - 关闭当前窗格: 输入
exit或按Ctrl+d
典型场景:左边跑 tail -f /var/log/nginx/access.log 实时监控日志,右边执行 curl 触发请求,即时观察响应。
3. 窗口(Window)操作 —— 多标签页
- 新建窗口:
Ctrl+b然后按c - 切换到下一个窗口:
Ctrl+b然后按n - 切换到上一个窗口:
Ctrl+b然后按p - 列出所有窗口:
Ctrl+b然后按w(可用方向键选择)
每个窗口可以有自己的分屏布局,适合管理多个项目或任务。
4. 滚动与复制模式
tmux 中无法直接用鼠标滚轮查看历史输出,需要进入复制模式:
- 进入复制模式:
Ctrl+b然后按[ - 用方向键或 PageUp/PageDown 滚动
- 按
q退出复制模式
5. 自定义配置
tmux 的默认快捷键(Ctrl+b)和外观可以通过 ~/.tmux.conf 文件定制。一个常见的优化是将前缀键改为 Ctrl+a(更符合直觉),并开启鼠标支持:
# ~/.tmux.conf
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 开启鼠标支持(可以滚轮滚动、点击切换窗格)
set -g mouse on
# 设置状态栏颜色
set -g status-bg colour235
set -g status-fg white
修改后执行 tmux source-file ~/.tmux.conf 即可生效。
如果不知道如何下手,可以先尝试
tmux new -s demo
进入后按 Ctrl+b 再按 % 分屏,左边跑 top,右边跑 htop,然后按 Ctrl+b 再按 d 分离。执行 tmux ls 确认会话在后台,再执行 tmux attach -t demo 恢复。走完这一套流程,你就掌握了 tmux 的核心工作流。
或者,如果你只是想快速保护一个正在运行的命令,可以在任意终端中按下 Ctrl+b d,之后用 tmux attach 找回它。
- 点赞
- 收藏
- 关注作者
评论(0)