iTerm2结合tmux使用
近期在使用一个开源工具时发现有个叫tmux的工具。查询发现Tmux还挺流行,repo star有20K+,同时我常用的iTerm2也集成有tmux。基于此,有必要了解下tmux且明确使用场景了。
由于目前使用尚浅,有错请指出
概念
先上概念,了解其作用。
tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.
- 个人理解就是tmux针对终端会话情况进行了现场保存,比如SSH连接了VPS,vi编辑某文件,直接关闭会话后,重新开启连接,会发现状态都丢失了,需要重新进入目标路径,重新打开编辑。有了tmux的话,就可以保存这个会话,重新访问目标机器后,加载之前保存的会话,一切恢复如初。
- tmux之所以可以做到会话保存,是因为目标服务器上在安装了tmux之后,会开启单独服务,从而进行现场保存。
安装
了解如上原理,也就明白了tmux并非一定安装在本地,而是安装在需要进行会话保存的机器上
。
常见操作系统环境下安装命令如下
1 | # macOS |
iTerm2配置
安装了Tmux,紧接着就是本地终端App的设置了
- 全局tmux设置
如图为我当前的设置,基本保持默认设定。
单独profile配置启动命令
针对需要开启tmux的机器,命令配置如下。
1
2# 连接目标机器,然后执行tmux会话加载,如果没有开启新会话
ssh -p 22 -t root@123.160.122.79 "tmux -CC attach || tmux -CC"
如上设置后即可使用了。
写在最后
搜索资料会发现tmux配置很丰富,使用起来也可以很复杂,这无形中增加了心智负担,但其实不用担心。
使用iTerm2的情况下,分屏,会话开启等操作已经具备,iTerm2本身已经将tmux的很多功能做了映射,因此还是维持iTerm2的操作习惯即可,深入使用后,如果还有不足再查漏补缺吧。