ssh连接断开,保持任务后台执行——tmux
目录
- **核心用途**
- **基础使用方法**
- 1. **安装 tmux**
- 2. **启动新会话**
- 3. **常用快捷键(需先按 `Ctrl+b` 前缀)**
- 4. **会话管理命令**
- 5. **窗格操作进阶**
- **典型工作流**
- **注意事项**
- **配置文件(~/.tmux.conf)**
tmux
(
Terminal Multiplexer)是一个强大的终端复用工具,用于在单个终端窗口中管理多个
终端会话、
窗口和
窗格。它能让用户在一个连接中执行多个任务,并在断开连接后保持任务后台运行,非常适合远程服务器管理或长时间运行的任务。
核心用途
- 会话持久化
ssh
断开后,会话仍在后台运行,重新连接可恢复工作现场。 - 多窗口/窗格管理
分割终端为多个窗格,或创建多个窗口,高效并行操作。 - 会话共享
允许多用户同时连接同一会话(协作或演示)。 - 后台任务管理
长时间运行的任务(如编译、下载)可放入后台,不影响本地终端。
基础使用方法
1. 安装 tmux
# Ubuntu/Debian
sudo apt install tmux# CentOS/RHEL
sudo yum install tmux# macOS (Homebrew)
brew install tmux
2. 启动新会话
tmux new -s mysession # 创建名为 "mysession" 的会话
3. 常用快捷键(需先按 Ctrl+b
前缀)
快捷键 | 功能 |
---|---|
% | 垂直分割窗格(左右布局) |
" | 水平分割窗格(上下布局) |
方向键 | 切换窗格 |
c | 创建新窗口 |
n /p | 切换到下一个/上一个窗口 |
d | 分离会话(后台运行) |
z | 最大化/恢复当前窗格 |
& | 关闭当前窗口 |
x | 关闭当前窗格 |
4. 会话管理命令
# 查看所有会话
tmux ls# 恢复指定会话
tmux attach -t mysession# 关闭会话
tmux kill-session -t mysession# 在会话内重命名当前窗口
Ctrl+b , # 输入新名称后回车
5. 窗格操作进阶
操作 | 快捷键 |
---|---|
调整窗格大小 | Ctrl+b 方向键 (按住不放) |
切换窗格布局 | Ctrl+b Space (循环切换预设布局) |
同步输入到所有窗格 | Ctrl+b :setw synchronize-panes |
典型工作流
- 连接远程服务器:
ssh user@server
- 启动 tmux:
tmux new -s mywork
- 执行任务:
- 垂直分屏:
Ctrl+b %
→ 左侧运行top
,右侧编辑代码。 - 新建窗口:
Ctrl+b c
→ 编译程序。
- 垂直分屏:
- 断开连接:
Ctrl+b d
(任务在后台运行)。 - 重连后恢复:
tmux attach -t mywork
→ 恢复所有窗口和窗格。
注意事项
- 前缀键:所有快捷键需先按
Ctrl+b
(可自定义为Ctrl+a
等)。 - 退出窗格:在窗格内输入
exit
或Ctrl+d
关闭当前窗格。 - 滚动查看:
Ctrl+b [
进入滚动模式,方向键查看历史,按q
退出。
配置文件(~/.tmux.conf)
自定义行为(示例):
# 将前缀键改为 Ctrl+a
set -g prefix C-a
unbind C-b
bind C-a send-prefix# 启用鼠标支持(切换窗格/调整大小)
set -g mouse on# 设置状态栏颜色
set -g status-bg blue
修改后需重载配置:
tmux source-file ~/.tmux.conf
掌握 tmux 可极大提升终端工作效率,尤其适合管理服务器或复杂工作流。更多功能可通过 man tmux
或 官方文档 探索。