【发布时间】:2016-07-24 06:05:50
【问题描述】:
我已经添加了
export HISTIGNORE="ls:cd:pwd:exit:cd .."
到我的 .zshrc 文件。
删除 .zsh_history 并重新启动终端,但它仍然不会忽略这些命令。
【问题讨论】:
我已经添加了
export HISTIGNORE="ls:cd:pwd:exit:cd .."
到我的 .zshrc 文件。
删除 .zsh_history 并重新启动终端,但它仍然不会忽略这些命令。
【问题讨论】:
zsh shell 不使用HISTIGNORE 环境变量。相反,它有一个HISTORY_IGNORE 环境变量。
HISTORY_IGNORE如果设置,则在历史文件出现时被视为模式 书面。任何与该模式匹配的潜在历史条目都会被跳过。例如,如果值为
fc *,则 调用交互式历史编辑器的命令永远不会 写入历史文件。请注意,
HISTORY_IGNORE定义了一个模式:指定 替代方案使用(first|second|...)语法。
所以在你的情况下,你会想要做
HISTORY_IGNORE="(ls|cd|pwd|exit|cd ..)"
或类似的东西。
请注意,据我所知,这只会影响写入历史文件的历史记录,而不影响当前活动 shell 会话中的历史记录。
【讨论】:
SAVEHIST 设置为正数,确保将HISTFILE 设置为历史文件的名称,并将HISTORY_IGNORE 设置为"(cd|ls)" 肯定会像zsh 无论如何都是手册。
HISTORY_IGNORE 设置为"(cd|ls)*",你也会清除任何以cd 或ls 开头的other 命令,所以你可能想要"(cd|cd *|ls|ls *)",或"(cd(| *)|ls(| *))"。