Linux下利用script命令录制并回放终端会话

来源:互联网 发布:手机陀螺仪水平仪软件 编辑:程序博客网 时间:2024/05/18 01:48

核心命令

script -t 2>[time.file] (-a output.file)
scriptreplay [time.file] [output.file]

使用说明

  1. script/scriptrelpay实现依赖于一个时间点文件time.file和一个输出文件output.file。
  2. 执行scriptreplay可以模拟之前录制的行为,但务必注意:回放并不能产生任何实际的改变
    (例如我在录制期执行了touch 1.cpp但是回放时并不能真的创建这个文件)
  3. 因此此命令一般用于演示,其最大的优点在于可复制两个文本文件,并在不同设备间回放该脚本。

关于参数的说明

  1. 若想实现完整的录制功能,就必须有一个time文件,文件名可以任意取但一定注意 -t后面的2>。这条语句是将stderr重定向输出到文件。缺少这段语句将失去模拟回放的功能。
  2. output.file存储了全部的输出信息,也是我们回放信息的来源。-a的意义是将输出append到文件。之所以这么做是因为在录制期间我们已经对命令行作了有效的输出,所以若要保留这些输出信息,必须把输出流复制一下,也就是append。
  3. 如果不添加-a output.file这段语句,则默认生成一个名为typescript的文件,可以使用这个默认文件作为output.file
  4. output.file中除了输出的文本信息外,还保存了光标移动的信息。
  5. 录制脚本后用exit推出
  6. 如果开始一次新的录制,应该创建两个新的记录文件而非使用原来的。因为脚本的append方式并不会将原来文件内容清空而是在末尾添加。

一个简单的例子

录制脚本

$ script -t 2>time.file -a output.file#开始录制了$ ls -al1.c 2.c 3.c#执行一个命令$exit#结束录制

回放脚本

$ scriptreplay time.file output.file#脚本将会自动回放
1 0