Linux的script命令——隐藏在终端的记录器
扫描二维码
随时随地手机看文章
当你在终端或控制台上工作时,你可能想记录下自己做了些什么。这种记录可以看成是保存了终端痕迹的文档。假设你跟一些Linux管理员同时在系统上干活。或者说你让别人远程到你的服务器。你就会想记录下终端发生过什么。要实现它,你可以使用script命令。
script是啥
script是将终端会话制成打印稿的命令。对于想重现终端输入输出历史的人来说,十分管用。而且,这些记录还能被保存或打印。
如何使用它
一般地,我们可以通过在终端上敲入script来启动它。
pungki@dev-machine:~$ script
Script started, file is typescript
pungki@dev-machine:~$
还可以指定一个目标文件来保存打印稿的结果。
当你再次收到一条命令提示,就说明终端上出现的任何东西,都将被记录下来。
不指定文件的话,你会看到在当前目录,有了一个叫“typescript”的文件。
为什么要用它
就像之前提到的,script的主要功能是记录一切。以下是两个展示其用途的示例场景。
与同事合作
当与同事协同工作时,我们可以使用script来记录自己的活动。
假设我们将使用一个叫collaborate的打印稿文件。像这样的话就输入:
接着,在干了一下事情之后,假设你想将你个工作交接给另一个工程师,那就发送那个文件吧。当他想回顾你做的事,只需打开那个文件便可。
如果他想在那个文件的基础上追加记录,可以使用-a选项。
记录他人活动
你可以让你的工程师或别的什么人远程登入到你的系统。为了确认他们做对了没,你可以记录下他们做了什么。想要script在登录时就生效,我们可以将其加在shell profile。如果你在使用bash,讲一下几行放进profile去吧。
$ 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来更深地挖掘它。