个性化阅读
专注于IT技术分析

Linux中的HISTCONTROL命令及示例

在Linux中, history命令可用于显示最近已执行的命令列表。 HISTCONTROL变量是用冒号分隔的值列表, 用于控制如何在历史记录列表中保存命令。 HISTCONTROL变量使我们可以更有效地存储bash历史记录。它可用于忽略重复的命令或带前导空格的命令, 或两者都忽略。

HISTCONTROL命令的用途:

  • 在命令行上工作时, 多次执行了多个命令。默认的”历史记录”大小为500。因此, 存储多个命令将浪费内存。尽管可以使用HISTFILESIZE更改默认的历史记录大小, 但是消除重复项是有利的。这可以使用HISTCONTROL来实现。
  • 当我们不希望某些命令出现在”历史记录”中时, 可以使用HISTCONTROL变量来完成。我们可以通过在命令之前留一个空格来指示历史记录忽略该命令。

使用HISTCONTROL命令

1.忽略这将导致不包括与先前历史记录条目匹配的行。如果它与前一个命令相同, 则不会在历史记录中添加命令。在历史记录列表中, 它看起来并不遥远。

HISTCONTROL=ignoredups

执行此命令后的历史记录将不会存储与最近使用的命令相同的命令。考虑以下命令在使用ignoreups之后按顺序添加:

pwd
whoami
date
pwd
pwd
whoami

当连续输入两个pwd命令时, 第二个命令将被忽略并且不会添加到历史记录中。但是, 如果前一个命令不是pwd, 则不会被忽略。

组织控制

2.ignorespace:导致以空格字符开头的行不包含在历史记录列表中。如果我们不希望命令包含在历史记录中, 则可以在命令之前使用空格字符, 以避免将其包含在历史记录列表中。

HISTCONTROL=ignorespace

考虑到以下命令是在使用ignorespace之后按顺序添加的, 并且我们不想包含date命令, 因此可以在其前面添加空格字符:

pwd
whoami
date
ls -l | wc -l

由于date命令前有一个空格, 因此它不会出现在历史记录列表中。

histcontrol忽略空间

3.忽略:当我们要同时使用ignorespace和ignoreups时使用。

HISTCONTROL=ignoreboth

它与:

HISTCONTROL=ignorespace:ignoredups

历史记录将不包括带有前导空格字符和重复项的命令。请考虑在使用ignoreboth之后依次添加以下命令:

whoami
pwd
pwd
pwd

只有一个pwd命令被添加到历史列表中, 因为一个pwd命令前面有一个空格字符, 而另一个与历史列表中包含的最新命令相同。

histcontrol都忽略

4.擦除:它允许在保存该行之前从历史记录列表中删除与当前行匹配的所有先前行。无论多行HISTCONTROL的值如何, 多行复合命令的第二行和后续行都不会经过测试, 并且会添加到历史记录中。其语法为:

HISTCONTROL=erasedups

使用此命令后的历史记录将不会存储任何重复的元素。执行命令后, 它将与其他最近执行的命令进行匹配, 然后再将其附加到历史记录中;如果找到匹配项, 则该命令将被忽略并且不会存储在历史记录中。考虑以下命令在使用好擦除后依次添加:

pwd
whoami
date
ls -l | wc -l
pwd
whoami

whoami和pwd命令已经使用了两次, 但是在实施擦除操作后, 不会两次附加到历史记录中。输出如下图所示:

hsicontrol擦除转储

赞(0) 打赏
未经允许不得转载:srcmini » Linux中的HISTCONTROL命令及示例
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏