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

在历史命令输出中启用时间戳有助于我们找到在 Linux 中执行某个命令的时间。 我们已经看到如何 在 Bash 历史记录中启用时间戳. 今天让我们看看如何启用时间戳 history Linux 中 Zsh shell 中的命令。

在 Zsh Shell 中为历史命令启用时间戳

您可以使用以下命令在 Linux 的 Bash 历史输出中显示日期和时间戳 HISTTIMEFORMAT 环境变量。 但是,您不需要在 Zsh 中设置任何环境变量。 默认情况下,Zsh 有一些内置标志来显示历史命令输出中的日期和时间。

首先,让我们查看之前执行过的命令列表 zsh 会话使用 history 命令:

% history

示例输出:

    1  lsb_release -a     2  uname -r     3  hostname     4  ls -l     5  touch ostechnix.txt     6  clear
zsh 会话中的历史命令输出

如您所见, history 命令不显示时间戳。 它只显示每个命令的前缀编号。

要为历史命令启用时间戳,即在 zsh shell 中的所有命令中显示日期和时间,请使用 -f 标志与 history 命令:

% history -f

现在您将看到日期和时间 history zsh shell 中的命令输出:

    1  11/28/2020 17:00  lsb_release -a     2  11/28/2020 17:00  uname -r     3  11/28/2020 17:00  hostname     4  11/28/2020 17:00  ls -l     5  11/28/2020 17:00  touch ostechnix.txt     6  11/28/2020 17:00  clear     7  11/28/2020 17:01  history
在 Zsh Shell 中为历史命令启用时间戳

在这里, -f 标志用于打印完整的日期和时间戳 'US MM/DD/YY hh:mm' 格式

如果要打印完整的日期时间戳 'European dd.mm.yyyy hh:mm' 格式,使用 -E 旗帜。

% history -E

示例输出:

    1  28.11.2020 17:00  lsb_release -a     2  28.11.2020 17:00  uname -r     3  28.11.2020 17:00  hostname     4  28.11.2020 17:00  ls -l     5  28.11.2020 17:00  touch ostechnix.txt     6  28.11.2020 17:00  clear     7  28.11.2020 17:01  history     8  28.11.2020 17:06  history -f

同样,要打印日期和时间戳 'ISO8601 yyyy-mm-dd hh:mm' 格式,使用 -i 旗帜:

% history -i

示例输出:

    1  2020-11-28 17:00  lsb_release -a     2  2020-11-28 17:00  uname -r     3  2020-11-28 17:00  hostname     4  2020-11-28 17:00  ls -l     5  2020-11-28 17:00  touch ostechnix.txt     6  2020-11-28 17:00  clear     7  2020-11-28 17:01  history     8  2020-11-28 17:06  history -f     9  2020-11-28 17:18  history -E

如果只想打印时间,请使用 -d 旗帜。

% history -d

示例输出:

    1  17:00  lsb_release -a     2  17:00  uname -r     3  17:00  hostname     4  17:00  ls -l     5  17:00  touch ostechnix.txt     6  17:00  clear     7  17:01  history     8  17:06  history -f     9  17:18  history -E    10  17:18  history -i

在历史输出中显示日期和时间戳使用 fc 命令

在 zsh shell 的历史输出中启用时间戳的另一种方法是使用 fc 命令。 这 fc 命令,简称 FCommands 是一个 shell 内置命令,用于在交互式 shell 中列出、编辑和重新执行最近输入的命令。

使用在历史输出中显示完整时间戳 fc 命令,只需运行:

% fc -lf

示例输出:

    1  11/28/2020 17:00  lsb_release -a     2  11/28/2020 17:00  uname -r     3  11/28/2020 17:00  hostname     4  11/28/2020 17:00  ls -l     5  11/28/2020 17:00  touch ostechnix.txt     6  11/28/2020 17:00  clear     7  11/28/2020 17:01  history     8  11/28/2020 17:06  history -f     9  11/28/2020 17:18  history -E    10  11/28/2020 17:18  history -i    11  11/28/2020 17:19  history -d
使用 fc 命令在历史输出中显示日期和时间戳使用 fc 命令在历史输出中显示日期和时间戳

如前所述, -f flag 打印完整的时间日期戳 美国格式 IE 'MM/DD/YY hh:mm'.

如果要在历史输出中显示时间戳 欧洲格式 这是 dd.mm.yyyy hh:mm, 利用 -E 旗帜:

% fc -lE

示例输出:

    1  28.11.2020 17:00  lsb_release -a     2  28.11.2020 17:00  uname -r     3  28.11.2020 17:00  hostname     4  28.11.2020 17:00  ls -l     5  28.11.2020 17:00  touch ostechnix.txt     6  28.11.2020 17:00  clear     7  28.11.2020 17:01  history     8  28.11.2020 17:06  history -f     9  28.11.2020 17:18  history -E    10  28.11.2020 17:18  history -i    11  28.11.2020 17:19  history -d    12  28.11.2020 17:43  fc -lf

在中显示时间戳 ISO8601格式 (IE yyyy-mm-dd hh:mm), 利用 -i 旗帜:

% fc -li

示例输出:

    1  2020-11-28 17:00  lsb_release -a     2  2020-11-28 17:00  uname -r     3  2020-11-28 17:00  hostname     4  2020-11-28 17:00  ls -l     5  2020-11-28 17:00  touch ostechnix.txt     6  2020-11-28 17:00  clear     7  2020-11-28 17:01  history     8  2020-11-28 17:06  history -f     9  2020-11-28 17:18  history -E    10  2020-11-28 17:18  history -i    11  2020-11-28 17:19  history -d    12  2020-11-28 17:43  fc -lf    13  2020-11-28 18:01  fc -lE

如果只想显示时间,请使用 -d 旗帜:

% fc -ld

示例输出:

    1  17:00  lsb_release -a     2  17:00  uname -r     3  17:00  hostname     4  17:00  ls -l     5  17:00  touch ostechnix.txt     6  17:00  clear     7  17:01  history     8  17:06  history -f     9  17:18  history -E    10  17:18  history -i    11  17:19  history -d    12  17:43  fc -lf    13  18:01  fc -lE    14  18:02  fc -li

您还可以显示带有时间戳的历史输出,从历史中的特定条目开始。 例如,要列出从 第5名 在 zsh 中带有时间戳的命令,运行:

% fc -li 5

示例输出:

    5  2020-11-28 17:00  touch ostechnix.txt     6  2020-11-28 17:00  clear     7  2020-11-28 17:01  history     8  2020-11-28 17:06  history -f     9  2020-11-28 17:18  history -E    10  2020-11-28 17:18  history -i    11  2020-11-28 17:19  history -d    12  2020-11-28 17:43  fc -lf    13  2020-11-28 18:01  fc -lE    14  2020-11-28 18:02  fc -li    15  2020-11-28 18:05  fc -ld

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

% man zsh
% man fc

你正在用吗 壳? 检查以下指南以在 Fish shell 中启用时间戳:

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

历史命令LinuxLinux基础Linux命令Linux提示ShellTimestampsZ shellZSH