Tmux
基本操作
1 2 3 4 |
|
命令列表
默认情况下,tmux的前导命令开关是Ctrl+b
,按了Ctrl+b
后再按下面的命令,即执行相应操作:
会话类
键位 | 操作描述 |
---|---|
? | 显示所有快捷键,按q退出 |
d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 |
D | 选择要脱离的会话;在同时开启了多个会话时使用 |
s | 选择并切换会话;在同时开启了多个会话时使用 |
: | 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 |
[ | 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 |
窗口类
键位 | 操作描述 |
---|---|
c | 创建新窗口 |
& | 关闭当前窗口 |
数字键 | 切换至指定窗口 |
p | 切换至上一窗口 |
n | 切换至下一窗口 |
l | 在前后两个窗口间互相切换 |
w | 通过窗口列表切换窗口 |
, | 重命名当前窗口;这样便于识别 |
. | 修改当前窗口编号;相当于窗口重新排序 |
! | 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 |
面板类
键位 | 操作描述 |
---|---|
” | 将当前面板平分为上下两块 |
% | 将当前面板平分为左右两块 |
x | 关闭当前面板 |
o | 在当前窗口中选择下一面板 |
q | 显示面板编号 |
其他
如果不想使用默认tmux server,或者同一用户想起多个tmux实例,可以使用-S
参数指定不同的unix socket:
1
|
|
在tmux里使用zsh有时会导致窗口名称会不断变化,这需要修改下~/.zshrc
文件:
1
|
|
可编程
tmux最强大的地方还在于他的可编程性,用tmux list-commands
可以看到tmux所有支持的命令。以我自己常执行的一个脚本为例,我开机后常常需要启动一系列服务便于开发, 但当我不开发时开电脑又不需要启动,所以放到开机自启动脚本里是不合适的,所以这里用tmux来批量起最合适了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
这个脚本启动一个名为MAC
的tmux session,并新建了两个窗口,在第一个窗口里开了4个面板,分别启动了nginx, redis, mongo, firefox。其中,开启窗口/面板时同时执行命令,该窗口/面板会在命令执行结束后自动关闭,所以第一个窗口最后实际只有3个面板;第二个窗口启动并切换到我正则开发的工程。
具体命令的使用可以参照该示例和man手册理解。
enjoy tmux!