¶简介
当你需要长期稳定在Linux(本文以Ubuntu为例)上运行SSH命令时,为了避免SSH连接中断造成的程序中断,需要使用tmux或者screen,笔者目前认为tmux更好用,所以本文将详细介绍tmux的使用方法。
tmux有三个概念:会话、窗口和面板,一个会话中可以存在多个窗口,一个窗口中可以存在多个面板,这种多级显示的方式可以让我们井然有序地在多种任务之间切换。
¶一、安装tmux
1 | sudo apt-get install -y tmux |
¶二、基本用法(会话操作)
当你只需要执行一个任务时,掌握好会话操作即可。
¶1、新建会话
在Shell中执行:
1 | tmux new -s chason |
其中chason可以改为自己需要的名字;新建会话后,即可在会话中执行自己的任务。
¶2、脱离会话
脱离会话快捷键:Ctrl+b d
,意思是:先按Ctrl+b
,松手后再按d
,脱离会话后就会返回之前的Shell界面。
执行tmux detach
也可以脱离会话,但个人觉得用快捷键更方便快捷。
¶3、显示会话
在Shell中执行:
1 | tmux ls |
将显示当前存在的会话。
¶4、恢复会话
在Shell中执行:
1 | tmux attach |
或者简写:
1 | tmux a |
执行后就会进入上一次脱离的会话;另外,也可以直接恢复指定的会话:
1 | tmux a -t chason |
¶4、切换会话
在进入tmux会话之后,按快捷键Ctrl+b s
即可直接显示当前存在会话,用上下方向键选择,回车即可切换到当前选择的会话。
¶5、关闭会话
关闭会话有几种方法:
- 在会话中,如果只有一个窗口、一个面板,直接输入
exit
并回车,即可关闭当前会话。 - 在会话中,如果有不止一个窗口或面板,按快捷键
Ctrl+b :
后,输入命令kill-session
,即可关闭当前会话。 - 在会话外的bash中,输入
tmux kill-session -t chason
,即可在tmux外关闭指定会话。
¶三、进阶用法(窗口、面板操作)
¶1、窗口操作
在基本用法中,新建一个会话默认只有一个窗口,实际上,在一个会话中可以创建多个窗口,从而实现更好的层级管理。
¶新建窗口
快捷键Ctrl+b c
会在当前会话中新建一个窗口。
在下面绿色任务栏中可见两个bash,后面带*的是当前窗口,当前在窗口1(数字从0开始)。
¶切换窗口
Ctrl+b n
切换下一个窗口,Ctrl+b p
切换上一个窗口,头尾窗口之间会循环切换,切换窗口的时候*会随之移动指示当前在哪个窗口。
¶关闭窗口
在窗口中输入exit
并回车即可关闭当前窗口,或使用快捷键Ctrl+b &
,按下后会提示是否关闭窗口,输入y即可关闭当前窗口。
¶2、面板操作
默认一个窗口只有一个面板,当需要同时查看多个程序的内容时,可以把当前窗口分割成多个面板。
¶新建面板
Ctrl+b "
将当前窗口平分为上下两块面板,Ctrl+b %
将当前窗口平分为左右两块面板。
面板分割最大的好处就是可以同时查看不同命令的结果,比如左边调试代码,右边实时显示内存、CPU情况等。
读者可以按照自己的需求随意分割,设计自己喜欢的面板样式。
¶切换面板
Ctrl+b 方向键
即可移动光标选择不同面板。
¶关闭面板
在面板中输入exit
并回车即可关闭当前面板,或者使用快捷键Ctrl+b x
,按下后会提示是否关闭面板,输入y即可关闭当前面板。
更多操作方法请参考如下常用快捷键
¶四、高阶用法(常用快捷键)
¶会话操作
Ctrl+b $
修改会话名字
Ctrl+b d
脱离当前会话,返回Shell界面,输入tmux a
能够重新进入之前的会话
Ctrl+b s
选择并切换会话,在创建了多个会话时使用
Ctrl+b [
进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
Ctrl+b ?
列出所有快捷键,按q返回
¶窗口操作
Ctrl+b c
在会话中新建窗口
Ctrl+b n
切换下一个窗口
Ctrl+b p
切换上一个窗口
Ctrl+b l
在前后两个窗口间互相切换
Ctrl+b 数字键
切换至指定窗口
Ctrl+b w
通过窗口列表切换窗口
Ctrl+b ,
修改窗口名字
Ctrl+b .
修改当前窗口编号;相当于窗口重新排序
Ctrl+b &
关闭当前窗口
Ctrl+b f
在所有窗口中查找指定文本
¶面板操作
Ctrl+b "
将当前窗口平分为上下两块面板
Ctrl+b %
将当前窗口平分为左右两块面板
Ctrl+b x
关闭当前面板
Ctrl+b !
将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
Ctrl+b q
显示面板编号
Ctrl+b o
在当前窗口中选择下一面板
Ctrl+b 方向键
移动光标以选择面板
Ctrl+b {
向前置换当前面板
Ctrl+b }
向后置换当前面板
Ctrl+b Alt+o
逆时针旋转当前窗口的面板
Ctrl+b Ctrl+o
顺时针旋转当前窗口的面板
Ctrl+b Space
在预置的面板布局中循环切换,依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled