使用 Asciinema 记录您的终端会话

使用开源终端会话记录器 Asciinema,眼见为实。
35 位读者喜欢这篇文章。
FreeDOS

Opensource.com

支持电话非常重要,最终往往令人满意,但清晰的沟通行为对每个人来说都可能是艰巨的。如果您曾经接听过支持电话,您可能花了几分钟时间拼写出即使是最短的命令,并详细解释空格和回车的位置。虽然直接控制用户的计算机通常更容易,但这并不是最佳的教育方式。您可以尝试发送给用户屏幕录像,但最好是他们可以从中复制命令并粘贴到自己的终端中的录像。

Asciinema 是一款开源终端会话记录器。与 scriptscriptreplay 命令类似,Asciinema 准确记录您的终端显示内容。它将您的“电影”录像保存到文本文件中,然后按需重播。您可以将您的电影上传到 Asciinema.org 并像在互联网上分享任何其他视频一样分享它们,您甚至可以将您的电影嵌入到网页中。

安装 Asciinema

在 Linux 上,您可以使用软件包管理器安装 Asciinema。

在 Fedora、CentOS、Mageia 或类似系统上

$ sudo dnf install asciinema

在 Debian、Linux Mint 或类似系统上

$ sudo apt install asciinema

在 macOS 上,您可以使用 Homebrew 安装

$ sudo brew install asciinema

在 BSD 和任何其他使用 Pkgsrc 平台的系统上

$ cd /usr/pkgsrc/misc/py-asciinema

$ sudo bmake install clean

用文本制作电影

要开始使用 Asciinema 录制,您可以使用 rec 子命令

$ asciinema rec mymovie.cast

asciinema: recording asciicast to mymovie.cast

asciinema: press <ctrl-d> or type "exit" when you're done

一些友好的输出会提醒您正在录制,并告诉您如何停止:按 Ctrl+D 或直接输入 exit

当 Asciinema 处于活动状态时,您在终端中所做的一切都会被记录下来。这包括输入、输出、错误、尴尬的停顿、错误或成功。如果您在录制期间在终端中看到它,它就会被剪辑进去。

当您完成演示终端如何工作后,按 Ctrl+D 或输入 exit 停止录制。

在本例中,生成的文件 mymovie.cast 是时间戳和操作的集合,作为播放机制的脚本(在电影剧本的意义上)。

{"version": 2, "width": 139, "height": 36, "timestamp": 1641457358, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}

[0.05351, "o", "\u001b]0;seth:~\u0007"]

[0.05393, "o", "\u001b[1;31m$ \u001b[00m"]

[1.380059, "o", "e"]

[1.443823, "o", "c"]

[1.514674, "o", "h"]

[1.595238, "o", "o"]

[1.789562, "o", " "]

[2.09658, "o", "\""]

[2.19683, "o", "h"]

[2.403994, "o", "e"]

[2.466784, "o", "l"]

[2.711183, "o", "lo"]

[3.120852, "o", "\""]

[3.427886, "o", "\r\nhello\r\n"]

[...]

如果您犯了错误,您可以通过删除重现错误的行来剪掉错误。如果您发现自己在录制过程中进行了大量编辑或拖延了长时间的停顿,您可以安装并使用 asciinema-edit 实用程序,该实用程序可以根据您定义的时间戳或通过消除空闲时间来修剪掉“素材”块。

播放 Asciinema 电影

您可以使用 play 子命令播放您的 Asciinema 电影

$ asciinema play mymovie.cast

这将接管您的终端会话,并使其成为最接近银幕的等价物(除了您通过 telnet 以 ASCII 观看星球大战的那次)。您的基于文本的电影开始播放——向您的用户演示如何完成一项复杂的任务。当然,播放的实际命令实际上并没有执行。这不是正在运行的 shell 脚本,因此即使您在电影中创建了一个文件 hello.txt,播放后也不会有新的 hello.txt。这只是为了展示。

然而,它不仅仅是一场表演。您可以暂停 Asciinema 电影,选择您在屏幕上看到的文本并将其粘贴到活动终端中以运行命令。Asciinema 是有用的文档。它向用户展示如何完成任务,并允许他们复制和粘贴以确保准确性。

上传您的 Asciinema 电影

还没有 Asciinema 电影达到轰动一时的地位,但您仍然可以将您的电影上传到 Asciinema.org 并与世界分享。

$ asciinema upload mymovie.cast

如果您习惯了 YouTube 的上传时间,您会惊喜地发现 Asciinema 电影的传输速度非常快。一个 .cast 文件通常只有几千字节,最多也只有几兆字节,因此上传几乎是瞬间完成的。您不需要帐户即可分享您的电影,但所有无人认领的电影都会在七天后被删除。要保留您的杰作,您可以在 Asciinema 上开设一个帐户,然后坐下来等待学院的电话。

Asciinema 作为文档

Asciinema 是演示即使是最基本的概念的好方法。因为它保留了从录像中复制和粘贴代码的能力,提供了按需暂停和播放的能力,并且在它所呈现的内容中完全准确,所以它不仅仅和屏幕录像一样好。它要好得多。无论您是使用它向朋友炫耀您的终端技能,还是使用它来教育同事和学生,Asciinema 都是一个宝贵的、社交的和易于访问的工具。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,经常同时进行。

2 条评论

这真的很有趣而且很有用!

几乎每个文档项目都涉及到某种 shell 命令。我有一些技术文档项目(Debian、Drupal、PHP...)需要这种用户培训。

感谢分享,Seth ?

很高兴您觉得这有用,Novid!我认为这是一个很有价值的工具,我喜欢它为文档带来的灵活性。并非每个人都觉得有必要将某事视为“即时重播”,但有些人确实如此。当文档能够满足所有不同类型的学习者时,它是最好的。

干杯!

回复 作者 novid

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.