當你在終端或者控制檯工做時,你可能想要記錄在終端中所作的一切。這些記錄能夠用來看成史料,保存終端所發生的一切。好比說,你和一些Linux管理員們同時管理着相同的機器,或者你讓某人遠程登錄到了你的服務器上,你可能記錄想要終端裏發生的一切。要實現這個目標,你能夠使用script命令。typescript
scirpt就是一個命令,能夠製做一份記錄輸出到終端的記錄。對於那些想要真實記錄終端會話的人來講,這頗有用。該記錄能夠保存並在之後再打印出來。shell
默認狀況下,咱們能夠經過在終端中輸入script來啓動scirpt命令。bash
pungki@dev-machine:~$ scriptScript started, file is typescriptpungki@dev-machine:~$
你也能夠指定目標文件名來記錄打印結果。服務器
pungki@dev-machine:~$ script myfile
Define script fileapp
當你再次見到命令提示符,這意味着終端將記錄打印到終端的任何東西。編輯器
你會看到當前目錄,有個名爲myscript的文件。(LCTT譯註,此處原文有誤。這裏指定了記錄文件名爲myfile,而不是默認的 typescript。)ide
由於在以前已經提到過,script命令的主要功能是記錄全部的東西。下面給出了兩個使用該命令的場景。ui
當和同事一塊兒工做時,咱們能夠經過script來記錄你的活動。spa
好比,咱們會使用名爲collaborate的打印文件,來完成打印:日誌
$ script collaborate
Create collaborate file
而後,在完成一些任務後,假如你須要把你幹的活發給另一個工程師,那就把那文件發給他。因此當另一個工程師須要複查所作的事情,他只要用文本編輯器打開這個文件就好了。
若是他想要更新該文件(以增長他的工做部分),能夠使用-a選項。
$ script -a collaborate
Append the file
你可能讓你的工程師或者某我的遠程訪問你的系統,要確保你的工程師正在幹正確的事,你能夠記錄下他在你係統上的所做所爲。要讓script命令在登陸時自動運行,咱們能夠把它添加進shell環境配置文件中。若是你正在使用bash shell,把這一行加進你的bash環境配置文件中。
$ 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
Add script to bash profile
而後保存。下次他登陸進你的系統時,script命令就會自動運行,並把日誌記錄進/usr/local/script/logrecordscript。
Script without notification
-q選項可讓scirpt命令以靜默模式運行,登陸進來的用戶不會知道script命令已經運行了。而-a選項將會讓記錄附加到文件中,而不會擦除先前的記錄。
若是不使用-q選項,那麼當用戶登陸進來時,他會收到像下圖中這樣的通知。
Script with notification
要退出記錄活動,咱們能夠在終端中按下Ctrl+D,或者輸入exit。在退出script前,你會發現記錄文件的大小爲0 Kb,而在退出以後,文件大小會發生改變。
Script命令在你須要記錄或者存檔終端活動時可能頗有用,記錄文件會存儲爲文本文件,因此能夠很方便地用文本編輯器打開。跟日常同樣,咱們均可以經過輸入man script或者scirpt -h來顯示幫助頁並查看更多詳細用法。