script是一个非常炫酷的命令,它可以将终端的所有操作和输入输出录制下来,并通过 scriptreplay播放,是命令行版的"屏幕录像专家"。非常实用,例如你想教很多人配置一个软件,可以在自己配置时,将过程录下来,然后发给别人自学,灰常的优雅!

一.安装

多数操作系统都默认安装了,Redhat/Fedora/CentOS:

yum install util-linux-ng

Debian/ubuntu:

apt-get install bsdutils

二、录制和播放

2.1 录制

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

将scritp输出到管道:

script -f /tmp/fifo

其它用户执行:

cat /tmp/fifo

就能实时查看到操作和输入输出了

参考文章:
http://www.linuxnix.com/record-terminalshell-session-linux/
http://www.cnblogs.com/Suzzz/p/4107700.html