在 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
。参数first
和last
可以指定为数字或字符串。负数用作当前历史事件号的偏移量。字符串指定以给定字符串开头的最近事件。
所以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条命令。