Linux下如何隐藏自己的命令操作历史

Linux下如何隐藏自己的命令操作历史

一、前言

终端运行每个命令都会记录下来,每次运行以后,使用history命令就能看到运行记录。出于某种目的,可能不希望让别人看到自己的操作,那么怎么”抹去”这些不想让别人知道的操作呢?

二、可行方案

可以使用很多种方法,个人感觉比较好的方法有两种。

1、使用空格

是的,没看错。在命令前面插入空格,这条命令会被 shell 忽略,也就意味着它不会出现在历史记录中。但是这种方法有个前提,只有在你的环境变量 HISTCONTROL 设置为 “ignorespace” 或者 “ignoreboth” 才会起作用。在大多数情况下,这个是默认值,我们无需设置这个环境变量。

所以,像下面的命令(这里[space]表示输入一个空格):

[space]echo "this is a top secret"

运行这个echo指令,使用history命令是找不到这个记录的。

如果仍然记录了这个操作,那说明环境变量需要设置一下,使用指令如下:

export HISTCONTROL = ignorespace

这个环境变量设置好之后,那么再使用空格这个方法,就可以很有效的隐藏命令了。效果如下图所示:

Linux下如何隐藏自己的命令操作历史

可以看到,第四个加入空格的命令没有被记录。

但是需要注意的一点,这样做需要每次都要添加空格。少量操作很合适,但当操作指令多了,这么做有些不方便,这时候怎么办呢?

2、使用软链接

我们知道history记录存放在~/.bash_history文件中,既然记录是放在这个文件里的,那么我们就可以把写入~/.bash_history转移写入到其他的地方,这里就可以使用软连接了,方法如下:

ln -s /dev/null ~/.bash_history

上述指令的意思就是,建立了一个/dev/null的软连接,也就是当我们向~/.bash_history写入内容的时候,因为有软连接的存在,实际上是写入/dev/null。这样我们的操作记录就不会写入~/.bash_history了。那么,/dev/null是什么呢?

/dev/null可以理解成“无底洞”级垃圾桶,来者不拒,来多少扔多少,从这扔出去的东西别想在找回来。它类似一个黑洞,写入任何东西都会返回成功,但是实际写入数据随即被丢弃。

建立好软连接之后,我们在shell输入的任何命令都不会记录到history中。

骚操作结束了,怎么恢复,让history正常记录呢?

没错,使用如下指令删除软连接即可:

rm -rf ~/.bash_history

注意:不是

rm -rf ~/.bash_history/

如果结尾有”/”,那么源文件也会被删除。只删除软连接的话,不能加”/”。

来源:

https://cuijiahua.com/blog/2018/02/trick_1.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?