由于某种原因,我将这些奇数行号或某种历史编号放入我的~/.zsh_history
文件中,如下所示:
: 1266694881:0;rake db:migrate
我宁愿不必诉诸于正则表达式来删除开头,但我希望我的行是这样的:
rake db:migrate
有人对如何解决这个问题有什么建议吗?我已经找到了,setopt EXTENDED_HISTORY
但似乎没什么用。
答案1
尝试:
unsetopt EXTENDED_HISTORY
这些数字是自命令开始的 Unix 纪元以来的秒数以及命令运行的持续时间(以秒为单位)。
编辑:
我忘了提到您应该使用fc
命令与历史记录交互而不是解析历史记录文件。 至少有几个原因。 其一是历史记录文件没有内存条目,直到您退出 shell、达到阈值或您明确使用命令写入它fc -AI
(我相信)。 其次,您可以保持EXTENDED_HISTORY
打开状态并仍然与条目交互,而不必删除该信息。 如果它关闭,那么当您这样做时fc -ld
,shell 会使用 shell 启动的时间作为历史记录中该时间之前的命令的时间戳。 如果它关闭,它会记住实际日期和时间(您在文件中看到的数字)。
看man zshbuiltins
。
列出最近的条目:
fc -l
列出它们,但不加命令编号:
fc -ln
列出最近的20条命令,不带命令编号:
fc -ln -20
包含时间戳并仅打印最新的命令:
fc -lnd -1
显示所有包含字符串“setop”的命令(最近 50 个以内的命令)(显示setopt
和unsetopt
):
fc -l -m '*setopt*' -50
答案2
添加~/.zshrc
:
setopt no_extended_history no_share_history
对于其他 shell,请添加到~/.bashrc
、等。~/.config/fish/config.fish