什么是 tmux ?

示例

tmux 是个在CLI(命令行界面)应用程序,它可以同时跑多个CLI应用,其中的每个应用的终端都会受到 tmux 的管理,可以使用 tmux 访问正在运行的终端,这即为终端多路复用。

tmux 跟 screen(某xxs只会用这个挂py应用,甚至连nohup也不用) 一样可以 deattach 和 attach(人话:挂后台),但与 screen 不同的是 tmux 可以更方便直观的创建、查看、访问和退出终端。

不过 tmux 默认的快捷键可能对新手来说比较反人类。(和Blender的键位风格一样反人类,只符合作者的使用习惯)不过习惯了就好(可以改,如果不能改就没那么多人用了)。

从打入 tmux Enter开始

这是最开始看到的画面

~ $ tmux
映入眼帘的是等待你响应的sh,当然细心的家伙会第一时间注意到底下很显眼的类似“任务栏”(官方叫它:status line)的玩意。
这个“任务栏”看上去好像可以用鼠标点,事实可以,只是需要改配置文件(建议尽量用键盘,效率高)
左下角有 [0]是Session名,默认为0,再开就是1(递增的)当然可以自定义();“窗口”,熟悉Win的肯定不陌生,只是这窗口占全终端罢了。

*是当前“窗口”,而带 -是上次访问的“窗口”。
右下角有 用双引号括住的 主机名(默认是hostname)以及 日期与时间。

开始做些 tmux 特有的操作

以下均为默认键位。

Ctrl + B作为“起手技”(下文以“起手技”替代该组合键),目的就是避免与各种程序的键位冲突。(不过有一部分人认为“起手技”打起来感觉不行)

在键盘上打出“起手技”后,按?(这是 Shift+/)即可显示键位帮助(英文)

常用“连招”对应的操作
“起手技”+c创建新的“窗口”
“起手技”+ddeattach(挂后台),使用 tmux attach -t 以回到前台当然 tmux attach也可以回到最近deattach的session
“起手技”+[可以用方向键/PgUp/PgDn键控制光标浏览当前终端输出的内容,按 Ctrl + c 回到正常状态
“起手技”+%左右分屏
“起手技”+"上下分屏
“起手技”+方向键切换激活的“屏”
“起手技”+数字切换“窗口”
“起手技”+x不留后台地退出
“起手技”+q显示“屏”的编号

等等,更多“连招”请参阅官方文档。(其实是作者懒得打罢了

作者的实际使用体验

  • 其实 分屏 的机制打破了GUI(X11)的复制逻辑,故在i3wm下尽可能使用创建新的终端而不是使用tmux的分屏。
  • 一般tmux是用来ssh下进行多任务操作的(个人感觉总之比screen爽)

实际用法示例

项目挂后台看日志两不误

挂崽

要切到后台只需要“起手技”+d,直接退出ssh连接也不影响项目运行。

要回来就只需要 tmux attach就好。(这里省略了一些情况)

更新/安装软件时做一些别的事情

更新()

据说有一速通Arch Linux安装的家伙也是用tmux做这样的事情。

总之

个人感觉tmux的“连招”搓起来比screen的舒服,故

tmux = screen Pro Plus Max(bushi