Windows 环境下使用 tmux 保持 SSH 会话
tmux 是一个终端复用工具,核心作用是让会话独立于 SSH 连接存在。即使网络断开、电脑关机或浏览器关闭,只要服务器上的进程还在运行,重新登录时就能无缝接上之前的状态。
为什么需要 tmux
在普通终端(bash/zsh)中,SSH 断开通常意味着会话结束,进程会收到 SIGHUP 信号被杀死。tmux 则不同,它允许你在后台维持多个会话窗口,支持随时 detach(分离)和 attach(重连)。
| 工具 | SSH 掉线后能恢复吗 | 说明 |
|---|---|---|
| 普通 bash / zsh | 不能 | 会话结束,进程通常被杀死 |
| tmux | 能 | 会话独立于 SSH 连接,可随时 reattach |
| screen | 能 | 功能类似,但 tmux 更流行且扩展性更强 |
Windows 下的安装与配置
要在 Windows 上使用 tmux,最方便的方式是配合 Git for Windows 的 Git Bash 环境。Git Bash 提供了类 Unix 的 shell 体验,适合运行 Linux 工具。
1. 基础环境准备
确保已安装 Git for Windows。安装完成后,找到 Git Bash 的安装目录(默认通常在 C:\Program Files\Git),我们需要将 tmux 的可执行文件放入该目录下的 usr/bin 文件夹中。
如果你习惯从源码编译或使用 msys2 包管理器,也可以自行构建,但大多数情况下直接获取预编译的二进制文件即可。
2. 基本命令操作
启动 Git Bash 后,输入 tmux 即可进入。以下是日常高频使用的命令:
- 新建会话:
tmux new -s mytrain(指定会话名,方便管理) - 列出会话:
tmux ls(查看当前所有存活会话) - 分离会话:按
Ctrl+b然后按d(程序继续跑,回到本地终端) - 重连会话:
tmux attach -t mytrain(或者简写tmux a -t mytrain) - 关闭会话:在会话内输入
exit或tmux kill-session -t mytrain
3. 配置文件优化
默认的 tmux 配置比较朴素,建议修改 ~/.tmux.conf 来提升体验。常见优化包括更改前缀键、开启鼠标支持和增加历史行数。
# ~/.tmux.conf
# 改前缀键为 Ctrl+a(很多人觉得比 Ctrl+b 好按)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 启用鼠标支持(兼容新旧版本)
setw -g mouse on
set-option -g mouse on
# 调整滚动历史行数,避免内容丢失
set-option -g history-limit 20000
-g base-index 1
setw -g pane-base-index 1

