Tmux 101
Tmux的结构
+-----------+ +---------------+
| | | session |
| | +---------------+
| | +---------------+
| Server | | session |
| | +---------------+
| |
| | .........
+-----------+
Tmux 大致结构是一个服务端和多个会话,终端命令实际上是跑在服务端,通过会话访问,最直接的好处是,用户可以随意Detach和Attach一个会话,不用担心命令会因为网络中断而中断。
启动Tmux
tmux
立刻启动一个新的sessiontmux source-file XXXX.conf
载入tmux配置文件XXXX.conftmux a
连接到最近一次detach的sessiontmux list-sessions
列出所有正在运行的sessiontmux attach-session -t X
连接编号为X的session
Tmux 界面
Tmux 一个会话可以有多个窗口
,窗口激活时占用整个屏幕。
一个窗口可以有多个面板
,一般是水平或者竖直分割。
Tmux内指令
Tmux内部的所有指令都需要先按下绑定键
,然后按下功能键
。
比如说 Tmux默认的绑定键是Ctrl+b
,关闭当前面板的功能键是x
。
那么关闭当前面板的操作就是,先按下Ctrl+b
,松开手,然后按下x
。
配置文件
我在用的tmux配置文件,是目前来说最常用的配置文件,需要的话,可以在github上搜索 tony-tmux
如果在拷贝配置文件之前已经启动过Tmux了,需要用下面这个指令重新载入配置文件
tmux source-file ~/.tmux.conf
如果使用Tmux出现界面乱码,power-line条乱蹦的情况,需要在xshell的连接设置中把终端编码设置为Unicode(UTF-8之类的)
Tmux默认的绑定键
是Ctrl+b
,与Vim的快捷键有冲突。
习惯起见,同时为了兼容GNU Screen,常见的配置文件都把绑定键
改为Ctrl+a
我的配置文件中常用功能键
映射如下
+-------------------+-------------------------------------------+
| 1,2,3,4... | 切换到指定编号的窗口 |
+-------------------+-------------------------------------------+
| c | 创建新窗口 |
+-------------------+-------------------------------------------+
| x | 关闭当前面板(面板内命令行进程会被终结) |
+-------------------+-------------------------------------------+
| s | 水平分割当前窗口或者面板 |
+-------------------+-------------------------------------------+
| v | 竖直分割当前窗口或者面板 |
+-------------------+-------------------------------------------+
| h,j,k,l | 像Vim一样在多个面板间切换 |
+-------------------+-------------------------------------------+
| d |脱离当前会话,之后可以使用tmux a重新连接上 |
+-------------------+-------------------------------------------+