Linux 终端效率神器──终端复用器 Tmux
有这么一段时间,你也许突然需要访问外网需求,而科技软件是命令行的。而好巧不巧,你是用的是Linux(Ubuntu),科技软件居然不支持图形化界面!每当你想睁眼看世界,都需要手动打开一个终端窗口并运行科技软件,还关不掉它,这一定令你很苦恼。这时候,不妨用用本文即将介绍的软件──Tmux。
Tmux是一个终端复用器,这个名词一时难以说明,我们通过一些使用场景来介绍其功能。
一、让你的科技软件“藏起来”工作
就如上方的例子所说,笔者就深受其苦。当窗口多起来,切换窗口本就很令人苦恼,而不小心切换到这个用来上科技的终端,更是令人烦躁。
这时候,我们可以使用Tmux帮我们解决这个问题。
使用命令
tmux new -s tech_online
解释:new 新建, -s 中 s 表示 session(会话)
我们会进入如下界面。

其实我们已经创建了一个会话(Session),这个会话的名字叫做 tech_online 。什么是会话?会话可以理解为一项工作,比方说,这里我希望这个会话来做科技联网的工作,在这里我们调用相应的科技软件即可。接下来,我们就可以退出会话了。使用快捷键Ctrl+B, D,就退出了会话。而这个时候,Tmux的作用就体现出来了。我们的科技软件事实上仍然在运行,只是我们在终端上的焦点不在这个会话了。怎么查看会话呢?使用命令:
tmux ls
解释:ls 表示 list(列表)
就可以列出我们已经创建的会话。

如果我们想要某个会话,只需要使用命令
tmux a -t <会话名>
解释:a 表示 attach,-t 中 t 可以理解为 target
很好!这样,我们就用Tmux解决了文章开头提到的问题。
二、“一心二用”
1. 多视图让你不再频繁反复横跳
大家也许有时候会遇到这样一个问题,比方说在研究C++程序的命令行编译时,在不使用图形化工具的情况下,终端用起来其实不太方便。例如:你可能需要用Vim编辑源代码,而当要编译的时候,你又需要退出Vim调用编译命令,一来一回闲的十分繁琐。幸运的是,Tmux能为你减轻负担。
接着上一个例子,我们继续创建一个新的会话 cpp_dev。
tmux new -s cpp_dev
按往常一样,专心写好你的代码。

这时候你需要编译,但你当前是Vim在占用终端,怎么办?很简单,只需要再开一个终端就好了。使用快捷键Ctrl+B, Shift+5(等价于输入 %),神奇的事发生了。

右侧多出来了一个终端,这时候你只需要调用相关命令即可。

这是水平方向创建新视图,那如果我们想要垂直方向呢?使用Ctrl+B, Shift+'(等价于输入 " )即可。
也许有的读者会好奇,为什么自己想要调用命令时,输入却是在原先的Vim视图?那是因为此时你的输入焦点在Vim上(绿色表示的是焦点所在视图(统一竖线在上则表示左侧视图被选中,如图),就像窗口一样,你想要在bash上输入命令,你首先需要选中它。诶?那么有的读者就发现啊,用鼠标点击没反应。那是因为Tmux是一个命令行工具,鼠标的操作不是首要选择。因此我们还是使用快捷键操作──Ctrl+B, →(方向键 右)就可以将焦点移动到右侧视图。那么无论是水平还是竖直方向,你只需要根据当前焦点的位置使用方向键移动即可。(温馨提示,每一次按下Ctrl+B不是只能按一次方向键,手速快点可以按好几次)
(其实Tmux是支持鼠标操作的,具体设置以后有机会会继续补充!)
2. 视图大小调整,满足你的强迫症
有的读者可能觉得右边的命令行占用太大了,不需要那么宽,这时候就可以调整视图大小。使用快捷键Ctrl+B, Ctrl+方向键完成你的目标。

3. 多窗口,让你的工作更有条理
诶比方说,假如你写了一段代码,此时你又需要进行内存泄漏检测或者查看程序信息,但是你又觉得当前会话的窗口不适合放这些视图,怎么办呢?难道再新建一个会话么?大可不必,你只需要重新创建一个窗口Window即可。快捷键Ctrl+B, C可以完成这个操作。

底部栏就会显示出你新建的窗口,星号表示当前窗口。这时候你就可以快乐的继续你的任务了。

笔者写了这样一段简单的代码,显然是有内存泄露的。我们想检查一下具体泄露信息。就需要切换到新创建的窗口(事实上创建完窗口会自动跳转到新窗口,笔者忘记截图所以调回来了),那么如何做到呢?快捷键Ctrl+B, N将切换到下一个窗口(注意这个下一个的顺序是从左到右,如果是最后一个则会跳转到第一个)

可以看到我们检测发现确实有泄露,并且显示出了调用堆栈。现在我们只需要定位到相应位置修改代码即可。
那么这时候我们发现,窗口的名字其实是根据焦点所在视图中运行的程序名来定的,那能否自己命名呢?当然可以!
使用快捷键Ctrl+B, ,(逗号)可以做到。

4. 会话或者窗口太多?快捷键帮你解决
那有的读者可能想得更多,要是我的会话或者窗口很多,我难道要用命令行和快捷键一个一个切换么?Tmux也为你提供了解决方案!
快捷键Ctrl+B, W将会提供所有会话及其窗口供你选择,同时支持预览。

OK!那么以上就是对Tmux的初步介绍。因为牵扯到许多快捷键操作,读者也许会觉得麻烦,但是用多了就自然熟悉了!相信它会为你的开发或者日常使用带来便捷!

浙公网安备 33010602011771号