有时我们跑 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 #
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 ~]#
如何在 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,您会注意到这些更改。