Linux核心应用命令速查
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.17 script:记录Linux会话信息

作用:script可用来记录执行过的所有命令及命令的输出。

用法:script [选项]文件

主要选项如下。

● -a:用于将记录追加到文件,若不用则覆盖。

● -t:可以记录每次敲击键盘的CPU时间。比如做批处理等,通过查看filename2找到两次间隔时间很大的,就是作业执行的准确时间。

说明:许多系统管理员都知道保留一个包含各种任务、配置改变等活动日志的重要性。对一些组织而言,保留“我做了这件事”或“约翰做了那件事”的简单日志就已足够;但另一些组织则需要记录所有改变。对终端输出进行复制粘贴可能非常乏味,我们使用一个叫做script的鲜为人知的程序来解决这个问题,它是大多数Linux产品util-linux软件包的一部分。script记录会话的一切内容,包括你输入的内容和你看到的内容,它甚至记录颜色。因此,如果你的命令提示符或程序输出中包含颜色,script将记录它。

应用实例如下。

(1)使用script

简单执行以下命令:

        $ script

默认情况下,它向当前目录的typescript文件中写入内容。然后,输入的一切内容都被记录到那个文件中。要往另一个文件中记录日志,只需使用script/path/to/file命令。完成记录后,输入exit退出。这个命令将关闭script会话并保存文件。可以使用cat或其他任何程序来检查日志文件。使用script的缺点在于,它记录所有特殊的字符。因此你输入的文件中将充满控制字符和ANSI转义序列。你可以在script中使用一个非常简单的Shell来解决这个问题:

        $ SHELL=/bin/sh PS1="$ " script

使用script时,不要使用交互式程序或处理窗口的程序,如vior top。它们会破坏会话的输出结果。另外,日志文件会记录你使用的任何命令行程序和你完成一项任务所采取的步骤。如果你需要在脚本中编辑一个文件,可以考虑退出script会话,然后用script -a(它在旧会话后添加新会话)对文件进行编辑后再重新启动会话。

(2)script -a filename1-t 2>filename2

退出命令为exit。

若要查看记录结果,用cat filename即可,filename1和filename2可以是同一个文件。