Linux的script命令——隱藏在終端的記錄器

unblock發表於2014-06-16

當你在終端或控制檯上工作時,你可能想記錄下自己做了些什麼。這種記錄可以看成是儲存了終端痕跡的文件。假設你跟一些Linux管理員同時在系統上幹活。或者說你讓別人遠端到你的伺服器。你就會想記錄下終端發生過什麼。要實現它,你可以使用script命令。

script是啥

script是將終端會話製成列印稿的命令。對於想重現終端輸入輸出歷史的人來說,十分管用。而且,這些記錄還能被儲存或列印。

如何使用它

一般地,我們可以通過在終端上敲入script來啟動它。

還可以指定一個目標檔案來儲存列印稿的結果。

start_script

當你再次收到一條命令提示,就說明終端上出現的任何東西,都將被記錄下來。

不指定檔案的話,你會看到在當前目錄,有了一個叫“typescript”的檔案。

為什麼要用它

就像之前提到的,script的主要功能是記錄一切。以下是兩個展示其用途的示例場景。

與同事合作

當與同事協同工作時,我們可以使用script來記錄自己的活動。

假設我們將使用一個叫collaborate的列印稿檔案。像這樣的話就輸入:

collaborate

接著,在幹了一下事情之後,假設你想將你個工作交接給另一個工程師,那就傳送那個檔案吧。當他想回顧你做的事,只需開啟那個檔案便可。

如果他想在那個檔案的基礎上追加記錄,可以使用-a選項。

collaborate_append

記錄他人活動

你可以讓你的工程師或別的什麼人遠端登入到你的系統。為了確認他們做對了沒,你可以記錄下他們做了什麼。想要script在登入時就生效,我們可以將其加在shell profile。如果你在使用bash,講一下幾行放進profile去吧。

然後儲存。下次他再登入的時候,script就會自動執行並將記錄追加在/usr/local/script/log_record_script

remote_script_quite

選項-q是安靜模式。使用者登入時完全不會察覺到script命令的執行。而選項-a是追加,不會覆蓋以往的記錄。

如果不用-q,使用者登入時就會因如下畫面而察覺script的存在。

remote_script

停止記錄

敲擊ctrl+d或exit,可以停止記錄。你會發現寫入記錄是發生在停止之後的。

結論

script命令對於記錄終端歷史還是挺有用的。將記錄儲存在文字檔案,這樣可以很方便地用任何文字編輯器開啟。平時,我們可以使用man script或script -h來更深地挖掘它。

相關文章