用 Asciinema 记录你的终端会话
创始人
2024-03-02 09:50:06
0

用这个开源的终端会话记录器 Asciinema 来展示终端会话。

支持电话是很重要的,而且最后往往是令人满意的,但明确的沟通行为对每个参与的人来说都是艰巨的。如果你曾经参加过支持电话,你可能会花好几分钟拼出了最短的命令,并详细解释了空格和回车的位置。虽然直接拿过来用户电脑的控制权往往更容易,但这并不是真正的教育的最佳方式。你可以尝试向用户发送一个屏幕记录,而他们可以复制命令并粘贴到自己的终端。

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  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 都是一个无价的、社交的、可利用的工具。


via: https://opensource.com/article/22/1/record-terminal-session-asciinema

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

国产手机集体涨价,全怪AI...
文 | 锌刻度,作者 | 孟会缘,编辑 | 李觐麟 拿着4000...
2025-03-09 22:42:00
推动“AI与连接”的创新融...
3月初,全球瞩目的MWC 2025(世界移动通信大会)在西班牙巴塞...
2025-03-07 21:22:05
中国联通AI全时空连接终端...
在当今的科技领域,AI技术正以日新月异的态势蓬勃发展,其影响力不断...
2025-03-07 11:22:11
用AI为零售终端“添色增彩...
近日,攀枝花市米易县普威镇一家卷烟零售店内,像过年一样热闹非凡。走...
2025-03-06 18:22:23
对话杨元庆:AI的终局是服...
21世纪经济报道记者孔海丽 巴塞罗那报道 3月的巴塞罗那,聚集了全...
2025-03-06 09:22:07
AI for All 驱动...
北京时间3月3日,中兴通讯以“AI for All”为主题,携全...
2025-03-04 19:29:01

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...