tmux是在终端中运行的程序,并且允许多个其它终端程序在其内部运行。tmux内部的每个程序都有自己的终端,由tmux管理,可以从运行tmux的单个终端访问-这称为多路复用,tmux是终端多路复用器(terminal multiplexer)。
下面是一个在Windows Terimal中运行WSL,tmux的运行截图:
tmux # 新建一个默认会话
tmux new -s newsession # 指定会话名称为newsession
tmux detach # 断开当前会话,会话在后台运行
tmux a # 默认进入第一个会话
tmux a -t demo # 进入到名称为demo的会话
tmux kill-session -t demo # 关闭demo会话
tmux kill-server # 关闭服务器,所有的会话都将关闭
tmux list-session # 查看所有会话
tmux ls # 查看所有会话,提倡使用简写形式
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | ? | 显示快捷键帮助文档 |
Ctrl+b | d | 断开当前会话 |
Ctrl+b | D | 选择要断开的会话 |
Ctrl+b | Ctrl+z | 挂起当前会话 |
Ctrl+b | r | 强制重载当前会话 |
Ctrl+b | s | 显示会话列表用于选择并切换 |
Ctrl+b | : | 进入命令行模式,此时可直接输入ls 等命令 |
Ctrl+b | [ | 进入复制模式,按q 退出 |
Ctrl+b | ] | 粘贴复制模式中复制的文本 |
Ctrl+b | ~ | 列出提示信息缓存 |
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | c | 新建窗口 |
Ctrl+b | & | 关闭当前窗口(关闭前需输入y or n 确认) |
Ctrl+b | 0~9 | 切换到指定窗口 |
Ctrl+b | p | 切换到上一窗口 |
Ctrl+b | n | 切换到下一窗口 |
Ctrl+b | w | 打开窗口列表,用于且切换窗口 |
Ctrl+b | , | 重命名当前窗口 |
Ctrl+b | . | 修改当前窗口编号(适用于窗口重新排序) |
Ctrl+b | f | 快速定位到窗口(输入关键字匹配窗口名称) |
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | " | 当前面板上下一分为二,下侧新建面板 |
Ctrl+b | % | 当前面板左右一分为二,右侧新建面板 |
Ctrl+b | x | 关闭当前面板(关闭前需输入y or n 确认) |
Ctrl+b | z | 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增) |
Ctrl+b | ! | 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) |
Ctrl+b | ; | 切换到最后一次使用的面板 |
Ctrl+b | q | 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 |
Ctrl+b | { | 向前置换当前面板 |
Ctrl+b | } | 向后置换当前面板 |
Ctrl+b | Ctrl+o | 顺时针旋转当前窗口中的所有面板 |
Ctrl+b | 方向键 | 移动光标切换面板 |
Ctrl+b | o | 选择下一面板 |
Ctrl+b | 空格键 | 在自带的面板布局中循环切换 |
Ctrl+b | Alt+方向键 | 以5个单元格为单位调整当前面板边缘 |
Ctrl+b | Ctrl+方向键 | 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖) |
Ctrl+b | t | 显示时钟 |
下面是一个例子,有3个窗口,其中一个窗口里面有两个面板。
如果要在tmux中实现鼠标选择面板、滚屏等操作,可以新建~/.tmux.conf
文件,
vim ~/.tmux.conf
文件中写入以下内容:
set -g mouse on # 开启鼠标支持
set -g mode-keys vi # 开启vi风格后,支持vi的C-d、C-u、hjkl等快捷键