如何记录您在终端中所做的一切

我们已经发布了一份指南,解释了如何 将命令保存在终端本身并按需使用. 对于不想记住冗长而复杂的 Linux 命令的人来说,它非常有用。 今天,在本指南中,我们将了解如何使用终端记录您在终端中所做的一切 脚本 命令。

你可能已经运行了一个命令,或者创建了一个目录,或者在终端中安装了一个应用程序。 脚本命令只是保存您在终端中所做的任何事情。 然后,如果您想知道几小时或几天前做了什么,您可以查看它们。

我知道我知道,我们可以使用向上/向下箭头键或 历史 命令查看以前运行的命令。 但是,您无法查看这些命令的输出。 但是,脚本命令记录并显示完整的终端会话活动。

script 命令为您在终端中所做的一切创建一个打字稿。 是否安装应用程序、创建目录/文件、删除文件夹都没有关系。 一切都会被记录下来,包括命令和相应的输出。

如果需要交互式会话的硬拷贝记录作为分配的证明,脚本命令将很有帮助。 无论您是学生还是导师,您都可以复制您在终端中所做的一切以及所有输出。

在 Linux 中使用脚本命令记录您在终端中所做的一切

脚本命令是 实用程序-linux 在基于 RPM 的系统和 bsdutils 基于 DEB 的系统上的软件包,它预装在大多数现代 Linux 操作系统上。 所以,让我们不要为安装而烦恼。

让我们继续看看如何实时使用它。

运行以下命令以启动终端会话记录。

$ script -a my_terminal_activities

在哪里, -一种 标志用于将输出附加到文件或打字稿,保留先前的内容。 上面的命令记录了你在终端中所做的一切,并将输出附加到一个名为 “我的终端活动” 并将其保存在您当前的工作目录中。

示例输出为:

Script started, file is my_terminal_activities

现在,在终端中运行一些随机的 Linux 命令。

$ mkdir ostechnix
$ cd ostechnix/
$ touch hello_world.txt
$ cd ..
$ uname -r

运行所有命令后,使用以下命令结束“脚本”命令的会话:

$ exit

输入exit后,您将得到以下输出。

exit
Script done, file is my_terminal_activities

在 Linux 中使用脚本命令记录您在终端中所做的一切

如您所见,终端活动已存储在一个名为 “我的终端活动” 并将其保存在当前工作目录中。

您还可以将终端活动保存在不同位置的文件中,如下所示。

$ script -a /home/ostechnix/documents/myscripts.txt

所有命令将存储在 /home/ostechnix/documents/myscripts.txt 文件。

查看记录的终端活动

要查看您的终端活动,只需在任何文本编辑器中打开此文件或使用 ‘猫’ 命令。

$ cat my_terminal_activities

样本输出:

Script started on 2019-10-22 12:07:37+0530
[email protected]:~$ mkdir ostechnix
[email protected]:~$ cd ostechnix/
[email protected]:~/ostechnix$ touch hello_world.txt
[email protected]:~/ostechnix$ cd ..
[email protected]:~$ uname -r
5.0.0-31-generic
[email protected]:~$ exit
exit

Script done on 2019-10-22 12:08:10+0530

查看终端活动

正如您在上面的输出中看到的,脚本命令记录了我所有的终端活动,包括脚本命令的开始和结束时间。 太棒了,不是吗? 使用脚本命令的原因是它不仅记录命令,还记录命令的输出。 简而言之,脚本命令将记录您在终端上所做的一切。

播放录制的终端会话

有时您可能想要重播终端会话,例如动画 GIF,而不仅仅是查看它。 如果是这样,您可以使用 Scriptreplay 命令轻松完成。 请参阅以下指南以了解如何播放录制的终端会话。

  • 如何使用 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

它对于向学生展示特定命令的用法或将命令的输出分享给您的同事或支持团队非常有用。

记录带有时间戳的终端会话

作为我们的读者之一 阿拉斯泰尔·蒙哥马利先生 在下面的评论部分提到,我们可以设置一个 别名 这将为记录的会话加上时间戳。

为脚本命令创建一个别名,如下所示。

$ alias rec=’script -aq ~/term.log-$(date “+%Y%m%d-%H-%M”)’

现在只需输入以下命令开始录制终端。

$ rec

现在,您的所有终端活动都将记录在带有时间戳的文本文件中,例如 example term.log-20191022-12-16.

使用时间戳记录终端活动

使用时间戳记录终端活动

建议阅读:

  • Asciinema – 记录终端会话并在网络上分享
  • 为 Linux 命令添加书签以便于重复调用
  • 将标签应用于 Linux 命令以轻松从历史记录中检索它们
  • 使用 Apropos 轻松回忆被遗忘的 Linux 命令
  • Pet – 一个简单的命令行片段管理器

下载免费电子书:“Linux 命令行备忘单”

以安静模式记录终端会话

正如您所注意到的,当我们启动脚本命令来记录终端会话时,它会显示一条欢迎消息 – “脚本已启动,文件为 my_terminal_activities”,并在完成记录后显示“脚本已完成,文件为 my_terminal_activities”。 如果您不想查看这些消息,可以使用以安静模式运行脚本命令 -q 像下面这样的标志。

$ script -a -q my_terminal_activities

有关更多详细信息,请参阅手册页。

$ man script

结论

就像我说的,脚本命令对学生、教师和任何想要记录他们的终端活动的 Linux 用户很有用。 尽管有许多 CLI 和 GUI 工具可用于执行此操作,但 script 命令是记录终端会话活动的最简单快捷的方法。