我正在尝试为历史命令添加时间戳
export HISTTIMEFORMAT='%F %T '
,但历史记录中的命令(旧的和新的)不显示时间戳。
输出
history | tail
445 exoirt HISTTIMEFORMAT='F% T%'
446 export HISTTIMEFORMAT='F% T%'
447 history
448 history | tail
449 ls
450 cd
451 ls
452 cd
453 ls
454 cd
我期望数字和列之间有一些日期时间信息。 就像这里一样(在下面的截图中也可见)
1 2008-08-05 19:02:39 service network restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat /etc/redhat-release
输出
type history
是
history is an alias for history 0
我尝试将变量插入 ~/.bashrc 文件中,但它再次不起作用。
编辑: 我正在运行 Kali Linux。我尝试重新启动系统并重置历史大小和数据。 编辑#2: 输出
echo $ZSH_VERSION
5.8
输出
echo $SHELL
/usr/bin/zsh
答案1
你使用的是 Kali Linux。 Kali Linux 发行版使用zsh
作为默认登录 shell,而不是bash
.
这意味着您所做的任何更改~/.bashrc
都不会被您使用的 shell 看到。相反, shellzsh
使用该~/.zshrc
文件来初始化交互式 shell 会话。
此外,zsh
shell 没有名为 的 shell 变量HISTTIMEFORMAT
可以执行任何特定操作。 (顺便说一句,如果您一直在使用bash
,则不必使用export
此变量。)相反,您将必须使用history
内置命令以不同的方式查看历史记录。
但是,首先您必须让 shell 以扩展格式存储历史信息,其中包括时间戳。你这样做
setopt EXTENDED_HISTORY
~/.zshrc
(如果您希望在启动的所有 shell 会话中执行此操作,则可以执行此操作)。该 shell 选项记录在zshoptions
手册中。
然后,您必须删除Kali Linux 上history
默认~/.zshrc
设置的相当无用的别名,因为它阻止我们history
正确使用该命令。
要么注释掉该行
alias history="history 0"
或添加
unalias history
在文件末尾。
然后,您应该能够使用查看时间戳
history -i
另请参阅手册中fc
(history
实际上与)的文档,了解如何将 的输出格式化为您想要的格式。例如fc -l
zshbuiltins
history
history -t '%F %T'
(这恰好与 from 的输出格式几乎完全相同history -i
,但添加了秒数。)