Zsh 过去x个月内最常用的命令

Zsh 过去x个月内最常用的命令,zsh,alias,Zsh,Alias,我知道如何使用 history 1 | awk'{$1=”“;print substr($0,2)}| sort | uniq-c | sort-n | tail-n20 但是有没有办法限制我自己,比如说过去两三个月 我之所以需要它,是因为我想为当前使用most的命令创建别名。history在zsh中有几个标志来显示日期和时间戳。为此,必须将setopt extended_history添加到.zshrc文件中 如果启用了扩展历史记录,history-i将以ISO8601`yyy-mm-dd h

我知道如何使用

history 1 | awk'{$1=”“;print substr($0,2)}| sort | uniq-c | sort-n | tail-n20

但是有没有办法限制我自己,比如说过去两三个月


我之所以需要它,是因为我想为当前使用most的命令创建别名。

history
在zsh中有几个标志来显示日期和时间戳。为此,必须将
setopt extended_history
添加到.zshrc文件中

如果启用了扩展历史记录,
history-i
将以ISO8601`yyy-mm-dd hh:mm'格式显示完整的时间戳。此格式的日期可以作为字符串进行比较。因此,只需更改您的awk脚本,并使用它仅选择某个日期后的行

history -i 1 | awk '{ if ($2 >= "2020-05-01") { $1=$2=$3="";print $0; } }'  | sort | uniq -c | sort -n -r | head -n 20
请注意,如果启用了
HIST\u IGNORE\u ALL\u DUPS
HIST\u IGNORE\u DUPS
选项,这将无法正常工作


您还可以使用
date
命令自动获取较旧的日期。

出于某种原因,这只显示由单个单词组成的命令,例如“cd”,而我的帖子中的命令也显示复合命令,如“cd~/some_directory/”哦,这是一个功能。。我编辑了我的答案,所以现在它应该显示命令和所有参数。