如何记录我们在终端中所做的一切?
如何录制在终端执行的操作?
script命令创建我们在终端机中所做的所有事情的打字稿。
是否安装应用程序,创建目录/文件,删除文件夹都没有关系。
一切都将被记录,包括命令和相应的输出。
在Linux中使用脚本命令记录我们在终端中执行的所有操作
该脚本命令是基于RPM的系统上util-linux软件包的一部分,而在基于DEB的系统上是bsdutils软件包的一部分,并且已预先安装在大多数现代Linux操作系统上。
因此,让我们不必理会安装。
让我们继续前进,看看如何实时使用它。
运行以下命令以开始终端会话记录。
$script -a my_terminal_activities
其中,-a标志用于将输出添加到文件或者打字稿,并保留先前的内容。
上面的命令记录我们在终端中执行的所有操作,并将输出添加到名为“ my_terminal_activities”的文件中,并将其保存在当前工作目录中。
输出示例为:
Script started, file is my_terminal_activities
现在,在终端中运行一些随机的Linux命令。
$mkdir theitroad
$cd theitroad/
$touch hello_world.txt
$cd ..
$uname -r
运行所有命令后,使用以下命令结束“脚本”命令的会话:
$exit
键入exit之后,我们将获得以下输出。
exit Script done, file is my_terminal_activities
如我们所见,Terminal活动已存储在名为“ my_terminal_activities”的文件中,并将其保存在当前工作目录中。
我们还可以将终端机活动保存在文件中的不同位置,如下所示。
$script -a /home/theitroad/documents/myscripts.txt
所有命令都将存储在/home/theitroad/documents/myscripts.txt文件中。
查看记录的终端活动
要查看终端活动,只需在任何文本编辑器中打开此文件,或者简单地使用“ cat”命令将其显示即可。
$cat my_terminal_activities
输出示例:
Script started on 2019-10-22 12:07:37+0530 Hyman@theitroad:~$mkdir theitroad Hyman@theitroad:~$cd theitroad/ Hyman@theitroad:~/theitroad$touch hello_world.txt Hyman@theitroad:~/theitroad$cd .. Hyman@theitroad:~$uname -r 5.0.0-31-generic Hyman@theitroad:~$exit exit Script done on 2019-10-22 12:08:10+0530
如我们在上面的输出中看到的,script命令记录了我所有的Terminal活动,包括script命令的开始和结束时间。
太好了,不是吗?
使用脚本命令的原因是它不仅记录命令,而且还记录命令的输出。
简而言之,脚本命令将记录我们在终端上执行的所有操作。
播放录制的终端会话
有时,我们可能想像动画GIF一样重播终端会话,而不仅仅是查看它。
如果是这样,我们可以使用Scriptreplay命令轻松地做到这一点。
记录单个命令
也可以使用-c标志来记录单个命令的输出,如下所示。
$script -c "lsb_release -a" -a my_terminal_activities
输出示例:
Script started, file is my_terminal_activities No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic Script done, file is my_terminal_activities
要查看记录的命令的输出,只需运行:
$cat my_terminal_activities
对于向学生展示特定命令的用法演示,或者向同事或者支持团队共享命令的输出,这非常有用。
记录带有时间戳的终端会话
正如我们的读者Alastair Montgomery先生在下面的注释部分中提到的那样,我们可以设置一个别名,该别名将为记录的会话添加时间戳。
为脚本命令创建一个别名,如下所示。
$alias rec=’script -aq ~/term.log-$(date “+%Y%m%d-%H-%M”)’
现在,只需输入以下命令即可开始记录终端。
$rec
现在,所有终端活动将记录在带有时间戳的文本文件中,例如term.log-20191022-12-16.
在安静模式下记录终端会话
如我们所见,当我们启动脚本命令来记录终端会话时,在完成记录后,它会显示一条欢迎消息“脚本已开始,文件是my_terminal_activities”,并显示“脚本已完成,文件是my_terminal_activities”。
如果我们不想查看这些消息,则可以使用如下所示的-q标志在安静模式下运行脚本命令。
$script -a -q my_terminal_activities
有关更多详细信息,请参见手册页。
$man script