Tmux 是目前最主流的终端复用器,几乎所有 Linux 服务器预装,社区生态最成熟。
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 会话管理(Session) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 新建会话(指定名称) tmux new -s myproject # 断开会话(后台保持运行)—— 快捷键 Ctrl+b d # 重新连接会话 tmux attach -t myproject # 简写 tmux a -t myproject # 列出所有会话 tmux ls # 切换会话 tmux switch -t another # 重命名当前会话 Ctrl+b $ # 或命令行 tmux rename-session -t oldname newname # 杀掉会话 tmux kill-session -t myproject # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 窗口管理(Window)—— 类似浏览器标签页 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+b c # 新建窗口 Ctrl+b n # 下一个窗口 Ctrl+b p # 上一个窗口 Ctrl+b 0~9 # 切换到指定编号窗口 Ctrl+b w # 可视化选择窗口 Ctrl+b & # 关闭当前窗口(需确认) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 窗格管理(Pane)—— 分屏操作 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+b % # 垂直分割(左右) Ctrl+b " # 水平分割(上下) Ctrl+b 方向键 # 切换窗格 Ctrl+b z # 最大化/还原当前窗格 Ctrl+b x # 关闭当前窗格 Ctrl+b 空格 # 切换布局模式 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 实用功能 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+b [ # 进入滚动/复制模式(按 q 退出) Ctrl+b = # 粘贴缓冲区内容 Ctrl+b ? # 查看所有快捷键 Ctrl+b : # 进入命令模式(如输入 kill-session)
展开代码# 修改前缀键为 Ctrl+a(更符合习惯) unbind C-b set -g prefix C-a bind C-a send-prefix # 鼠标支持 set -g mouse on # 窗口从 1 开始计数(更符合键盘位置) set -g base-index 1 setw -g pane-base-index 1 # 状态栏美化 set -g status-style bg=black,fg=white set -g window-status-current-style bg=blue,fg=white,bold
Zellij 用 Rust 重写,提供现代化的 UI、内置布局系统,对鼠标和键盘都极友好。
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 会话管理 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 新建会话(自带欢迎界面,可选布局) zellij # 指定名称启动 zellij --session mydev # 后台分离(detach) Ctrl+g d # 或点击 UI 中的 detach 按钮 # 重新连接 zellij attach mydev # 列出会话 zellij list-sessions # 简写 zellij ls # 杀掉会话 zellij kill-session mydev zellij kill-all-sessions # 清理全部 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 窗格/标签管理(Zellij 概念:Pane + Tab) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+g n # 新建标签页(Tab) Ctrl+g t # 切换标签(或鼠标点击) Ctrl+g x # 关闭当前标签 Ctrl+g p # 新建窗格(智能分割) Ctrl+g 方向键 # 切换窗格 Ctrl+g f # 全屏切换当前窗格 Ctrl+g e # 编辑当前窗格滚动缓冲区 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 布局系统(Zellij 杀手级功能) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 使用内置布局启动 zellij --layout strider # 文件管理器 + 终端 zellij --layout compact # 紧凑开发布局 # 保存当前布局 Ctrl+g Ctrl+o # 导出当前布局为 kdl 文件
展开代码# 浮动窗格(类似弹出窗口) Ctrl+g w # 打开浮动终端,按任意键关闭 # 滚动搜索 Ctrl+g s # 进入搜索模式,/ 搜索,n/N 跳转 # 重新绑定快捷键(无需配置文件) zellij setup --dump-config > ~/.config/zellij/config.kdl
Screen 历史悠久,几乎所有 Unix 系统都有预装,适合极简环境。
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 会话管理 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 新建会话 screen -S mytask # 分离会话(后台运行) Ctrl+a d # 重新连接 screen -r mytask # 列出会话 screen -ls # 杀掉会话 screen -S mytask -X quit # 或进入后 Ctrl+a k # 然后 y 确认 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 窗口管理 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+a c # 新建窗口 Ctrl+a n # 下一个窗口 Ctrl+a p # 上一个窗口 Ctrl+a 0~9 # 跳转到窗口 Ctrl+a " # 列出所有窗口(可视化选择) Ctrl+a A # 重命名当前窗口 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 分屏(Screen 的分屏较原始) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Ctrl+a S # 水平分割区域 Ctrl+a | # 垂直分割(较新版本) Ctrl+a Tab # 切换区域 Ctrl+a X # 关闭当前区域
Byobu 是 tmux/screen 的增强前端,提供华丽的状态栏和 F 键操作体系。
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 会话管理 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 启动(自动选择后端 tmux 或 screen) byobu # 新建命名会话 byobu new -s production # 分离 F6 # 或 Ctrl+a d(取决于后端) # 重新连接 byobu attach -t production # 列出会话 byobu ls # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # F 键快捷操作(Byobu 特色) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ F2 # 新建窗口 F3 / F4 # 上一个/下一个窗口 F5 # 刷新状态栏 F7 # 滚动模式(空格标记,Enter 复制) F8 # 重命名窗口 F9 # 配置菜单(交互式设置) F12 # 锁定屏幕 Shift+F2 # 水平分屏 Ctrl+F2 # 垂直分屏 Shift+方向键 # 切换窗格
Mosh 不是复用工具,但常与 tmux 配合使用,解决 SSH 弱网/断线问题。
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 基础用法 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 替代 SSH 连接(UDP 协议,自动重连) mosh user@server # 指定端口 mosh --ssh="ssh -p 2222" user@server # 连接后自动进入 tmux mosh user@server -- tmux attach -t work # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 典型工作流:Mosh + Tmux 黄金组合 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 1. 本地连接(即使切换 WiFi 也不中断) mosh server -- zellij attach dev # 2. 关闭笔记本盖子 → 回家 → 打开 → 自动恢复 # 3. 手机流量开热点 → 无缝切换网络
| 你的需求 | 推荐工具 | 理由 |
|---|---|---|
| 服务器运维,求稳 | tmux | 预装率高,文档丰富 |
| 现代体验,鼠标友好 | Zellij | 开箱即用,UI 美观 |
| 老旧系统兼容 | screen | 无处不在,零依赖 |
| 状态栏信息丰富 | byobu | 自带系统监控,Ubuntu 官方支持 |
| 经常切换网络 | mosh + tmux | 漫游不断连 |
| 不想记快捷键 | Zellij | 可视化提示,鼠标可操作 |
展开代码# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 1. 会话命名规范(防止混乱) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ tmux new -s prod-api # 生产环境 API 服务 tmux new -s dev-frontend # 本地前端开发 tmux new -s train-gpu # 模型训练任务 # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 2. 一键恢复工作流(添加到 ~/.bashrc) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 自动恢复或新建开发会话 alias dev='tmux attach -t dev 2>/dev/null || tmux new -s dev' # 快速进入项目 alias proj='cd ~/project && dev' # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 3. 跨设备同步会话(配合 tmux-resurrect 插件) # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # 安装插件后,保存/恢复完整会话状态 Ctrl+b Ctrl+s # 保存会话(包括 vim 等程序状态) Ctrl+b Ctrl+r # 恢复会话(重启服务器后也能找回)
终端复用工具的核心价值在于会话持久化和工作区组织。
本文作者:zzz
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!