Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。下面就Tmux的使用做一梳理:
1)Tmux功能:
2)Tmux安装
a)ubuntu版本下直接apt-get安装
sudo apt-get install tmux
b)centos7版本下直接yum安装
yum install -y tmux
Tmux官网:http://tmux.github.io/
3、Tmux配置
tmux 的配置文件位于 $HOME/.tmux.conf (以及一个全局的 /etc/tmux.conf),和大多数 dotfile 一样,把配置项写到这个文件中,启动 tmux的时候就会自动读取了。
tmux所有的操作前都需要加一个前缀。这个前缀是可以自己配置的。如果不配置的话,默认是 ctrl +b。配置的话:
- set -g prefix C-a //把prefix绑定为Ctrl+a
- unbind C-b //把Ctrl+b取消绑定
- set -g base-index 1 //window的索引,默认从0开始
- set -g pane-base-index 1 //panel的索引,默认从1开始
Warning 修改tmux.conf文件后不会立即生效, 你需要关闭所有tmux窗口或键入 PREFIX : 并输入 source-file ~/.tmux.conf
1、切换窗口,记录操作
例如我们有时候需要用到root权限,但是用root需要输密码,实在麻烦。这个时候,我们就可以用Tmux来创建一个root窗口。然后下次直接切换到该窗口即可。
2、当服务器端需要不间断的跑shell脚本的时候。正常情况下,我们在当前窗口跑shell脚本,当窗口关闭的时候,我们的脚本就自己停了。但是很多时候,我们的需求是脚本不能停。这个时候就需要开一个Tmux窗口跑我们的shell脚本。只要不删除迪奥这个窗口,脚本就不会停止。
3、在需要同时在服务器上操作的时候。利用xshell打开新窗口太慢,而Tmux工具恰好可以实现类似于window窗口的效果。我们只需要新开一个Tmux窗口,这样就满足需求了。
1、查看当前所有的tmux窗口
tmux ls
效果:
这里列出的就是当前所有的tmux窗口。
mysql,nginx等代表的是窗口的名称,这部分我们可以自己取名字的。
2、进入tmux并且创建新的window窗口
- //进入tmux
- tmux attch
- //创建一个新的窗口,-s后面跟的是窗口的名称。
- tmux new -s ljf
3、进入tmux中查看当前所有的窗口
- //进入tmux
- tmux attch\
- //查看tmux下的所有窗口。这部分是先按ctrl和b,然后再按s即可
- ctrl +b s
如图:
4、进入某个窗口,并且切换标签页。
1)进入窗口直接按enter即可
2)此时可以在底步看到有几个标签页。这里的window窗口相当于windows下的浏览器,新建窗口相当于新打开一个浏览器。每个标签页就相当于你此时浏览器上的页面。
如图:
*代表你当前在哪个标签页。
3)切换标签页
- //向后翻页
- ctrl +b +n
- //向后翻页
- ctrl+b+p
5、创建新的标签页,以及推出标签页
- //创建标签页
- ctrl +b +c
- //退出tmux
- ctrl +b +d
如果用ctrl +b +d退出的话,会直接退出tmux,不过我们的所有操作还会存在,不会受影响的。
5、查看当前窗口下的所有标签页,并且完全退出某个窗口,相当于删除窗口
- //列出当前标签页下的所有标签
- ctrl +b +w
- //注意,此处相当于杀掉这个窗口。此时在用tmux ls查看窗口就发现我们新建的窗口已经被删掉了。慎用
- exit
6、修改标签页的名称。以及删除window的另一种方法
- //进入一个window,按照该命令即可修改标签页的名字
- ctrl +b + ,
- //删除window,此时会有确认删除的窗口。点击确认之后,查看tmux ls会发现新建的窗口已经被删除了。
- ctrl +b +&
四、总结
总体来说,这个tmux工具对我们的开发来说,真的很方便。强烈推荐大家掌握基础的操作方法。我自己也是今天才开始正式学,所以也是从新操作一遍。
参考链接:Linux终端复用神器-Tmux使用梳理 - 散尽浮华 - 博客园
https://www.jianshu.com/p/ec9c372e33f5
http://www.xinxiblog.com:8080/1systems/linuxs/commands/tools/tmux.html?highlight=tmux
end