如何删除bash历史记录中的单条命令 history -d不生效如何解决
问题解决方法
执行history -d <行号>仅修改当前终端会话内存中暂存的历史记录,未同步到bash持久化存储历史的~/.bash_history文件,因此终端重启后会重新读取文件中的旧记录,被删除的条目就会重新出现。
你可以选择以下任意一种方法解决:
方法一:通过history命令操作(适合执行删除操作的终端会话还未关闭的场景)
- 第一步:删除内存中对应行号的历史条目
history -d 10003 - 第二步:将修改后的内存历史写入持久化文件
history -w
操作完成后重启终端,对应错误条目就不会再出现了。
方法二:直接编辑历史文件(适合已经关闭原会话、或者需要批量删除匹配条目场景)
直接用文本编辑器打开bash历史文件,手动删除目标条目即可:nano ~/.bash_history
找到内容为gti add . && git commit -m的行删除后保存,执行history -r可以让当前终端会话立刻读取更新后的历史记录,无需重启。
如果需要批量删除所有拼写错误的gti相关命令,也可以直接用sed批量处理:sed -i '/^gti /d' ~/.bash_history
注意:如果你同时开启了多个bash终端窗口,建议先关闭其他窗口再执行上述操作,避免其他会话未同步的历史在退出时写入文件,覆盖你已经修改好的内容。
内容的提问来源于stack exchange,提问作者Timothy Kodes
相关产品推荐
相关产品推荐

