有时候可能想要记录在终端的所有操作包括输出等,将来作为视频播放。系统管理员可能需要记录某些用户的操作。另外可能有时需要向人实时演示一些操作流程。 这些都可以通过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实时写到文件中
这样,其他用户就可以看到操作者的演示了。
Linux命令之script:http://www.linuxdiyf.com/linux/11916.html
Linux sed命令参数及用法详解-Linux利用script来处理文本文件:http://www.linuxdiyf.com/linux/3651.html
鸟哥的Linux私房菜Shell script课后练习第十二章:http://www.linuxdiyf.com/linux/6710.html