几个有意思的命令:录制与回放终端会话--script、scriptreplay

   script和scriptreplay命令负责把终端会话记录到一个文件中,可以通过录制终端会话来制作命令行技巧视频教程。


script

-a  将会话内容追加至 file文件中,script默认会产生typescript文件。

-c command  运行一个命令而不是一个交互式的shell,这对于捕获标准输出不是tty的程序是非常简单的。

-e 返回子进程的exit code。

-f 每次写完后,都会刷新输出而不是留在缓存中。

-q  quite 模式。

-t [filename ] 输出时间信息和标准错误,如果后加文件则输出到文件,回放时要用到。



1、开始录制会话

script -t 2> time.log -a output.session      #开始后,会提示:cript started, file is output.session

...                                          #输入操作


exit                                         #结束录制,会提示:Script done, file is output.session


   上述的time.log负责存储时序信息,描述每一个指令何时运行;output.session用于存储命令信息输出。


2、回放录制内容

   借助time.log与output.session两个文件按照下面的方法回放命令执行过程:

scriptreplay time.log output.session  



3、多个用户间广播会话

script命令同样可以用于建立多个用户之间进行广播的视频会话。


(1)在一个Terminal1中输入如下命令:

mkfifo scriptfifo            #开始后会提示:Script started, file is script

script -f scriptfifo

(2)在Temrinal2中输入如下命令:

cat scriptfifo               #此时,在Teminal1中的所有操作都会显示在Terminal2中实时播放。

exit                         #结束后,会提示:Script done, file is scriptfifo。


   在实际操作中,发现多个Terminal时会出现延迟的现象,甚至不同步,还没找到原因。但只有两个Terminal时实时播放良好。


你可能感兴趣的:(script,mkfifo,scriptreplay)