如何删除bash历史记录中的最后5行?这样,当我重新加载Ubuntu服务器或重新启动它时,它们根本不存在?
history -c仅将其从当前会话中删除,但是当我重新登录时,我再次看到命令,我想清除最后一个5。
我跑了:
history
然后,我将看到命令的编号,例如:
489 cd ..
490 cd .zshrc
491 cat .zshrc
然后我运行例如:
history -d 489
history -c
然后,我关闭终端并重新打开它,但仍然看到第489行,该行仅在该当前会话中被删除,如何从以后的所有会话中永久删除它?
请指教。
有多种方法可以完成此任务,但请在进一步说明之前进行澄清。
有一个名为:的文件~/.bash_history
,其中包含您较旧的终端会话历史记录,每当您关闭终端时,您的历史记录都将保存在该位置。
同时,您可以通过history
命令临时访问旧会话以及当前会话的历史记录,直到关闭终端为止,然后将其保存到~/.bash_history
文件中。
因此,如果您在的末尾删除了5行~/.bash_history
,那么关闭终端将使您在下一个会话中可以访问当前命令。
因此,如果我wc
在.bash_history上执行以下操作:
wc -l ~/.bash_history
大多数时候,我得到的数量会少于history | wc -l
。
如果要删除文件的最后5行,可以使用以下命令:
for i in {1..5}; do sed -i '$d' .bash_history; done;
如果要保留当前会话运行中除最后5条命令以外的所有历史记录,请执行以下操作:
history | awk '{ print $2 }' | head -n -5 > .bash_history
别忘了跑步history -c
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句