目前我习惯$HISTIGNORE
忽略一些命令,不将它们保存在 bash 历史记录中。但目前的行为是,如果我正在运行终端,我执行了一条命令,然后$HISTIGNORE
按向上箭头,它会带我到最后保存的命令,但我希望这些被忽略的命令在当前会话中可用,并且仅在会话关闭后删除它们。
答案1
您可以使用sed
从文件中删除行~/.bash_history
,例如
sed -i -e '/ apt /d' -e '/^xterm/d' ~/.bash_history
删除包含“ apt ”的每一行以及以“xterm”开头的每一行。
如果您想每次打开新终端时都执行删除操作,请将以下sed
行添加到~/.bashrc
文件中。您也可以使用 cron( crontab -e
) 自动执行清理,例如使用以下行
@hourly sed -i -e '/ apt /d' -e '/^xterm/d' ~/.bash_history
每小时进行一次清理。