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.

  1. 个人理解就是tmux针对终端会话情况进行了现场保存,比如SSH连接了VPS,vi编辑某文件,直接关闭会话后,重新开启连接,会发现状态都丢失了,需要重新进入目标路径,重新打开编辑。有了tmux的话,就可以保存这个会话,重新访问目标机器后,加载之前保存的会话,一切恢复如初。
  2. tmux之所以可以做到会话保存,是因为目标服务器上在安装了tmux之后,会开启单独服务,从而进行现场保存。

安装

了解如上原理,也就明白了tmux并非一定安装在本地,而是安装在需要进行会话保存的机器上

常见操作系统环境下安装命令如下

1
2
3
4
5
# macOS
brew install tmux

# Centos
yum install tmux -y

iTerm2配置

安装了Tmux,紧接着就是本地终端App的设置了

  1. 全局tmux设置

如图为我当前的设置,基本保持默认设定。

  1. 单独profile配置启动命令

    针对需要开启tmux的机器,命令配置如下。

    1
    2
    # 连接目标机器,然后执行tmux会话加载,如果没有开启新会话
    ssh -p 22 -t root@123.160.122.79 "tmux -CC attach || tmux -CC"

如上设置后即可使用了。

写在最后

  1. 搜索资料会发现tmux配置很丰富,使用起来也可以很复杂,这无形中增加了心智负担,但其实不用担心。

  2. 使用iTerm2的情况下,分屏,会话开启等操作已经具备,iTerm2本身已经将tmux的很多功能做了映射,因此还是维持iTerm2的操作习惯即可,深入使用后,如果还有不足再查漏补缺吧。

相关文档