script-“录屏”的linux命令

script-“录屏”的linux命令

Scroll Down

    从前,有一天我在执行demo脚本的时候误输了“script” + 回车,然后就提示:

# root@ishells ~# script
Script started, file is typescript
image.png

    我就去搜了搜资料,卧槽,这是一个什么神仙命令!

一、什么是script

    script 命令可以记录 用户 在当前终端的所有的操作,即将已经输出到屏幕的内容信息保存到指定的文本文件中。
    script 命令可以用来记录或者存档终端活动,记录文件会被存储为文本文件
    script 命令录制终端的会话之后,可以通过文本编辑器查看内容,也可以使用 scriptreplay 将其录制的结果 动态 播放。

二、script操作

    一般Linux系统在安装的时候就会安装script命令和scriptreplay命令。那我们首先来看看script的用法:
    # script --help
image.png

    2.1 script options
       ✿ -a 选项 :在现有输出录制的文件的内容上追加新的内容
       ✿ -c 选项 :后面可以加上需要执行的命令,而不是交互式 shell 上执行的命令
       ✿ -r 选项 :子进程中返回退出代码
       ✿ -f 选项 : 如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS: 可以用于教学, 两个命令行接 - f 可以实时演示
       ✿ -q 选项 :可以使 script 命令以静默模式运行
       ✿ -t 选项 :指明输出录制的时间数据。-t选项用于将时序数据导入stderr
       ✿ -V 选项 :输出 script 的版本信息,然后退出
       ✿ -h 选项 :输出 script 的 help 信息,然后退出

    2.2 script举例详解
       如果你只是在终端输入了script,并没有加上[file]这一项,记录终端的行为会被默认保存到当前工作目录的typescript文件中.
    # script
image.png
       且只有当你输入exit或按下ctrl+d时,录屏才会被写入文件(也就是说如果没有退出,就不会写入录屏数据到文件),如下图所示:
image.png

       指定文件(文件名自定义)
        #script demo.his
image.png

       录制文件的内容
image.png

       -a 选项
      向已有录制文件追加“新录制”的内容
image.png

       -q选项,静默方式,无输出
image.png

       -t选项,-t选项用于将时序数据导入stderr。2>用于stderr重定向到demo.time(不了解文件描述符0、1、2的同学可以去了解一下)
    # script -t 2>demo.time -a demo.his
image.png

      那-t选项产生的这个文件有什么用呢?

      当你想通过录制文件demo.his动态展示“录制”的内容时,就需要用到-t产生的这个demo.time文件!如下

    # scriptreplay demo.time demo.his

    输入以上命令,就会动态演示!注意:时序文件要放在前面!而且!动态播放的内容只会是:使用了-t选项之后的内容,哪怕录制文件中已有数据!
image.png

image.png

       -c 选项,指定一个要执行的命令
    # script -a demo.his -c "pwd"
image.png

       -f, - -flush
    每次操作后都立即刷新缓存。如果不设置这个选项,则不会实时写入文件

三、scriptreplay

    像回放script所录视频一样动态播放终端进行过的操作

    3.1常用选项
       -t 选项, - -timing file
    后跟包含记录时序的文件

       -s 选项, --typescript file
    包含脚本终端输出的文件

       -d 选项,--divisor number
    加速播放速度倍数(可以是小数:放慢)
    # script -d 5 demo.time demo.his

       -V 选项,- -version

       -h 选项,- -help

四、参考来源

    https://www.cnblogs.com/jiaxiaozia/p/12158641.html
    https://www.cnblogs.com/happy-king/p/9454527.html
    https://www.cnblogs.com/cheyunhua/p/11136161.html
    https://blog.csdn.net/ouyang_peng/article/details/78818492