tmux 是什么?
tmux 是 'Terminal Multiplexer' 的缩写,它允许将一个终端屏幕划分为多个独立的会话、窗口和窗格。当 SSH 连接断开时,它是一个必不可少的工具,可以保持任务继续运行,或者同时监控多个任务。
3 个核心概念
tmux 具有会话 > 窗口 > 窗格的层级结构。
- 会话 (Session): 最大的单位。包含多个窗口的工作空间。(例如:'project-A')即使从会话中分离,任务也会在后台继续运行。
- 窗口 (Window): 类似于会话内的标签页。一个会话可以有多个窗口。
- 窗格 (Pane): 将一个窗口分割成多个小终端屏幕。(例如:上方编辑代码,下方查看日志)
前缀键 (Prefix Key)
在 `tmux` 内部执行命令时,需要首先按下的组合键。默认值是 Ctrl+b。(例如:要创建新窗口,需要先按下并松开 Ctrl+b,然后按下 c。)本指南中将此键表示为 [Prefix]。
主要命令 (Shell)
直接在终端(Shell)中输入以管理 tmux 会话的命令。
1. 会话管理
2. 帮助/版本
生成的命令:
请尝试组合命令。
描述:
`tmux` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
主要快捷键 (tmux 内部)
在连接到 `tmux` 会话时使用的快捷键。首先按下 [Prefix](默认 Ctrl+b),然后按下以下键。
会话和窗口管理
- [Prefix] + d: 从会话中分离 (Detach)。任务在后台继续运行。
- [Prefix] + c: 创建新窗口 (Create)
- [Prefix] + w: 查看窗口列表 (Windows)
- [Prefix] + n: 切换到下一个窗口 (Next)
- [Prefix] + p: 切换到上一个窗口 (Previous)
- [Prefix] + [0-9]: 直接切换到指定编号的窗口
- [Prefix] + ,: 重命名当前窗口
- [Prefix] + &: 关闭当前窗口 (需要确认)
窗格管理
- [Prefix] + %: 垂直分割当前窗格 (左/右)
- [Prefix] + ": 水平分割当前窗格 (上/下)
- [Prefix] + [方向键]: 将焦点移动到方向键指示的窗格
- [Prefix] + o: 循环切换到下一个窗格
- [Prefix] + z: 当前窗格全屏放大/缩小 (Zoom)
- [Prefix] + x: 关闭当前窗格 (需要确认)
使用场景示例 (Shell)
在终端中启动和管理 tmux 的一般流程。
创建并连接 my-project 会话
tmux new -s my-project
从会话中分离 (Detach)
在会话中,按下 [Prefix] (Ctrl+b) 后再按 d 键即可从会话中退出。任务将继续在后台运行。
查看正在运行的会话列表
tmux ls
重新连接到 my-project 会话
tmux attach -t my-project
强制终止 my-project 会话
tmux kill-session -t my-project
安装
tmux 可以通过大多数 Linux 发行版的包管理器轻松安装。
Debian/Ubuntu
sudo apt update && sudo apt install -y tmux
RHEL/CentOS/Fedora
sudo dnf install -y tmux
Arch Linux
sudo pacman -S --needed tmux
openSUSE
sudo zypper install -y tmux
提示与注意事项
推荐设置/习惯
- SSH 连接后: 连接到远程服务器后,立即创建一个像 `tmux new -s work` 这样的会话,即使连接中断,也能安全地继续工作。
- 鼠标模式: 在 ~/.tmux.conf 中添加 `set -g mouse on` 可以通过鼠标调整窗格大小、选择窗口和滚动。
- 配置文件: 在 ~/.tmux.conf 中设置自己的快捷键或主题。
- 更改前缀键: 如果 Ctrl+b 不方便,可以更改为 `set -g prefix C-a`。