Linux下記錄工具(history,screen,script)使用
通常人們在工作中只記錄一些時間和開銷但是並沒有記錄一些過程,那麼本文將介紹一些Linux下的記錄方法:
一、History/env
最常用的記錄方法,我們可以將 history 保存到一個文件中,那麼我們通過這個文件大概可以知道你是如何操作的。
history > session_cmd_record 保存你當前的history信息
或者也可以使用 HISTFILE=filenmae bash(bash 專用)來打開一個bash並在一個特殊的文件中保存記錄:
HISTFILE=session2.log bash 將log放到另一個文件裡
設置HISTIGNORE來忽視一些無關緊要的命令也是很有用的,比如說忽視一些類似於pwd和date之類的不重要的命令。
export HISTIGNORE=”ls:pwd:who” 忽視一些不相干的命令
export HISTSIZE=10000 設置history文件的最大大小
在項目中你還需要記錄一些環境信息並保存起來,可能經常有人不保存環境信息,那麼三年後再來看這個程序你就再也不無法得知當初的配置情況,從而不能正常的運行了。這樣的情況下,如果是用戶讓你改一點代碼,那麼可能你需要花了三個星期來找到為什麼系統無法正常運行了。所以記錄環境信息還是很重要的。
比如說我們可以這麼記錄:
env > env_record 記錄你的環境設置,注意:env並不會記錄所有的環境變量
二、screen
Screen 可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。在《使用 screen 共享會話》一文中我介紹了使用screen實現共享會話,可以用在多台電腦共享一個終端窗口,用在教學上再好不過。在《linux 技巧:使用 screen 管理你的遠程會話》一文中還有一些screen關於窗口管理的高端應用。
但是本文是一個關於介紹記錄的,提到 screen 是因為它還有記錄功能,你可以使用Ctrl+H來打開或者關閉記錄,或者使用Ctrl+h 來記錄截圖。
你也可以使用“ screen -L ”記錄整個會話,使用screen -L 命令後,終端會進入一個記錄狀態,所有在這個狀態下做的工作都將被保存,直到你使用 exit 或者 Ctrl+D 退出,記錄會默認保存在screenlog.0內(screenlog.0如果已經記錄,往後的命名為screenlog.1 ……)。 screen -L 對於保存錯誤信息或者簡單的記錄如何build程序比較有效。
注意:如果在“ screen -L ”下不要修改screenlog.0文件,當然,諸位這麼聰明也不會干這樣的事。
三、Recording with script
如果你沒安裝script,那麼你需要" apt-get install bsdutils "來先安裝script。
下面我們開始演示:
long@zhouyl:~$ cd /tmp/
long@zhouyl:/tmp$ script -t 2> time data
現在開始記錄了,我們可以試驗一下,比如說我們使用date,time,或者使用vim打開一個文件,做些修改然後保存退出。
現在我們使用exit退出script,系統會提示:
Script done, file is data
現在我們會得到兩個文件,一個data和一個time,現在我們可以使用:
long@zhouyl:/tmp$ scriptreplay -t time data
來重放之前使用script的會話,這是一個保存工作的很好的方法,我們使用scriptreplay回放之前的保存記錄會很清晰的看到之前是如何操作的(比history要直觀的多,真的值得一試)。