仅在终端关闭后才将某些命令排除在 bash 历史记录中

仅在终端关闭后才将某些命令排除在 bash 历史记录中

目前我习惯$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

每小时进行一次清理。

相关内容