访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

如何隐藏你的Linux的命令行历史

时间:2019-08-13

linux命令手册_linux命令_linux命令

如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中。然而,有方法可以控制哪些命令进入历史列表,哪些不进入吗?或者换句话说,我们在 Linux 终端中可以开启像浏览器一样的无痕模式吗?答案是肯定的,而且根据你想要的具体目标,有很多实现方法。

如果你是%20Linux%20命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中。原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权。亦或者有些特别重要的命令,你不希望在你浏览历史列表时误执行。

如果我们不想让别人看到我浏览过什么网页,我们可以设置浏览器无痕浏览,下面小编就告诉大家怎么设置搜狗浏览器无痕浏览方法。列表页包括文章的列表页与产品的列表页,这种做法便于用户挑着浏览,选择自己感兴趣的浏览,所以列表页的展现形式,要吸引用户的目光,采用图文结合的形式,文章显示标题跟描述就可以了,并不需要挤压在一起,影响浏览舒适度,避免文章堆砌,视觉疲劳。%20终端动销的所有工作和方法,集结成清单列表,学会使用这个工具,对镜自检,寻找终端动销方法。

注意:文中出现的所有命令都在%20Ubuntu%20下测试过。

不同的可行方法

前面两种方法已经在之前一篇文章中描述了。如果你已经了解,这部分可以略过。然而,如果你不了解,建议仔细阅读。

1.%20在命令前插入空格

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

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

[space]echo "this is a top secret"

如果你之前执行过如下设置环境变量的命令,那么上述命令不会出现在历史记录中。

export HISTCONTROL = ignorespace

下面的截图是这种方式的一个例子。

第四个%20"echo"%20命令因为前面有空格,它没有被记录到历史中。

2.%20禁用当前会话的所有历史记录

如果你想禁用某个会话所有历史,你可以在开始命令行工作前简单地清除环境变量%20HISTSIZE%20的值即可。执行下面的命令来清除其值:

export HISTSIZE=0

HISTSIZE 表示对于 bash 会话其历史列表中可以保存命令的个数(行数)。默认情况,它设置了一个非零值,例如在我的电脑上,它的值为 1000。

所以上面所提到的命令将其值设置为 0,结果就是直到你关闭终端,没有东西会存储在历史记录中。记住同样你也不能通过按向上的箭头按键或运行 history 命令来看到之前执行的命令。

3. 工作结束后清除整个历史

这可以看作是前一部分所提方案的另外一种实现。唯一的区别是在你完成所有工作之后执行这个命令。下面是刚说到的命令:

history -cw

刚才已经提到,这个和 HISTSIZE 方法有相同效果。

4. 只针对你的工作关闭历史记录

虽然前面描述的方法(2 和 3)可以实现目的,它们可以清除整个历史linux命令,在很多情况下,有些可能不是我们所期望的。有时候你可能想保存直到你开始命令行工作之间的历史记录。对于这样的需求,你开始在工作前执行下述命令:

linux命令_linux命令手册_linux命令

[space]set +o history

备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。

上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。