mmm*_*mmm 8 bash command-history
我想用它的时间戳打印最后一个 bash 命令。history 1
显示历史命令本身。我需要在很多机器上使用它,所以它不应该依赖于任何自定义配置。肯定有一些我缺少的简单命令来执行此操作,例如lastcmd
或某事:)
请注意,它fc -l -1
显示了最后一个命令但没有时间戳,而且太复杂了,无论如何都不能经常输入。
只是为了澄清,我正在寻找一些标准且简单的方法来执行此操作,因为我需要在许多服务器上使用它,并且对它们进行全部自定义或创建自定义函数是不可行的。另外我需要手动输入这个命令,所以它应该非常简单。
似乎 HISTCONTROL=ignoreboth 是我需要访问的服务器上的默认设置,因此我可以使用:
history 1
Run Code Online (Sandbox Code Playgroud)
(以空格为前缀的历史命令)不会将其放入历史记录中,因此它正确显示了最后一个命令。
HISTTIMEFORMAT
虽然默认情况下没有设置,所以它不是一个完整的解决方案。有没有更简单的方法?
正如您所指出的,history 1
打印history
命令本身,因为这是您运行的最后一个命令。要获得上一个,您需要history 2
:
$ touch foo
$ history 2
$ history 2
19950 touch foo
19951 history 2
Run Code Online (Sandbox Code Playgroud)
因此,要在不计算history
自身的情况下获取上一个命令,请通过head -n1
:
$ history 2 | head -n1
19952 touch foo
Run Code Online (Sandbox Code Playgroud)
然后,以您想要的任何格式添加时间戳(请参阅man 3 strftime
可用格式):
$ HISTTIMEFORMAT="%F %H:%m:%S " history 2 | head -n1
19959 2016-06-11 15:06:08 touch foo
Run Code Online (Sandbox Code Playgroud)
bash 似乎并没有提供任何简单的方法来获取执行最后一个命令时的时间戳。
如果您可以自定义服务器 bash 配置,您可以根据 @terdon 的答案创建自定义 bash 函数。
归档时间: |
|
查看次数: |
1037 次 |
最近记录: |