解决终端录制问题

背景

经常有一些命令行的操作希望保留操作流程,但没什么思路,也没有过多去思考这件事。

最近,命令行的操作突然增多了,这件事的重要性就提升了,记录下解决的方法。

基本思考

之前看到过两种终端的记录方式,一种是 视频版的,一种是 文字版的,都有其应用场景,因此,我需要跑通这两种方式的流程。

调研

  1. https://asciinema.org/docs/installation
  2. https://github.com/faressoft/terminalizer (能导出成 gif)
  3. https://www.jianshu.com/p/1ef50996f0e7 (导出为 svg)
  4. https://www.jianshu.com/p/f57259399b01 (linux系统自带的script命令)
  5. https://carbon.now.sh/ (代码生成图片)
  6. https://www.jianshu.com/p/5ffb598923f0 (一些命令行,包含生成 svg 的那个)

实践

安装 asciinema

1
2
3
yum install asciinema

# 参考 https://asciinema.org/docs/installation

重命名为 recordterm

1
ln -s /usr/bin/asciinema /usr/local/bin/recordterm

命令帮助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@long ~]# recordterm -h
usage: recordterm [-h] [--version] {rec,play,upload,auth} ...

Record and share your terminal sessions, the right way.

positional arguments:
{rec,play,upload,auth}
rec Record terminal session
play Replay terminal session
upload Upload locally saved terminal session to asciinema.org
auth Manage recordings on asciinema.org account

optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit

example usage:
Record terminal and upload it to asciinema.org:
asciinema rec
Record terminal to local file:
asciinema rec demo.json
Record terminal and upload it to asciinema.org, specifying title:
asciinema rec -t "My git tutorial"
Record terminal to local file, "trimming" longer pauses to max 2.5 sec:
asciinema rec -w 2.5 demo.json
Replay terminal recording from local file:
asciinema play demo.json
Replay terminal recording hosted on asciinema.org:
asciinema play https://asciinema.org/a/difqlgx86ym6emrmd8u62yqu8

For help on a specific command run:
asciinema <command> -h

一些认识

  • 这个工具是通过 劫持终端 的方式实现的

后续

这个工具不错,对于用类似于视频的方式很不错,可以用起来了。
但也有几个要解决的问题:

  • 解决一键生成文档的需求
  • 解决一键生成 gif 的需求
  • 和 blog 结合的能力 (hexo、ob)

后记

实际使用时,还是 terminalizer 这个好用些,对于录制的东西,常用的场景还是作为 gif 图放到文档里。

1
2
3
4
5
6
7
npm install -g terminalizer

terminalizer record demo

terminalizer play demo

terminalizer render demo

Happiness is found in doing, not merely possessing.
Napoleon Hill