Linux下用命令行实现录像(Recording and playback of terminal sessions)和广播教学功能

script和scriptreplay在绝大多数GNU/Linux发行版中都是可用的,script用于将屏幕会话记录到一个文件中,scriptreplay用于将记录的屏幕会话进行回放,下面咱们来看具体是怎么样实现的:session

咱们能够这样开始来记录屏幕会话:ide

$ script -t 2> timing.log -a output.sessionspa

$ type commands;       #此时就像咱们平时同样,该输入什么输入什么,就当什么也没有发生。命令行

 .....视频

 .....ip

 exit                  #可能会输入N多命令,你以为只须要记录到这里了,那就输入exit来结束它。terminal

说明:上面有两个配置文件(timing.log、output.session)做为参数传递给了script命令,其中timing.log文件用来存储每一个命令运行的时间信息,output.session文件用来存储命令输出(实际上也就是屏幕输出)。-t 用于将时间数据dump to stderr,所以咱们用2>将stderr重定向到timing.log,timing.log和output.session固然是能够自定义的。it

在同一路径下,咱们能够利用这两个文件来回放屏幕会话:io

$ scriptreplay timing.log output.sessionclass

 ....

 ....          #此处就是须要输出的内容了。

很简单吧,另外咱们只须要将这两个文件共享给别人,其它人就能够看这个“视频”了,固然不足之处是没有声音,可是有个至关大的好处,文件会至关小,适合在互联网上传输。

 

接下咱们看怎么在命令行下实现实时广播,这种方法特适合教学,并且绝对的流畅。

首先打开两个terminals,terminal1和terminal2。

一、在terminal1上输入以下命令:

   $ mkfifo scriptfifo        #文件名能够自定义

二、在terminal2上输入以下命令:

   $ cat scriptfifo           #固然要找对路径

三、回到terminal1,而后输入以下命令:

   $ script -f scriptfifo

   $ type commands ;

   $  ......

   $  ......                   #可能会输入N多命令,当你不须要广播时,输入exit而后回车。

这样,若是你的学生打开的是terminal2,他/她就能够实时地看到你(老师)是怎么样操做的了。