【问题标题】:How to delete a single command from history in bash如何从bash中的历史记录中删除单个命令
【发布时间】:2021-11-14 01:58:05
【问题描述】:

在网上搜索了一番后,我发现以下命令应该从 bash 历史记录中删除一个条目:

$ history -d <number>

假设我想从我的历史记录中删除这一行,因为我拼错了 git :

10003 gti add . && git commit -m

当我执行以下命令时:

$ history -d 10003

即使我重新启动终端,它仍会显示在我的历史记录中

所以知道如何解决这个问题,因为我使用自动完成功能,有时尤其是在使用 git 时,它会变得有点混乱。

【问题讨论】:

  • 您可能还需要从历史文件中删除该条目,通常位于 ~/.bash_history
  • 谢谢你成功了!

标签: bash command-line terminal autocomplete windows-subsystem-for-linux


【解决方案1】:

Bash 中的命令历史记录存储在内存中(通常用于当前的 shell 会话)和磁盘上,默认情况下存储在 ~/.bash_history 中。当会话终止时,默认的历史配置可能会将内存中的会话附加到磁盘上的文件中,但是有很多旋钮需要调整。

无论如何,要从历史记录中永久删除命令,您可能必须直接编辑 ~/.bash_history 文件。

对历史设置的一些参考:

  • HISTFILE – 保存历史记录的文件(默认为 ~/.bash_history
  • HISTFILESIZE – 存储在历史文件中的命令数(默认为 HISTSIZE
  • HISTSIZE – 存储在(内存中)历史列表中的命令数(默认为 500)
  • cmdhist – 将多行命令保存在单个历史条目中的 shell 选项
  • histappend – 用于控制是否将历史列表附加到历史文件或是否覆盖历史文件的 shell 选项
  • lithist – 使用换行符而不是分号存储多行命令的 shell 选项

【讨论】:

  • 是的,我确实删除了~/.bash_history 中的命令。不过,感谢您提供额外的信息。
  • 如何更改这些设置?
  • @SherylHohman 可以直接设置的变量; shell 选项使用shopt -s &lt;option&gt; 设置。这通常发生在~/.bashrc
【解决方案2】:

原来是通过删除~/bash_history中的命令来解决的

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2014-11-03
    • 1970-01-01
    • 2021-11-27
    • 2021-05-09
    • 2016-10-05
    相关资源
    最近更新 更多