tmux简介
tmux是一个终端复用软件,特点在于通过一个终端远程登陆主机之后,不需要开启多个终端,而且可以分离终端,这样当终端因为网络问题断开时,可以重新连接之前的终端,避免进程因为网络问题断开。
tmux安装和使用
- 在ubuntu下执行
sudo apt-get install tmux
即可完成安装,centos使用yum install tmux
即可。 - tmux使用命令行控制,主要命令可以分为四类,会话管理、系统操作、窗口操作和面板操作,tmux的命令前缀符是
Ctrl+B
,所有窗口中的命令都需要先使用前缀符激活控制台,本文后续将其简写为C-b。 - 使用tmux时,首先输入
tmux
命令打开tmux窗口,这个窗口既可以像普通终端一样使用,也支持tmux命令。
tmux会话管理
会话管理命令大多数是在终端中使用,一些命令在tmux会话中使用的话会报错。
tmux new
新建tmux会话,new可以省略,可以使用tmux new -s s1
创建名为s1的会话,如果在一个会话中尝试创建新的会话,会报错sessions should be nested with care, unset $TMUX to force。tmux ls
显示会话列表,该命令会显示在所有终端中使用tmux开启的会话,所以在需要使用多个会话时,建议都创建为指定名称的会话,这个命令可以在tmux窗口使用。tmux a
连接(attach)上一个会话,也可以使用tmux a -t s1
连接会话s1,如果在一个会话中尝试连接其他会话,报错同1。tmux kill-session
关闭上次打开的会话,可以使用tmux kill-session -t s1
关闭会话s1,也可以使用tmux kill-server
关闭所有会话。
tmux系统操作
C-b ?
,查看所有快捷键,这个命令可以查看tmux设定的所有快捷键及其功能。C-b d
,脱离当前会话,这个命令会detach当前会话返回原始终端。可以使用C-b D
选择要脱离的会话,使用Esc退出选择。C-b s
,选择会话并切换(select and switch)会话。
tmux窗口操作
C-b c
,创建(create)新窗口,注意,不是新的会话,可以使用C-b w
查看窗口列表(windows)。C-b &
,关闭当前窗口。C-b 数字
,切换到指定的窗口。C-b p
,C-b n
,切换到上一个窗口(pre)\下一个窗口(next)。
tmux面板操作
相对于窗口操作,面板操作主要是把窗口分割或者合并,如果需要查看进程的执行状态,比如gdb调试一个进程,同时vim查看代码,可以将窗口分割为两部分,这样显示更加直观。
C-b "
,将面板分为上下两块,C-b %
,将面板分为左右两块(从这两个符号的对称结构来看。。。意思似乎是相反的)。C-b x
,关掉当前面板,也可以使用exit
命令。C-b !
,新建一个窗口并且仅包含当前面板。C-b Ctrl+方向键
,长按Ctrl并利用方向键调整面板大小。C-b 方向键
,将光标按照方向键移动到不同的面板。- tmux窗口中,不能使用鼠标滚轮查看之前的终端输出,如果要查看上面的内容,可以用
C-b Page-up键
,这时候光标就会出现,然后就可以使用滚轮、方向键以及PageUp/PageDown,Home/End等文本控制建。