當你在終端或控制檯上工作時,你可能想記錄下自己做了些什麼。這種記錄可以看成是儲存了終端痕跡的文件。假設你跟一些Linux管理員同時在系統上幹活。或者說你讓別人遠端到你的伺服器。你就會想記錄下終端發生過什麼。要實現它,你可以使用script命令。
script是啥
script是將終端會話製成列印稿的命令。對於想重現終端輸入輸出歷史的人來說,十分管用。而且,這些記錄還能被儲存或列印。
如何使用它
一般地,我們可以通過在終端上敲入script來啟動它。
1 2 3 |
pungki@dev-machine:~$ script Script started, file is typescript pungki@dev-machine:~$ |
還可以指定一個目標檔案來儲存列印稿的結果。
當你再次收到一條命令提示,就說明終端上出現的任何東西,都將被記錄下來。
不指定檔案的話,你會看到在當前目錄,有了一個叫“typescript”的檔案。
為什麼要用它
就像之前提到的,script的主要功能是記錄一切。以下是兩個展示其用途的示例場景。
與同事合作
當與同事協同工作時,我們可以使用script來記錄自己的活動。
假設我們將使用一個叫collaborate的列印稿檔案。像這樣的話就輸入:
接著,在幹了一下事情之後,假設你想將你個工作交接給另一個工程師,那就傳送那個檔案吧。當他想回顧你做的事,只需開啟那個檔案便可。
如果他想在那個檔案的基礎上追加記錄,可以使用-a選項。
記錄他人活動
你可以讓你的工程師或別的什麼人遠端登入到你的系統。為了確認他們做對了沒,你可以記錄下他們做了什麼。想要script在登入時就生效,我們可以將其加在shell profile。如果你在使用bash,講一下幾行放進profile去吧。
1 2 3 4 5 6 |
$ vi ~/.profile # run the script command to record everything # use -q for quite and -a option to append the script # /usr/bin/script -qa /usr/local/script/log_record_script |
然後儲存。下次他再登入的時候,script就會自動執行並將記錄追加在/usr/local/script/log_record_script
選項-q是安靜模式。使用者登入時完全不會察覺到script命令的執行。而選項-a是追加,不會覆蓋以往的記錄。
如果不用-q,使用者登入時就會因如下畫面而察覺script的存在。
停止記錄
敲擊ctrl+d或exit,可以停止記錄。你會發現寫入記錄是發生在停止之後的。
結論
script命令對於記錄終端歷史還是挺有用的。將記錄儲存在文字檔案,這樣可以很方便地用任何文字編輯器開啟。平時,我們可以使用man script或script -h來更深地挖掘它。