Linux 如何使用脚本从~/.bash_历史记录中删除多个历史记录条目?

Linux 如何使用脚本从~/.bash_历史记录中删除多个历史记录条目?,linux,bash,ubuntu,unix,terminal,Linux,Bash,Ubuntu,Unix,Terminal,我想删除常见的命令(如pwd、ls-l、cd等),保留那些我可能会忘记如何使用的命令。为此,我运行了以下命令 history | grep "cd$" | cut -c 1-5 > ~/sandboxArea/histDelTemp.txt cntr=0; for i in $(cat ~/sandboxArea/histDelTemp.txt); do var=`expr $i - $cntr`; history -d $var; cntr=`expr $cntr + 1`; done;

我想删除常见的命令(如pwd、ls-l、cd等),保留那些我可能会忘记如何使用的命令。为此,我运行了以下命令

history | grep "cd$" | cut -c 1-5 > ~/sandboxArea/histDelTemp.txt
cntr=0; for i in $(cat ~/sandboxArea/histDelTemp.txt); do var=`expr $i - $cntr`; history -d $var; cntr=`expr $cntr + 1`; done; unset cntr
运行上述命令后,如果我再次运行,请使用以下命令检查是否删除了所有内容

history | grep "cd$"
然后,看起来所有内容实际上都被删除了,上面的命令不产生任何输出

但是,如果我关闭终端并再次运行上述命令,那么一切似乎都会重新出现。为什么会这样?bash是否具有备份和还原命令的功能


提前感谢

检查线程是否有帮助——是的,它起作用了。要将更改写入历史文件,请运行:user@linuxbox~$history-w。所以实际上我不知道我们需要将更改写入历史文件。如果线程有帮助的话,谢谢你——是的,它起作用了。要将更改写入历史文件,请运行:user@linuxbox~$history-w。所以实际上我不知道我们需要将更改写入历史文件。谢谢