作为 Fedora Linux QA 团队的一员,我有时会执行一系列命令,并希望将这些命令广播给其他开发人员。 如果你曾经使用过像 终端复用器,比如 tmux 或 GNU Screen,你可能会认为这是一个相对容易的任务。 但并非所有希望观看我演示的人都通过笔记本电脑或台式机连接到我的终端会话。 有些人可能只是随意地通过手机浏览器打开它 —— 他们可以轻松地做到这一点,因为我使用了 tmate。
使用 tmate 共享 Linux 终端
观看他人操作 Linux 终端非常有教育意义。你可以学习新的命令、新的工作流程或新的调试和自动化方法。 但很难捕捉你所看到的内容,以便稍后自己尝试。 你可能会选择截取屏幕截图或录制共享终端会话的屏幕录像,以便稍后键入每个命令。 唯一的另一个选择是让演示命令的人使用像 Asciinema 或 script 和 scriptreplay 这样的工具来记录会话。
但是使用 tmate,用户可以通过只读模式或通过 SSH 共享终端。 SSH 和只读会话都可以通过终端或作为 HTML 网页访问。
当我在为 Fedora QA 团队招募新人时,我使用只读模式,因为我需要运行命令并显示输出,但是使用 tmate,人们可以通过从浏览器复制和粘贴到文本编辑器来做笔记。
Linux tmate 的实际应用
在 Linux 上,你可以使用你的包管理器来安装 tmate。 例如,在 Fedora 上
$ sudo dnf install tmate
在 Debian 和类似的发行版上
$ sudo apt install tmate
在 macOS 上,你可以使用 Homebrew 或 MacPorts 来安装它。 如果你需要其他 Linux 发行版的说明,请参考 安装 指南。

(Sumantro Mukherjee, CC BY-SA 4.0)
安装完成后,启动 tmate
$ tmate
当 tmate 启动时,会生成链接,以便通过 HTTP 和 SSH 访问你的终端会话。 每个协议都提供只读选项以及反向 SSH 会话。
这是一个 Web 会话的样子

(Sumantro Mukherjee, CC BY-SA 4.0)
Tmate 的 Web 控制台是 HTML5 的,因此,用户可以复制整个屏幕并将其粘贴到终端中以运行相同的命令。
保持会话活动
你可能想知道如果你不小心关闭了终端会发生什么。 你可能还想知道是否可以与不同的控制台应用程序共享你的终端。 毕竟,tmate 是一个复用器,因此它应该能够保持会话活动、分离和重新连接到会话,等等。
当然,这正是 tmate 可以做到的。 如果你曾经使用过 tmux,那么这可能非常熟悉。
$ tmate -F -n web new-session vi console
此命令在 Vi 中打开 new-session
,并且 -F
选项确保即使关闭会话也会重新生成。

(Sumantro Mukherjee, CC BY-SA 4.0)
社交复用
Tmate 让你拥有 tmux 或 GNU Screen 的自由,还可以与他人共享你的会话。 它是教授其他用户如何使用终端、演示新命令的功能或调试意外行为的宝贵工具。 它是开源的,所以快来试试吧!
2 条评论