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時實時播放良好。