什么是 tmux

tmux 是一个终端复用器(terminal multiplexer)。它让我们可以使用单一环境就可以登录多个终端或窗口,每个终端或窗口都运行着独立的进程或程序。还可以将窗口划分为水平或垂直面板,也就是说在同一个屏幕上显示或运行多个程序。这些操作都不需要鼠标。

模块

  • Server 服务器: 启用 tmux 时默认
  • Session 会话: 一个服务器包含多个会话
  • Window 窗口: 一个会话包含多个窗口
  • Pane 面板: 一个窗口包含多个面板

命令

创建命令

$ tmux new -s zsh # 创建名为 zsh 会话
$ tmux new -s zsh -d # -d 为后台运行
$ tmux new -s zsh -n shell # -n 窗口命名为 shell

$ tmux ls # 查看当前存在的会话

$ tmux at # 连接会话
$ tmux at -t zsh # 连接指定会话

$ tmux kill-session -t basic # 结束指定会话

命令模式

new-windows -n zsh # 创建名为 zsh 的会话
new-windows -n zsh "top" # 并执行 top 命令
# 指定初始化进程时,进程关闭后,窗口也一起关闭

source-file ~/.tmux.conf # 重新载入配置文件

Tmux 快捷键

系统操作

快捷键说明
?列出所有快捷键
d脱离会话,返回到Shell界面
D选择要脱离的会话
r强制重绘未脱离的会话
s选择并切换会话
:进入命令行模式
[进入复制模式
~列出提示信息缓存
Ctrl+z挂起当前会话

窗口操作

快捷键说明
c创建新窗口
&关闭当前窗口
0-9切换至指定窗口
n切换至下一窗口
p切换至上一窗口
l在两个窗口间切换
w显示窗口列表
,重命名当前窗口
.修改当前窗口编号
f查找窗口或文本

面板操作

快捷键说明
上下分割面板
%左右分割面板
Space循环切换布局
x关闭当前面板
!将当前面板置于新窗口
q显示面板编号
o在面板之间移动焦点
t显示时间
{同前个面板交换位置
}同后个面板交换位置
Alt+o逆时针旋转当前窗口的面板
Ctrl+o顺时针旋转当前窗口的面板
方向键移动光标以选择面板
Ctrl+方向键调整当前面板大小1
Alt+方向键调整当前面板大小5

默认面板布局

  • even-horizontal: 从左到右水平排列面板
  • even-vertical: 从上到下垂直排序面板
  • main-horizontal: 顶部大面板,其余水平放在底部
  • main-vertical: 左侧大面板,其余垂直放在右侧
  • tiled: 平均显示所有面板

配置文件位置

  • 系统配置文件: /etc/tmux.conf
  • 用户配置文件: ~/.tmux.conf # 高优先级

参考