惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园 - 叶小钗
D
DataBreaches.Net
D
Docker
月光博客
月光博客
博客园 - 司徒正美
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - Swizard

还在被框架绑架?一文看懂“六边形架构”,让你的核心业务稳如泰山! 逐行解剖:扒开 Lovable Agent 源码,看顶级 AI 是如何“思考”与“动刀”的 还在无脑堆砌提示词?三分钟看懂 Vercel v0 价值千万的 System Prompt 底层逻辑 OpenClaw+OpenViking + NVIDIA API 配置教程 拒绝“挤牙膏”!用苏格拉底提示法,让 AI 从“复读机”进化为“咨询顾问” 别再写丑陋的 Shell 脚本了:用 Gum 给你的终端穿上“高定西装” 告别 sudo 滥用!用 gosu 优雅解决 Docker 容器权限的“千古难题” 拒绝视觉噪音:用“数据墨水比”法则重塑你的专业图表 告别 Git Stash:用 Git Worktree 实现多任务并行,效率起飞! 手机里的 Linux 实验室:Termux 让你随时随地开启“黑客”模式 拒绝“隐形”!用 JSON-LD 让你的网页在 Google 搜索结果中“自带光环” ⚔️ Google SGE vs. Perplexity:一场内容争夺战,两套生存法则 SEO 已死?拥抱 AEO/GEO:如何让 AI 主动“推荐”你的网站 Python 重构神器:告别 ast 模块的痛苦,三行代码搞定复杂批量修改 别再手写递归找文件了!用 Python rglob 一行代码搞定海量搜索 告别笨重的 For 循环:用 xargs 打造 Linux 命令行流水线神器 沉默的观察者:Multi-Agent 架构如何实现“零指令”主动服务? 杀死那个提示词框:揭秘“意图识别 + 动态组装”的幕后逻辑 UI 设计如何落地“Boss Mode”?告别聊天框的四个交互法则 用 100 倍 Token 换取 10% 体验:关于 AI Agent 的“暴力美学”
告别“断网即崩溃”:像存档游戏一样管理你的终端会话(Tmux 终...
Swizard · 2026-01-04 · via 博客园 - Swizard

1. 引言:那个午夜心碎的时刻

你一定经历过这样的场景:

周五晚上 11 点,你正在远程服务器上跑一个耗时 3 小时的数据库迁移脚本,或者正在训练一个深度学习模型。进度条缓慢地爬到了 89%。

突然,你的 Wi-Fi 抖动了一下,或者你那只调皮的猫踩到了电源排插。

SSH 连接断开。 Broken pipe

你手忙脚乱地重新连上服务器,面对空荡荡的命令行,心里一凉:那个跑了几个小时的进程,随着会话的结束,彻底消失了。 你不得不从头再来。

如果不解决这个问题,你的工作效率永远受制于网络稳定性。

今天我们要介绍的主题是 tmux(Terminal Multiplexer)。它不仅能彻底根治“断网即崩溃”的顽疾,还能让你的终端像黑客电影里那样酷炫——分屏、多窗口、后台驻留,无所不能。


2. 概念拆解:给你的进程穿上“防弹衣”

很多新手对 tmux 望而生畏,觉得它快捷键反人类。但如果理解了它的核心逻辑,你会发现它非常直观。

生活化类比:座机电话 vs. 微信语音

  • 普通 SSH 会话(没有 tmux):就像打座机电话

    • 你和服务器建立连接,开始通话(运行进程)。

    • 一旦电话线被拔掉(网络断开或关闭窗口),通话立刻结束,没有任何挽回余地。

  • Tmux 会话:就像发微信/留言

    • 你把指令发给服务器上的 tmux(它是一个永远在线的中间人)。

    • 即使你的手机没电了(本地终端关闭),服务器端的 tmux 依然在忠实地记录和执行任务。

    • 当你换了一台手机(重新登录 SSH),打开微信,所有的聊天记录(进程状态)都还在那里,你可以无缝接着聊

核心架构图解

在 tmux 的世界里,有三个层级的概念,我们可以用 Web 浏览器 来类比:

  1. Session(会话)

    • 类比:这就好比你打开的一个浏览器窗口

    • 作用:这是最高层级的容器。你可以把“工作”是一个 Session,“个人项目”是另一个 Session。

  2. Window(窗口)

    • 类比:浏览器里的标签页 (Tab)

    • 作用:在一个 Session 里,你可以开多个 Window,比如一个用来写代码,一个用来看日志。

  3. Pane(窗格)

    • 类比:浏览器里的分屏模式

    • 作用:把一个 Window 切割成几块,左边看代码,右边运行指令。


3. 动手实战:从 0 到 1 的 tmux 之旅

别光看,打开你的终端(Mac/Linux),我们直接动手。

第一步:安装

# MacOS
brew install tmux

# Ubuntu/Debian
sudo apt-get install tmux

第二步:Hello World(你的第一个持久化会话)

想象一下,你现在要运行一个重要的任务。

  1. 创建一个有名字的会话

    # new -s 表示新建一个 session,名字叫 my-work
    tmux new -s my-work

    此刻,你的终端底部应该会出现一条绿色的状态栏,这意味着你已经进入了 tmux 的世界。

  2. 运行一个假装很重要的任务

    你会看到系统的实时监控界面在跳动。

  3. 见证奇迹的时刻:分离(Detach)

    这是 tmux 最迷人的操作。我们要把这个会话“挂起”在后台,回到原来的终端,但不结束里面的 top 进程。

    • 按下 Ctrl + b(这是 tmux 的前缀键,松开它们),然后迅速按下 d(代表 Detach)。

    结果:你退出了 tmux 界面,回到了普通命令行,且看到了 [detached] 的提示。

  4. 模拟灾难:

    现在,甚至可以直接关闭你的终端窗口,或者断开 SSH 连接。喝口水,假装过了一天。

  5. 时光倒流:接管(Attach)

    重新打开终端(或重新连上 SSH),输入:

    # attach -t 表示接管 target session
    tmux attach -t my-work

    Boom! 你会发现 top 命令依然在跳动,一切就像你从未离开过一样。

第三步:像黑客一样分屏

在 tmux 会话内部,试着操作一下这些魔法组合键(记得先按前缀键 Ctrl + b):

动作 快捷键 (先按 Ctrl+b, 松手后再按...) 记忆口诀
左右分屏 % (Shift + 5) 百分号像一把刀把屏幕竖切
上下分屏 " (Shift + ') 引号像上下排列
切换光标 方向键 (↑ ↓ ← →) 直观导航
关闭当前块 x x 代表消灭 (Kill)

4. 进阶深潜:新手必坑与最佳实践

陷阱 1:怎么不能滚屏?

新手最抓狂的就是在 tmux 里直接用鼠标滚轮向上翻页,结果翻的是历史命令,而不是屏幕内容。

  • 原因:tmux 接管了终端缓冲区。

  • 解决:进入复制模式

    1. 按下 Ctrl + b,然后按 [

    2. 现在你可以用方向键或 PageUp/PageDown 随意浏览历史输出了。

    3. q 退出该模式。

最佳实践:修改反人类的前缀键

默认的 Ctrl + b 距离太远,按久了手指抽筋。绝大多数 tmux 高手都会把它改成 Ctrl + a(和 GNU Screen 一致,且更顺手)。

在你的用户目录下新建文件 ~/.tmux.conf,写入:

# 将前缀键从 C-b 修改为 C-a
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 开启鼠标支持(这是新手的福音,可以用鼠标调整分屏大小、点击切换窗口)
set -g mouse on

保存后,在终端运行 tmux source ~/.tmux.conf 让配置生效。


5. 总结与延伸

一句话总结:

Tmux 将代码的执行与代码的展示彻底解耦,它给你的远程会话穿上了一件“防弹衣”,无论网络如何波动,你的进程永不掉线。