随着 AI Coding / CLI Coding 的兴起,越来越多开发者把工作环境搬到了服务器或远程工作机上:
例如:
这些工具往往运行在 长期在线的服务器终端里。
但普通终端有一个致命问题:
SSH 断开 = 任务终止
如果你在训练模型、运行 Agent、部署服务,网络断开可能直接让任务中断。
这就是为什么很多工程师都会使用一个终端神器:
tmux
一句话总结:
tmux 可以让你的终端变成一个可持久的 CLI 工作环境。
tmux 是一个 Terminal Multiplexer(终端复用器)。
它可以:
简单理解:
SSH
↓
tmux
↓
多个终端
即使 SSH 断开,tmux 会话仍然存在。
在 AI 编程时代,你的服务器可能同时运行:
AI agent
logs
shell
docker
editor
没有 tmux 的情况:
ssh
└ shell
有 tmux 的情况:
tmux session
├ window1 agent
├ window2 logs
├ window3 shell
└ window4 editor
你可以像浏览器一样切换终端。
Linux 安装非常简单:
apt install tmux
启动:
tmux
创建命名会话:
tmux new -s work
查看所有会话:
tmux ls
进入会话:
tmux attach -t work
假设你在服务器运行:
python train_model.py
如果 SSH 断开:
普通终端 → 任务结束
tmux → 任务继续
重新登录服务器后:
tmux attach
终端会 完整恢复。
这对于:
非常关键。
tmux 可以把一个终端拆成多个区域。
例如:
+----------------------+
| editor |
+----------+-----------+
| logs | shell |
+----------+-----------+
常用快捷键:
垂直分屏:
Ctrl + b %
水平分屏:
Ctrl + b "
切换 pane:
Ctrl + b + 方向键
tmux 还支持多个窗口:
window1 agent
window2 logs
window3 shell
window4 docker
快捷键:
新建窗口:
Ctrl + b c
切换窗口:
Ctrl + b n
Ctrl + b p
或者:
Ctrl + b 1
Ctrl + b 2
很多服务器会这样启动 tmux:
tmux new -A -s work
含义:
如果 session 存在
→ 直接连接
如果不存在
→ 创建 session
这样无论什么时候登录服务器:
tmux attach
都会回到同一个工作环境。
默认 tmux 不支持鼠标滚动。
编辑配置:
nano ~/.tmux.conf
加入:
set -g mouse on
重新加载:
tmux source-file ~/.tmux.conf
之后你可以:
体验会提升很多。
很多 AI 开发者会用类似结构:
session: ai
布局:
+------------------------+
| editor |
+------------+-----------+
| logs | shell |
+------------+-----------+
或者:
window1 agent
window2 logs
window3 shell
window4 monitor
这样:
如果你使用 Web Terminal,例如:
ttyd
推荐启动方式:
ttyd -W -p 7681 tmux new -A -s web
结构:
browser
↓
ttyd
↓
tmux
↓
bash
优势:
你的服务器就变成一个 随时可访问的 CLI 工作机。
随着 AI Coding 与 CLI 工具的普及,终端再次成为开发者最重要的工作界面。
而 tmux 解决了终端的三个核心问题:
持久
多任务
可管理
当你习惯 tmux 之后,会发现:
终端不再只是一个 shell,而是一个完整的工作空间。
在 CLI Coding 时代,这几乎是每个开发者都应该掌握的工具。