Asciinema 一个轻量级的终端录屏工具 - 用法详解(2/7)

asciinemarecplaycatuploadauth5个子命令组成。

rec子命令


启动录屏,记录终端会话。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
asciinema rec 
  [-h] 
  [--stdin] 
  [--append] 
  [--raw] 
  [--overwrite] 
  [-c COMMAND] 
  [-e ENV] 
  [-t TITLE] 
  [-i IDLE_TIME_LIMIT] 
  [-y] 
  [-q] 
  [filename]

只要输入asciinema rec命令就开始录屏,其他选项都是可选的。
如果不提供[filename],录屏的asciicast文件将会存储到临时文件。否则将存储到[filename]所指定的path。

选项

--stdin

开启标准输入(键盘)录制。

1
asciinema rec --stdin

默认情况下,asciinema只会记录标准输出。而对标准输入是不记录的。比如:键盘输入。
但是,看起来这有一些不容易理解。如果只记录标准输出的话,那么,在终端键入ls -lha这样的命令。 对于命令本身是应该不被记录下来的,也就是说,通过asciinema play是看不到ls -lha才对。

那为什么还可以被正确记录下来呢?
实际上如果不加--stdin这个选项,asciinema记录的是键入ls -lha命令的显示输出
这对于那些需要键入密码(比如:mysql-client)的命令,而又不希望和别人共享时被其他人看到密码的时候很有用。

--append

追加到现有录制。

1
asciinema rec --append old.cast

将录屏追加到既存的old.cast文件中。前提是old.cast必须存在,如果不存在会显示一个不友好的Python提示。
同时也会检查文件格式,如果不是asciicast格式会有如下提示:

asciinema: can only append to asciicast v2 format recordings

--overwrite

覆盖录制(如果已经存在)。

1
asciinema rec --overwrite old.cast

覆盖现有的old.cast文件,如果不存在就创建一个。

-c, --command=<command>

指定要记录的命令,默认为$SHELL

1
asciinema rec  -c /bin/bash

实在没搞明白这个-c应该怎么用比较好。总之,可以在不同的SHELL间切换zshbash。默认是$SHELL
可能还有些更高级的用法,需要挖掘一下。

-e, --env=<var-names>

要捕获的环境变量列表,默认为SHELL,TERM

1
asciinema rec --env=SHELL,TERM,LANG,LC_ALL

这个选项用来捕获环境变量的。默认的环境变量是SHELL,TERM。如果需要捕获更多环境变量。将环境变量添加到--env选项即可。

-t, --title=<title>

指定asciicast的标题。

1
asciinema rec --title="hello world"

asciicast指定一个标题,作为上传到仓库显示的标题。

-i, --idle-time-limit=<sec>

将录制的终端不活动状态限制为最大<sec>秒数。

1
asciinema rec --idle-time-limit=3

这个选项非常有用。 官方文档的解释是:

Limit recorded terminal inactivity to max <sec> seconds

那么,这是什么意思呢。
比如:在输入df -h命令之后,大概等待30秒又输入了free -m。可能这段时间你在思考屏幕的输出内容。
那么,使用这个选项使两条命令之间的显示间隔限制在3秒。也就是说两条命令的显示间隔最大不超过3秒
这样,当使用asciinema play回放的时候,观看者就不用在等待30秒了。

-y, --yes

对所有提示回答“是”(例如,上传确认)。

1
asciinema rec -y

当输入exit退出录制时,如果没指定该选项。
系统会有一个提示: asciinema: press to upload to asciinema.org, to save locally
之后,由用户自行选择上传到仓库,或者保存到本地。
当指定这个选项时,不会有任何提示,直接将asciicast文件上传到仓库。
这个选项晋档不指定<filename>有效。

-q, --quiet

保持安静,禁止所有通知/警告(也包含-y选项的效果)。

1
asciinema rec -q

指定这个选项后,既没有录制前的提示:

asciinema: press or type “exit” when you’re done

也没有退出后的提示:

asciinema: press to upload to asciinema.org, to save locally

当退出录制后,直接将asciicast文件上传到仓库。

play子命令


播放录制的asciicast文件,提供以下快捷键盘:

  • Space - 暂停播放
  • . - 按帧暂停播放
  • Ctrl+C - 退出播放
1
2
3
4
5
asciinema play 
  [-h] 
  [-i IDLE_TIME_LIMIT] 
  [-s SPEED] 
  filename

选项

-i, --idle-time-limit=<sec>

将录制的终端不活动状态限制为最大<sec>秒数

1
asciinema play --idle-time-limit=3 /path/to/asciicast.cast

asciinema rec --idle-time-limit=3的效果一样。如果asciinema rec没有指定这个参数,可以在这里指定。

-s, --speed=<factor>

播放速率(可以是分数)

1
asciinema play --speed=2 /path/to/asciicast.cast

就和视频播放器一样,按照--speed=2的2倍速率快播。--speed=0.5倍的速率慢播。

<filename>

<filename>可以是本地文件http/ipfs URL标准输入

从本地文件播放
1
asciinema play /path/to/asciicast.cast

从HTTP(S) URL播放:

1
2
asciinema play https://asciinema.org/a/335480
asciinema play http://example.com/demo.cast

需要页面包含:

1
<link rel="alternate" type="application/x-asciicast" href="/my/ascii.cast">
从标准输入播放
1
2
cat /path/to/asciicast.cast | asciinema play -
ssh user@host cat asciicast.cast | asciinema play -
从IPFS播放
1
asciinema play dweb:/ipfs/QmNe7FsYaHc9SaDEAEXbaagAzNw9cH7YbzN4xV7jV1MCzK/ascii.cast

cat子命令


直接显示播放结果。

1
2
3
asciinema cat 
  [-h] 
  filename

asciinema play一样。<filename>可以是本地文件http/ipfs URL标准输入

从本地文件播放:

1
asciinema cat /path/to/asciicast.cast

从HTTP(S) URL播放:

1
2
asciinema cat https://asciinema.org/a/335480
asciinema cat http://example.com/demo.cast

需要页面包含:

1
<link rel="alternate" type="application/x-asciicast" href="/my/ascii.cast">

从标准输入播放:

1
2
cat /path/to/asciicast.cast | asciinema cat -
ssh user@host cat asciicast.cast | asciinema cat -

从IPFS播放:

1
asciinema cat dweb:/ipfs/QmNe7FsYaHc9SaDEAEXbaagAzNw9cH7YbzN4xV7jV1MCzK/ascii.cast

upload子命令


将录制的asciicast文件上传到Asciinema的官网仓库。

1
2
3
asciinema upload 
  [-h] 
  filename

上传到Asciinema的官网仓库

1
asciinema upload /path/to/asciicast.cast

auth子命令


将安装ID和Asciinema仓库帐户相关联,并管理上传的asciicast文件。
当首次安装Asciinema时,会在$HOME/.config/asciinema/install-id生成一个UUID v4文件。

输入asciinema auth命令会得到如下输出:

1
2
3
4
5
6
➜ asciinema auth
Open the following URL in a web browser to link your install ID with your asciinema.org user account:

https://asciinema.org/connect/9ca63656-f239-4f33-9784-768698ea1319

This will associate all recordings uploaded from this machine (past and future ones) to your account, and allow you to manage them (change title/theme, delete) at asciinema.org.

通过访问上述的链接与仓库帐户相关联。之后,就可以将本地的asciicast文件通过asciinema upload命令进行上传。

可以在仓库帐户的管理页面对install-id进行撤销处理。
已经撤销的install-id不能再次和仓库账号相关联。如果想再次与仓库账号相关联,需要按照以下步骤进行:

  1. 删除$HOME/.config/asciinema/install-id文件。
  2. 执行asciinema auth命令重新与仓库账号关联。