在 Fish Shell 中启用历史命令的时间戳

每当在终端中输入命令时,它都会保存在 Linux 历史文件的末尾。 您可以随时使用轻松检索这些命令 history 命令。 shell 还跟踪所有命令条目的时间戳,以便我们可以轻松找到特定命令的执行时间。 我们已经向您展示了如何在 重击Zsh 贝壳。 今天我们将看到如何为历史命令启用时间戳 鱼壳 在 Linux 中。 此外,我们还将学习如何创建一个简单的函数来在 fish shell 的历史命令输出中显示日期和时间戳。

在 Fish Shell 中启用历史命令的时间戳

从 2.6 版本开始, fish shell 支持内置的时间戳 history 命令。 让我们在 fish 外壳会话:

> lsb_release -a
> uname -r
> hostname -f
> mkdir ostechnix
> cd ostechnix/
> touch ostechnix.txt
> ls

如果你运行 history 没有任何标志的命令,您将看到所有这些先前执行的命令而没有时间戳。

> history
ls
touch ostechnix.txt
cd ostechnix/
mkdir ostechnix
hostname -f
uname -r
lsb_release -a
[...]

启用时间戳 history 命令在 fish 外壳,使用 --show-time 标志如下图:

> history --show-time

样本输出:

# Monday 30 November 2020 02:39:52 PM
history
# Monday 30 November 2020 02:36:52 PM
ls
# Monday 30 November 2020 02:36:47 PM
touch ostechnix.txt
# Monday 30 November 2020 02:36:39 PM
cd ostechnix/
# Monday 30 November 2020 02:36:36 PM
mkdir ostechnix
# Monday 30 November 2020 02:34:11 PM
hostname -f
# Monday 30 November 2020 02:33:51 PM
uname -r
# Monday 30 November 2020 02:33:42 PM
lsb_release -a
[...]
在 Fish Shell 中启用历史命令的时间戳

如您所见,历史命令在每个命令的顶部显示时间戳。 我不喜欢鱼壳显示日期和时间戳的方式。 因此,我自定义了历史命令输出,如下所示:

> history --show-time="%F %T "

样本输出:

2020-11-30 14:47:12 history --show-time
2020-11-30 14:39:52 history
2020-11-30 14:36:52 ls
2020-11-30 14:36:47 touch ostechnix.txt
2020-11-30 14:36:39 cd ostechnix/
2020-11-30 14:36:36 mkdir ostechnix
2020-11-30 14:34:11 hostname -f
2020-11-30 14:33:51 uname -r
2020-11-30 14:33:42 lsb_release -a
[...]

现在它是完美的!

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

如果你想展示 只有日期使用这个命令:

> history --show-time="%F "

样本输出:

2020-11-30 ls
2020-11-30 touch ostechnix.txt
[...]

显示 只有时间,然后使用这个:

> history --show-time="%T "

样本输出:

14:36:52 ls
14:36:47 touch ostechnix.txt
[...]

您还可以使用以下不同的格式:

> history --show-time="%d/%m/%y %H:%M:%S "

这以以下格式显示历史输出:

30/11/20 14:36:52 ls
30/11/20 14:36:47 touch ostechnix.txt
[...]

这是另一个版本:

> history --show-time="%h/%d - %H:%M:%S "

样本输出:

Nov/30 - 14:36:52 ls
Nov/30 - 14:36:47 touch ostechnix.txt
[...]

在历史命令输出中显示日期和时间戳的 fish 函数

如果你想节省一些笔画,你可以使用 function 如下所示。

> nano ~/.config/fish/functions/history.fish

笔记: 如果 ~/.config/fish/functions/ 目录不存在,直接创建。

在中添加以下行 history.fish 文件:

function history
    builtin history --show-time="%F %T "
end

现在 history 命令将向您显示没有任何标志的时间戳:

在 Linux 的 fish shell 中显示历史命令输出中的日期和时间

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

> man fish

您现在知道如何在 history Linux 中 fish shell 中的命令输出。 您还学习了如何使用简单的 function 在鱼壳中启用历史命令的时间戳。 希望您觉得这个有帮助。

相关阅读:

  • 如何在 Linux 中以私有模式启动 Fish Shell