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要直观的多,真的值得一试)。