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

2018年2月11日15:36:36 2 2,247 °C
摘要

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

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

一、前言

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

二、可行方案

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

1、使用空格

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

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

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

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

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

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

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

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

2、使用软链接

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

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

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

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

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

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

注意:不是

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

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar GenialX 来自天朝的朋友 谷歌浏览器 Mac OS X 10_13_2 北京市 联通 1

      哈哈,有点意思~

        • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器  Android 7.1.1 MIX 2 Build/NMF26X 黑龙江省哈尔滨市 联通

          @GenialX 大过年也学习啊,哈哈