如何在 Linux 和 Mac 中清除 Bash 历史记录

有时我们跑 bash 带有敏感信息的命令。 为了 example,运行 shell 脚本并将密码作为命令行参数传递。 在这种情况下,最好清除 bash 出于安全原因的历史。

目录

在 Linux 中清除 Bash 历史记录

当我们在 bash shell,它被存储在 .bash_history 文件位于用户主目录中。 我们可以用 history 命令打印此文件中的所有命令。 有一些选项可以删除整个历史记录或从 bash 历史。

1.删​​除Bash History以删除所有命令

如果你想删除 bash 历史完全,你可以运行 history -c 命令。

# history
  ...
  737  history
  738  vi .bash_history 
  739  cd
  740  history
# history -c
# history
    1  history
# 
图 4

2. 从 Bash 历史记录中删除特定命令

如果要从 bash 历史,用于 history -d offset 命令。 偏移量是从输出的行号 history 命令。

[root@li1176-230 ~]# ls -1 | wc -l
3
[root@li1176-230 ~]# history
    1  history
    2  ls
    3  cd
    4  ls -1 | wc -l
    5  history
[root@li1176-230 ~]# history -d 4
[root@li1176-230 ~]# history
    1  history
    2  ls
    3  cd
    4  history
    5  history -d 4
    6  history
[root@li1176-230 ~]#
图 5

如何在 Mac OS 中清除 Bash 历史记录

如果您使用纯 bash shell,您可以使用 -d 或 -c 选项删除 bash 历史。

bash-3.2$ history
    1  history
    2  cd
    3  ls
    4  pwd
    5  history
bash-3.2$ history -d 4
bash-3.2$ history
    1  history
    2  cd
    3  ls
    4  history
    5  history -d 4
    6  history
bash-3.2$ history -c
bash-3.2$ history
    1  history
bash-3.2$

ZSH 清除历史记录

ZSH最近很受欢迎。 它建立在 bash shell 并提供了许多附加功能来帮助开发人员。 不幸的是,上述历史命令无法清除 ZSH shell 历史记录。 这是因为 ZSH 历史保存在 ~/.zsh_history 文件。 如果要删除任何条目,请在 VIM 或任何其他编辑器中打开此文件,然后从文件中手动删除条目并保存。

笔记:zsh 历史记录在会话开始时加载,因此对 .zsh_history 文件的更改不会反映在当前 shell 会话中。 如果您通过打开新窗口或选项卡来启动新 shell,您会注意到这些更改。