如何在 Linux 中的 Bash 历史记录中启用时间戳

您可以使用以下命令轻松找到 Linux 中最近执行的命令列表 history 命令,对吗? 是的。 但是你怎么知道命令执行的时间呢? 当然,您可以在日志文件中搜索。 但是,还有一种更简单的方法。 您可以简单地在 Linux 中的 Bash 历史记录中启用时间戳,因此更容易找到特定命令在 Linux 中的执行时间。

在 Linux 中的 Bash 历史记录中启用时间戳

重击 维护已在终端中输入的命令的历史记录。 这个命令列表保存在一个名为 .bash_history 在我们的 HOME 目录中。 大多数 Linux 发行版都记得最后一个 1000 默认命令。 我们可以使用检索最近执行的命令 history 命令 ash 如下所示:

$ history

示例输出:

没有时间戳的历史命令输出

正如您在上面的输出中看到的,即使 history 命令显示了以前执行的命令的列表,它也没有显示这些命令何时被执行。

要在 Linux 中启用 Bash 历史记录中的时间戳,您需要设置 HISTTIMEFORMAT 环境变量。 此变量用于打印与每个显示的历史条目关联的时间戳。

运行以下命令设置 HISTTIMEFORMAT 环境变量:

$  HISTTIMEFORMAT='%F %T '

在这里, %F 选项用于显示日期 YYYY-MM-DD(年-月-日)格式。 而 %T 选项用于以格式显示时间 HH:MM:SS (时-分-秒)格式。

现在,运行 history 再次命令,您将在每个命令之前看到时间戳:

在 Bash 历史记录中启用时间戳

完美的! 现在,您可以轻松找到 Linux 系统中执行特定命令的时间。

例如,如果要显示最后“N”个命令的时间戳 10, 管道 history 命令输出到 tail 命令如下:

$ history | tail -10

请注意,这只会设置新的时间戳 history 之后的条目 HISTTIMEFORMAT 为会话设置了环境变量。

您还可以根据自己的喜好使用自定义日期格式,如以下命令所示:

$  HISTTIMEFORMAT='%d/%m/%y %T '

此环境变量显示历史命令中的日期和时间 日/毫米/年 格式例如 27/11/20 19:11:55.

为了使 HISTTIMEFORMAT env 变量在系统重新启动后保持不变,编辑 ~/.bashrc 文件:

$ nano ~/.bashrc

在最后添加以下行:

 HISTTIMEFORMAT='%F %T '

或者,

 HISTTIMEFORMAT='%d/%m/%y %T '

CTRL+O 保存文件并按 CTRL+X 退出。

运行以下命令使更改立即生效:

$ source ~/.bashrc

这只会显示当前用户的时间戳。 要为所有系统用户启用 Bash 历史时间戳,请编辑 /etc/profile 文件:

$ sudo nano /etc/profile

并添加这一行:

 HISTTIMEFORMAT='%F %T '

或者,

 HISTTIMEFORMAT='%d/%m/%y %T '

Save 和 close 文件。 要使更改生效,请运行:

$ sudo source /etc/profile

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

$ man bash

您现在知道在 Linux 的历史命令输出中显示日期和时间。 如前所述,如果您想检查命令何时执行,只需在 bash 历史命令如上所述。

你正在用吗 或者 零星 壳? 查看以下教程以了解如何在 history 命令:

  • 在鱼壳中为历史命令启用时间戳
  • 在 Linux 中的 Zsh 中为历史命令启用时间戳

希望这可以帮助。

相关阅读:

  • 如何在 Linux 中清除命令行历史记录
  • 如何在没有行号的情况下显示 Bash 历史记录
  • 如何避免 Linux 中 Bash 历史记录中的重复条目
  • 在 Linux 中查找命令或进程的执行时间

BASHBash 历史Bash 提示历史命令LinuxLinux 基础Linux 提示时间戳