清除 history 命令的历史记录

 

2020-02-02

有时在系统中完成一些操作后,可能并不想保留记录,比如说无意识的输入 ll,文件传输时的路径名等,这时我们便可以通过清除当前会话的一些历史记录达到目的。

清除本次登录操作记录

禁用当前会话的历史记录

Terminal window
1
# 设定 HISTSIZE 的值为 0,一般默认为 1000
2
export HISTSIZE=0

完成后历史记录保存个数将为 0,即不会存储当前会话的所有命令,包括前面一条。

退出前清除当前会话的历史记录

Terminal window
1
# 清除当前 history 历史命令
2
history -c
3
4
# 或者直接删除当前登录的 PID
5
kill -9 $$

需要注意的是用 history -c 命令时需要放到最后,然后按 Ctrl + D 结束当前会话。

不记录指定命令

如果只是想在本次会话中不记录指定命令,可以更改 HISTCONTROL 变量值:

Terminal window
1
# 查看当前值,默认为 ignoredups,忽略重复命令
2
echo $HISTCONTROL
3
# 设定为 ignorespace,忽略以空格开头的命令
4
export HISTCONTROL=ignorespace

操作完毕后所有以空格开头的命令都不会被记录,不过 export HISTCONTROL=ignorespace 这条命令仍然会被记录。

清除所有历史操作记录

Terminal window
1
# 首先清除文件
2
echo "" > ~/.bash_history
3
# 然后清除当前会话记录后退出
4
history -c

清除所有历史操作记录无外乎是清除 .bash_history 和当前会话缓存的命令,所以除了这个方式之外,也可以使用前面提到的命令配合操作即可。