在Linux中, history命令可用于显示最近已执行的命令列表。 HISTCONTROL变量是用冒号分隔的值列表, 用于控制如何在历史记录列表中保存命令。 HISTCONTROL变量使我们可以更有效地存储bash历史记录。它可用于忽略重复的命令或带前导空格的命令, 或两者都忽略。
HISTCONTROL命令的用途:
- 在命令行上工作时, 多次执行了多个命令。默认的” 历史记录” 大小为500。因此, 存储多个命令将浪费内存。尽管可以使用HISTFILESIZE更改默认的历史记录大小, 但是消除重复项是有利的。这可以使用HISTCONTROL来实现。
- 当我们不希望某些命令出现在” 历史记录” 中时, 可以使用HISTCONTROL变量来完成。我们可以通过在命令之前留一个空格来指示历史记录忽略该命令。
1.忽略这将导致不包括与先前历史记录条目匹配的行。如果它与前一个命令相同, 则不会在历史记录中添加命令。在历史记录列表中, 它看起来并不遥远。
HISTCONTROL=ignoredups
执行此命令后的历史记录将不会存储与最近使用的命令相同的命令。考虑以下命令在使用ignoreups之后按顺序添加:
pwdwhoamidatepwdpwdwhoami
当连续输入两个pwd命令时, 第二个命令将被忽略并且不会添加到历史记录中。但是, 如果前一个命令不是pwd, 则不会被忽略。
文章图片
2.ignorespace:导致以空格字符开头的行不包含在历史记录列表中。如果我们不希望命令包含在历史记录中, 则可以在命令之前使用空格字符, 以避免将其包含在历史记录列表中。
HISTCONTROL=ignorespace
考虑到以下命令是在使用ignorespace之后按顺序添加的, 并且我们不想包含date命令, 因此可以在其前面添加空格字符:
pwdwhoamidatels -l | wc -l
由于date命令前有一个空格, 因此它不会出现在历史记录列表中。
文章图片
3.忽略:当我们要同时使用ignorespace和ignoreups时使用。
HISTCONTROL=ignoreboth
它与:
HISTCONTROL=ignorespace:ignoredups
历史记录将不包括带有前导空格字符和重复项的命令。请考虑在使用ignoreboth之后依次添加以下命令:
whoamipwdpwdpwd
只有一个pwd命令被添加到历史列表中, 因为一个pwd命令前面有一个空格字符, 而另一个与历史列表中包含的最新命令相同。
文章图片
4.擦除:它允许在保存该行之前从历史记录列表中删除与当前行匹配的所有先前行。无论多行HISTCONTROL的值如何, 多行复合命令的第二行和后续行都不会经过测试, 并且会添加到历史记录中。其语法为:
HISTCONTROL=erasedups
使用此命令后的历史记录将不会存储任何重复的元素。执行命令后, 它将与其他最近执行的命令进行匹配, 然后再将其附加到历史记录中;如果找到匹配项, 则该命令将被忽略并且不会存储在历史记录中。考虑以下命令在使用好擦除后依次添加:
pwdwhoamidatels -l | wc -lpwdwhoami
【Linux中的HISTCONTROL命令及示例】whoami和pwd命令已经使用了两次, 但是在实施擦除操作后, 不会两次附加到历史记录中。输出如下图所示:
文章图片
推荐阅读
- OpenCV中的直方图均衡介绍和代码示例
- 算法设计(公路广告牌问题解决和代码实现)
- 2021年8个顶级Node.js框架推荐,Web开发必备干货!
- 如何在JavaScript中实现HashMap(详细实现指南)
- 删除不必要的启动条目并加快启动速度的4个工具
- 如果有智慧公交可视化平台,《开端》还能无限重启吗()
- 用于Windows关机,休眠,睡眠或重启的8个免费工具
- 用于防止Windows关机,休眠,睡眠或重启的8个免费工具
- Linux之RPM包管理_安装升级与卸载