如何在Linux终端中录像

Linux系统自带的终端录制工具,可以记录终端中输入的命令和命令的输出。

准备工作

录制过程需要script,播放则需要scriptreplay,大多数Linux发行版中应该已经默认安装了。可以用如下命令验证是否已经安装:

1
2
script -V
scriptreplay -V

开始录制

可以执行如下命令:

1
script -t 2>test.timefile -a test.txt

该命令的意思是开始录制命令,将时序信息记录在test.timefile中,以及将输出信息记录在test.txt文件中。

命令执行之后会出现这样一行显示:

1
Script started, file is test.txt

此后你在该终端中的所有指令及其输出都会被记录下来。

常用参数选项如下:

  • -t:指定输出录制的时间
  • -a:指定录制存储文件,并以追加方式在文件后面添加新内容
  • -c:直接执行命令,而非交互式的shell
  • -q:让script命令以静默方式运行

更多参数可以使用man script命令查看。

开始录制之后可以先输出一个hello world测试一下:

1
$ echo hello, world!

录制完成之后输入exit或使用快捷键Ctrl+D结束录制。

播放回放

在终端输入如下命令可以播放刚才操作的回放:

1
scriptreplay test.timefile test.txt

其他常用参数如下:

  • -t:指定时序文件
  • -s:指定script的终端输出文件
  • -d:指定播放倍速

更多参数同样可以输入man scriptreplay查看。

动图演示

全过程的动图演示如下:

总结

这个工具的原理和很多游戏中的游戏录像是类似的,一个时序文件负责记录每个命令和输出发生的时间,另外一个输出文件记录所有输出。回放时只要按照时间线依次读取输出文件中的内容即可。

当自己遇到问题时这一命令可以记录自己的操作全过程,寻求帮助时只要提供记录文件别人就可以在终端里看到你的所有操作和输出。