
工具篇
本系列专门用于记录一些软件或者小工具的使用,工欲善其事必先利其器,拥有称心如意的工具,可以大大提高我们的工作效率。
一、TMUX
之所以选择 TMUX 作为第一个工具介绍,是因为从第一次接触它,便真的彻底喜欢上了它,我认识它的时间并不长,是从过年疫情在家期间才初次接触到它。为什么喜欢它呢?它又好在哪里?我相信作为初学者都和我之前一样,肯定遇到了以下几种情况:
- 打开终端,当前终端正在处理某一件事,而我需要再开一个窗口去做另一件事情,然后就
Ctrl+N
打开了很多个终端窗口。一个窗口感觉不用了,就关了,可几秒钟后感觉又需要使用,然而之前的窗口关闭了,之前的状态没了 - 工作中往往需要 ssh 远程登录一些服务器,而如果窗口长时间保持静默则会自动关闭连接,通常拷贝一个大文件,拷贝到一半,连接断了,很烦人
Tmux 就可以完美的解决上面的问题。Tmux是一款优秀的终端复用软件,它有很多特性,比较重要的有:
- 分屏:它通过面板、窗口、会话三级组织结构管理你的终端窗口,相当于你之前通过
Ctrl+N
打开的很多窗口现在可以以一种类似于目录树的结构完美的集成到一个终端窗口下。 - 后台执行:所执行的所有命令均已后台执行的方式进行操作,类似于 nohup 的功能,即使命令执行到一半,只要 tmux 服务不杀死,哪怕此时你把终端窗口关闭掉,当再次打开终端,进入到 tmux 会话中,一切如旧,之前执行的命令仍在持续进行。
- 会话共享:可以将自己的窗口远程分享给别人,适用于教学。
1、安装
# Mac 中
# 先安装 Homebrew,有则跳过
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装 tmux
brew install tmux
2、概念
Tmux 通过会话、窗口、面板三级结构进行组组的。
- 会话:会话相当于一级目录,类似于一个项目,不同会话下的窗口可以做不同的事情,例如,我可以创建两个会话,一个会话下的窗口专门用于处理本机电脑下的命令;另一个会话下的窗口专门用于远程服务器下的相关操作。
- 窗口:窗口相当于二级目录,一个会话下可以创建很多窗口,窗口可以理解为页面的意思,例如你用 vim 编辑器开发项目,一个窗口可以单独打开一个文件,专门用于编辑该文件。
- 面板:面板相当于三级目录,一个窗口下又可以分屏创建很多面板,例如分屏后,一个面板用于编辑代码,另一个面板用于测试等
上面下方的状态栏部分,黄色部分指示当前的会话名称是 “local”, 后面的 “1 Shell 2 project … 5 tmux” 表明当前会话下共有 5 个窗口,蓝色背底的 “tmux” 表明,你看到的当前整个窗口内容是位于 “tmux” 这个窗口下。上面的窗口一分为二,可以看到中间有一条蓝色的竖线,整个屏幕一分为二,这就是面板的概念,表明 “tmux” 窗口下共有两个面板,如果不分屏的话,则整个窗口就一个面板。
3、具体操作
注:下文中的快捷键,大部分都有前置 lead 键,默认为 ctrl-b,但是在 Mac 下这两个键离得远,不方便,下面的配置中增加了另一个兼容的快捷键为 ctrl-a,还是不得劲,而键盘上的大写锁定