当你在终端或者控制台工做时,你可能想要记录在终端中所作的一切。这些记录能够用来看成史料,保存终端所发生的一切。好比说,你和一些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来显示帮助页并查看更多详细用法。