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