Tmux 是终端复用器,支持在一个终端窗口运行多个会话,断开连接后会话仍持续运行,是远程服务器长任务与多窗口工作的核心工具。

安装

# Debian/Ubuntu
sudo apt update && sudo apt install tmux
 
# RHEL/Fedora
sudo dnf install tmux

会话管理

tmux                    # 启动新会话
tmux new -s my_session  # 启动并命名会话
tmux ls                 # 列出所有会话
tmux attach -t my_session       # 重连会话
tmux kill-session -t my_session # 删除指定会话
tmux kill-server        # 删除所有会话

会话内输入 exit 或按 Ctrl-d 关闭当前会话。

快捷键

前缀键默认为 Ctrl-b,下表按键均为先按前缀再按对应键。

会话

快捷键作用
d分离会话
s列出会话
$重命名会话

窗口

快捷键作用
c新建窗口
n / p下一个 / 上一个窗口
,重命名窗口
w列出所有窗口

窗格

快捷键作用
%垂直分割
"水平分割
方向键切换窗格
x关闭当前窗格

滚动与复制模式

  1. Ctrl-b [ 进入复制模式
  2. 方向键逐行滚动,或 Page Up/Down 翻页
  3. g 输入行号跳转
  4. q 退出复制模式

配置文件

编辑 ~/.tmux.conf

# 前缀键改为 Ctrl-a
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
 
# 启用鼠标支持
set -g mouse on
 
# 快捷重载配置
bind r source-file ~/.tmux.conf \; display "Reloaded!"

重载配置:

tmux source-file ~/.tmux.conf

会话持久化

使用 tmux-resurrect 插件保存和恢复会话:

# 安装 TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

~/.tmux.conf 中添加:

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
run '~/.tmux/plugins/tpm/tpm'

重载配置后按 prefix + I 安装插件,prefix + Ctrl-s 保存会话,prefix + Ctrl-r 恢复会话。