Linux终端录屏与播放 script 命令
本文由Suzzz原创,发布于 http://www.cnblogs.com/Suzzz/p/4107700.html ,转载请保留此声明。
有时候可能想要记录在终端的所有操作包括输出等,将来作为视频播放。系统管理员可能需要记录某些用户的操作。另外可能有时需要向人实时演示一些操作流程。 这些都可以通过script来实现。
script简介
script命令用来将终端会话保存。用法如下
Usage: script [options] [file] Options: -a, --append append the output -c, --command <command> run command rather than interactive shell -r, --return return exit code of the child process -f, --flush run flush after each write --force use output file even when it is a link -q, --quiet be quiet -t, --timing[=<file>] output timing data to stderr (or to FILE) -V, --version output version information and exit -h, --help display this help and exit
常用的有
-a 指定输出附加到一个文件中,不会覆盖,这样可以一直使用同一个文件
-t 用来输出时间信息,回放的时候用到
-q 不显示script启动和exit的命令,这样用户可以完全察觉不到在录屏
-f 每次操作后都立即刷新缓存。 如果不设置这个选项,则不会实时写入文件。
用法示例
记录
提示script启动,并且记录到指定文件中。 如果这个文件已存在,希望追加记录,加上 -a 选项
使用Ctrl + D 后者 exit退出记录
如果想要同时输出时间文件
script -t timingfile -a scriptfile
回放
需要 scriptreplay 这个命令
scriptreply timingfile scriptfile
效果就和视频录制的差不多
自动记录用户活动
可以在用户的 .profile中添加上
/usr/bin/script -qa logfile
下次用户登陆,script就会自动保存到 logfile
-q 是为了不显示 “ Script started...."这样的提示文本,从而使用户完全察觉不到script的存在。
向多个用户广播自己的终端操作
操作这本身在终端中建立一个 fifo 文件(关于fifo和mkfifo,可以放狗搜一下),用于通信
$ mkfifo PATH/testfifo
其他多个用户查看这个文件
$ cat PATH/testfifo
操作者开始用script记录自己的操作,并实时保存到 testfifo 中
script -f PATH/testfifo
记得最开始讲的 -f 作用吧? 让script实时写到文件中
这样,其他用户就可以看到操作者的演示了。