有时候只想清除自己执行的一些历史命令,而不想清除整个系统的历史命令,而且也不想让别人看到自己有编辑过.bash_history文件。

有的人会说直接使用history -c命令来清除。
这种方法不是不可以,不过要注意自己的系统版本。
有些系统版本是会把.bash_history里的所有历史命令清除掉的。

我测试的两种环境:

oracle linux 5.8  2.6.32-300.10.1.el5uek     


       oracle linux 6.4  2.6.39-400.17.1.el6uek


在6.4系统中
如果想删除自己当前会话中执行过的历史命令就很简单了。
直接执行history -c命令
执行完history -c,如果没有退出当前会话,你执行history命令看不到任何命令了,不过你退出会话重新登录一下,再执行history命令,会发现除了上一次会话执行过的命令外,其它以前的命令都在。
如果退出会话后,再想删除自己的执行过的命令,就需要用下面的方法了。

在5.8系统中
如果直接执行history -c命令,就会把.bash_history里的所有历史命令清除掉,这不是我们想看到的。

这里分享几个隐藏自己执行命令的两个小技巧:

第一种方法:
在退出会话前直接执行:
#history -r
清除当前会话的命令历史记录

第二种方法:
在vim中执行自己不想让别人看到的命令
随便用vim打开一个文件
:set history=0
:!command

第三种方法:
是执行完命令后已经退出了会话,再想删除不想让别人看到的命令。
这个操作要退出当前会话,再重新登录后再操作。

重新登录后也是随便用vim打开一个文件
然后再用vim的分屏功能打开.bash_history
:set history=0
:vsp ~/.bash_history

然后就可以在里面编辑.bash_history删除历史命令了。
弄完可以再把vim的历史命令记录调回去。
:set history=20

 

不要用来做坏事哦。

PS.生产环境中,能用oracle linux 6及以上的版本尽量用6以上的版本,6以下的版本有很多坑,很多东西不完善。