tmux教程
简介
当你需要长期稳定在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