ZSH 仅显示最近 16 条左右的带有历史记录的命令。HISTSIZE 和 SAVEHIST 为 500

ZSH 仅显示最近 16 条左右的带有历史记录的命令。HISTSIZE 和 SAVEHIST 为 500

在 ZSH 中,当我输入时,history仅显示最后 16 条左右的命令。我想history显示历史文件中的所有现有命令。

当我查看我的 .zsh_history(我的历史文件)时,我看到了应该存在的所有 500 条先前的命令。

我查看了手册页,但没有看到任何可以控制列出多少个历史项目的内容。我也查看了 my,env但没有看到任何可以控制这一点的内容。

任何帮助都将不胜感激!谢谢。

答案1

history 1(或history 1 -1)将显示从 1(第一个条目)到 -1(最后一个条目)的所有条目。您还可以使用history 1 100显示前 100 个条目或history -100 -1显示后 100 个条目等。

fc有关详细信息,请参阅中的部分man zshbuiltins。(history相当于fc -l)。

答案2

接受的答案完全正确,但我想引用一些官方文档关于这一点,希望它能帮助到别人。(这篇文章太长了,无法评论。)首先看一下history

与...一样fc -l

很简单。现在看看fc

fc -l [ -LI ] [ -nrdfEiD ] [ -t <timefmt> ] [ -m <match> ]
      [ <old>=<new> ... ] [ <first> [ <last> ] ]

first此命令的前两种形式从历史列表中选择从到的一系列事件last。参数firstlast可以指定为数字或字符串。负数用作当前历史事件号的偏移量。字符串指定以给定字符串开头的最近事件。

所以history 1意味着fc -l 1,也就是从第一个条目开始。同样,如果你想要“最后 n 个”历史记录(history n在 Bash 中),你需要history -n。至于默认值:

如果first没有指定,它将被设置为 -1(最近的事件),或者如果-l给出了标志,则设置为 -16。

答案3

Lost Odinson 的回复帮我解决了这个问题。只需在 ~/.zshrc 中设置别名 history="history 1"。这样就省去了额外的输入工作。

答案4

我在寻找解决方案以找到何时last N commands使用时ZSH偶然发现了此页面macOS,我只是想分享我的结果。

总结对于ZSH想要查看最后 n 条命令的用户。将其添加到您的.zsrhc

function historyr() {
  history -$1 -1
}

用法$ history 100#查看最后执行的100条命令。

相关内容