Tmux

Tmux
BarbecueTmux
Tmux概念
Tmux(终端多路复用器)是一个在终端会话中提供多窗口和面板管理的工具。它允许你在一个终端窗口中同时运行多个终端会话,以便更有效地管理和组织你的工作环境
Tmux 就是会话与窗口的”解绑”工具,将它们彻底分离:
- 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
- 它可以让新窗口”接入”已经存在的会话。
- 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
- 它还支持窗口任意的垂直和水平拆分。
Tmux的层次逻辑——树:
- tmux服务可以开启多个session(会话)
- 一个session(会话)可以开多个window(窗口)
- 一个window(窗口)可以分多个pane(窗格)
安装
Ubuntu 或 Debian
1
sudo apt-get install tmux
CentOS 或 Fedora
1
sudo yum install tmux
Mac
1
brew install tmux
基本使用
前缀键
Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是
ctrl+b,即先按下ctrl+b,快捷键才会生效。举例来说,帮助命令的快捷键是
ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下ctrl+b,松开后再按下?,就会显示帮助信息。按下ESC键或q键,就可以退出帮助。
tmux操作
1. 启动tmux
1 | tmux |
[0] 0:zsh* :中括号中0表示当前session-name,紧跟着的0代表window的序号,第一个window显示为0,环境为zsh,*意味着当前处于活跃状态的窗口。
"MacBookAir.local" :主机名
15:22 27- 2-24:当前时间
2. 退出tmux
tmux 窗口中按下 ctrl+d,或者按下 ctrl+b ,然后再按下 &,或者显式输入exit命令,退出 Tmux 窗口。
1 | exit |
3. 翻屏模式
在 tmux 窗口中按下 ctrl+b ,然后再按下 [进入翻屏模式,然后按q退出翻屏模式。
或者在 tmux 窗口中按下 ctrl+b ,然后摁下PgUp也可进入翻屏模式。(mac为fn+方向键)
会话管理
1. 新建会话
1 | tmux new -s <session-name> |
此时可以看到原本 [0] 里面的 0 变成了设置的 session-name(表示会话名称,可以为字母或数字)
2. 会话分离
在 Tmux 窗口中,按下在tmux窗口中按下ctrl+b,然后再按下d或者输入tmux detach命令,就会将当前会话与窗口分离。
1 | tmux detach |
上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。
3. 接入会话
tmux attach命令用于重新接入某个已存在的会话。
1 | # 使用会话编号(简写) |
4. 杀死会话
tmux kill-session命令用于杀死某个会话。
1 | # 使用会话编号 |
5. 切换会话
1 | # 使用会话编号 |
6. 重命名会话
按下在tmux窗口中按下ctrl+b,然后再按下$,或者tmux rename-session命令用于重命名会话。
1 | tmux rename-session -t <old-name> <new-name> |
7. 列出所有会话
按下在tmux窗口中按下ctrl+b,然后再按下s,,然后用方向键进行操作,或者tmux ls命令用于列出所有会话。
1 | tmux ls |
窗口管理
1. 新建窗口
按下在tmux窗口中按下ctrl+b,然后再按下c,或者tmux new-window命令用来创建新窗口。创建一个新窗口,状态栏会显示多个窗口的信息。
1 | tmux new-window |
2. 切换窗口
1 | # 切换到指定编号的窗口 |
切换到上一个窗口:在 tmux 窗口中按下 ctrl+b ,然后再按下 p
切换到下一个窗口:在 tmux 窗口中按下 ctrl+b ,然后再按下 n
从列表中选择窗口:在 tmux 窗口中按下 ctrl+b ,然后再按下 w
切换到指定编号窗口:在 tmux 窗口中按下 ctrl+b ,然后再按下 <number>
3. 重命名窗口
在tmux窗口中按下ctrl+b,然后再按下,,或者tmux rename-window命令用于为当前窗口起名(或重命名)。
1 | tmux rename-window <new-name> |
4. 在一个会话中的多个窗口中作出选择
在tmux窗口中按下ctrl+b,然后再按下w。
窗格操作
1. 划分窗格
划分上下两个窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 ",或者
1 | tmux split-window |
划分左右两个窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 % ,或者
1 | tmux split-window -h |
2. 移动光标
方向键移动光标:在 tmux 窗口中按下 ctrl+b ,然后再按下 方向键或按下 q,此时再摁下窗格的数字即可切换对应窗格。
移动光标到下一个窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 o
移动光标到上一次窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 ;
使用tmux select-pane命令用来移动光标到对应的窗格。
1 | # 光标切换到上方窗格 |
3. 交换窗格位置
当前窗格与上一个窗格交换位置:在 tmux 窗口中按下 ctrl+b ,然后再按下 {,
当前窗格与下一个窗格交换位置:在 tmux 窗口中按下 ctrl+b ,然后再按下 },
使用tmux swap-pane命令用来交换窗格位置。
1 | # 当前窗格上移 |
所有窗格向前移动一个位置,第一个窗格变成最后一个窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 ctrl+o。
所有窗格向后移动一个位置,最后一个窗格变成第一个窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 alt+o。
4. 关闭窗格
关闭当前窗格:在 tmux 窗口中按下 ctrl+b ,然后再按下 x
5. 其他快捷键
将当前窗格拆分为一个独立窗口:在 tmux 窗口中按下 ctrl+b ,然后再按下 !
当前窗格全屏显示:在 tmux 窗口中按下 ctrl+b ,然后再按下 z(再使用一次会变回原来大小)
调整当前窗格大小:在 tmux 窗口中按下 ctrl+b 不放,,然后再按 方向键调整当前窗格的大小
显示窗格编号:在 tmux 窗口中按下 ctrl+b ,然后再按下 q,此时再摁下窗格的数字即可切换对应窗格。
其他命令
1. 列出所有快捷键,及其对应的 Tmux 命令
1 | tmux list-keys |
2. 列出所有 Tmux 命令及其参数
1 | tmux list-commands |
3. 列出当前所有 Tmux 会话的信息
1 | tmux info |
4. 重新加载当前的 Tmux 配置
1 | tmux source-file ~/.tmux.conf |


