当前位置:首页>弱电技术>系统运维>在 Linux 上隐藏历史记录

在 Linux 上隐藏历史记录

在 Linux 上隐藏历史记录

Linux 上的历史命令可用于显示和重新运行您使用过的命令,它还可以帮助您隐藏您不想记住的命令。

像 bash 这样的 Linux shell 有一种方便的方式来记住您键入的命令,从而可以轻松地再次运行它们,而无需重新键入它们。只需使用历史命令(它是 bash 内置命令),然后使用感叹号,后跟要重新运行的历史命令输出中命令前面显示的数字。

或者,您可以根据需要多次按向上箭头键以到达该命令,然后按回车键,从而返回到该命令。不过,请不要忘记,您还可以通过在~/.bashrc文件中添加这样的行来设置您可能经常使用的命令作为别名,这样您就不需要在命令历史记录中搜索它们。这是一个例子:

$ alias users="who | awk '{print \$1}'"
$ users
myacct
shs
shs
$ alias uusers="who | awk '{print \$1}' | uniq"

上面的别名将显示登录的用户。第二个删除重复项。将命令添加到~/.bashrc文件中,以便在每次登录时进行设置。

使用历史命令可以更轻松地重用命令并避免拼写错误。然而,有一些方法可以让 Linux 忽略您输入的一些命令,这样您的历史缓冲区就不会被您不希望它记住的命令填满——特别是如果这些命令会占用大量空间的话。你的历史缓冲区。

命令历史记录还可以帮助解决问题,因为您可以获得问题出现之前运行的命令的列表。

需要记住多少

$HISTSIZE设置控制将记住多少命令。如果您只想在历史缓冲区中记住最近的 100 行,您可以运行如下命令:

$ export HISTSIZE=100

一般来说,$HISTSIZE默认为 1,000 个命令。通过运行如下命令来检查它:

$ echo $HISTSIZE
1000

如果您希望历史记录更多或更少的命令,请更改~/.bashrc文件中的设置。

忽略特定命令

您可以通过将某些命令添加到$HISTIGNORE变量来防止将它们保存在历史缓冲区中。在下面显示的设置中,pwd、date、history和clear命令将被忽略,因为这些命令不太可能使用命令历史记录重新运行。

$ export HISTIGNORE='pwd:date:history:clear'
$ pwd
/home/myacct
$ history
$ history | tail -1
   86  pwd
   87  history | tail -1

但请注意,历史| 上面显示的tail -1命令被捕获,但不是其本身输入的历史命令。

忽略重复的命令

如果您连续多次键入某个命令,并且您的$HISTCONTROL设置包含字符串“ignoredups”(即忽略重复项),则对于每个重复序列您只会看到该命令一次。

$ echo hello
hello
$ pwd
/home/myacct
$ pwd
/home/myacct
$ who | wc -l
4
$ pwd
$ history | tail -5
   79  echo hello
   80  pwd		<== was run twice, but is shown once
   81  who | wc -l
   82  pwd
   83  history | tail -6

忽略前面有空格输入的命令

您还可以选择让历史缓冲区不记住您在按空格键后运行命令时输入的任何命令 – 例如,如果您键入“date”而不是“date”。这允许您让命令历史记录忽略任何命令,而无需在$HISTIGNORE设置中单独设置每个命令。

事实上,如果您希望命令历史记录忽略以空格开头的两个命令以及连续输入的重复命令,则这些设置中的任何一个都会执行相同的操作。将它们添加到您的~/.bashrc文件中以使它们永久存在。

  $ export HISTCONTROL="ignoredups:ignorespace"
  $ export HISTCONTROL="ignoreboth"

需要明确的是,“ignoreboth”设置意味着忽略顺序输入时的重复命令以及前面带有空格输入的命令。

您的历史文件

命令历史记录文件由$HISTFILE设置标识,但很少是除了.bash_history之外的任何内容。请注意,您刚刚输入的命令尚未添加到此文件中。

$ echo $HISTFILE
/home/shs/.bash_history

下面的命令将添加到我的历史缓冲区中,但请注意,当我要求查看.bash_history文件的底部时,它不会显示 。

$ echo byebye for now
byebye for now
$ tail -1 ~/.bash_history
tail -2 ~/.bash_history

但下次登录时,我会看到:

$ tail -1 ~/.bash_history
echo byebye for now

决定要在命令历史记录文件中记住哪些命令以及要忽略哪些命令可以提高命令历史记录的有用性 – 特别是如果您不想扫描数百个记住的命令来查找要返回的少数命令。我希望这篇文章的某些部分能给您留下一些好主意,使您的命令历史记录更有价值。

本文由 @熊大 发布于弱电智能网 。

题图来自Unsplash,基于CC0协议

内容观点仅代表作者本人,弱电智能网平台仅提供信息存储空间服务。

如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章名称:《在 Linux 上隐藏历史记录》

文章链接:https://www.ruodian360.com/tech/sytemops/49877.html

添加微信ydian188免费入群,记得备注“弱电智能网”。

给TA打赏
共{{data.count}}人
人已打赏
系统运维

如何解决Windws系统虚拟内存不足的问题?

2023-8-22 22:31:00

系统运维

如何确定 Linux 系统的文件系统类型

2023-9-1 22:37:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索