script是一个非常炫酷的命令,它可以将终端的所有操作和输入输出录制下来,并通过scriptreplay播放,是命令行版的“录像专家”。非常实用,例如你想教很多人配置一个软件,可以在自己配置时,将过程录下来,然后发给别人自学,
一、安装
多数操作系统都默认安装了,Redhat/Fedora/CentOS:
yum -y install util-linux-ng
Debian/ubuntu:
apt-get install bsdutils
二、录制和播放
录制
script -t -a 2> /tmp/time.txt /tmp/record.txt
为了不影响操作,要使用错误重定向,在录制过程中,使用Ctrl+d或者exit结束录制
简单说一下命令的参数:
-t 是把时间数据输出到标准错误(standard error),所以要用2>/tmp/time.txt把数据重定向到文件中一些情况下不需要重放,只要记录操作和输入输出,就可以不指定这个参数
-a 追加内容到文件,不会覆盖之前的记录
-q 安静模式,不会提示用script运行
-f在每次写入后清屏,在配合管道使用时很有用
-c 这些非交互式的运行命令或脚本 在一些程序或脚本在后台运行时很有用
2.2 播放
scriptreplay /tmp/time.txt /tmp/record.txt
2.3 记录用户操作
记录某个用户,在用户的~/.profile文件中加入:
/usr/bin/script -qa /tmp/user_record
记录所有用户的操作,需将上诉内容加载/etc/profile文件中。记录用户操作输出会比较多,回放非常耗时,所以通常不记录时间
2.4 实时广播操作
广播自己的操作给服务器上其它用户看,需要先创建一个管道:
mkfifo /tmp/fifo
将script输出到管道:
script -f /tmp/fifo
其它用户执行:
cat /tmp/fifo
就能实时查看到操作和输入输出了