Linux 中删除历史记录不留痕迹

您所在的位置:网站首页 清除终端记录 Linux 中删除历史记录不留痕迹

Linux 中删除历史记录不留痕迹

#Linux 中删除历史记录不留痕迹| 来源: 网络整理| 查看: 265

Linux 中删除历史记录不留痕迹

本教程介绍如何在 Linux 中删除 bash 历史记录而不留下痕迹。

您可以使用 history 命令查看您的 bash 历史记录。如果运行它,将显示所有用户历史记录,如下所示。

history

默认情况下,bash 历史记录位于用户主目录中的 .bash_history 文件中。就我而言,用户是 linux-console,要使用 cat 查看历史记录,我运行:

cat /home/linux-console/.bash_history

注意:您可以通过运行以下命令了解历史文件位置。

echo $HISTFILE在 Linux 中不留痕迹地删除历史记录

 删除命令行活动历史记录很简单,而且实现方法很少。第一种方法使用上面显示的 history 命令,后跟 -c(清除)选项,如图所示在下面的屏幕截图中。

history -c

可以看到,运行history -c后,如果我们再次运行不带选项的history命令,除了当前命令之外,不会有任何输出。

history

删除 bash 历史记录的另一种方法是删除位于用户主目录中的隐藏 .bash_history 文件。

由于我们想要删除命令行历史记录而不留下任何痕迹,所以我们要这样做,以便恢复历史文件是不可能的。为此,我们需要安装wipe工具。

要在基于 Debian 的 Linux 发行版上安装 wipe,请运行:

sudo apt install wipe

现在擦除已安装,您可以安全地删除 .bash_history 文件,而不会恢复它。

wipe ~/.bash_history

现在,您的 .bash_history 文件已完全擦除,但当您注销并以同一用户身份重新登录时,该文件将再次自动生成以记录将来的命令。在本教程的最后,您将找到有关防止 .bash_history 文件记录命令的说明。

从.bash_history 文件中删除特定行

 假设,像大多数 Linux 用户一样,您在重复命令时使用 .bash_history ,但您想要删除特定错误。在某些情况下,某些用户可能会在其终端中输入密码;这是极不安全的。

在下面的截图中,我们可以看到 7 个命令。

假设您只想删除第六个命令(wipe .bash_history)。为此,您可以使用 history -d 命令,后跟要删除的行,如下所示。

history -d 6

正如您所看到的,该命令已被删除,但您需要使用 history 命令后跟 -w 来写入更改 标志,如下所示。

history -w

现在您要删除的特定行已被删除。

您还可以删除行范围。以下示例演示如何删除从特定行开始的特定行数。下面的命令将从第 40 行开始删除 10 行。如果要删除 10 行以外的数字,请将数字 10 替换为要删除的行数。将数字 40 替换为您希望行范围开始的行。

for i in {1..10}; do history -d 40; done关闭 bash 历史记录

 本教程部分介绍了禁用 bash 历史记录的不同方法。

如果您只想禁用当前 shell 的 bash 历史记录,请运行以下命令。

set +o history

正如您所看到的,运行 set+o History后,该命令是最后记录的,这意味着没有记录此后键入的命令,包括history命令用于检查结果。

您可以通过运行以下命令查看历史记录是否已启用。

set -o | grep history

注意:您可以通过运行以下命令来重新启用 bash 历史记录。

set -o history

要永久禁用 bash 历史记录,请运行以下命令将规则 set +o History 添加到您的 .bashrc 文件。 .bashrc 文件存储终端会话的配置,包括 shell 历史记录以及其他功能。

echo 'set +o history' >> ~/.bashrc

如您所见,在 .bashrc 文件底部,现在您将看到 set+o 历史记录 已添加规则。

less .bashrc

通过运行 .bashrc 文件应用更改,如下所示。

sh .bashrc

要禁用整个系统的历史记录,请使用 root 权限运行以下命令来取消设置 HISTFILE 变量。

echo 'unset HISTFILE' >> /etc/profile.d/nohistory.sh

注意:如果您想恢复 shell 活动历史记录,可以删除您刚刚在 /etc/profile.d 下创建的文件。

您还可以为新用户或未来用户禁用 bash 历史记录,为现有用户保留它。要实现它,请运行以下命令。

echo 'set +o history' >> /etc/profile

要撤消上一个命令并恢复 bash 历史记录,您需要从 /etc/profile 中删除 set+o 历史记录 文件

nano /etc/profile

删除突出显示的行(最后一行包含 set+o History 命令)。

 将其更改为:

限制 bash 历史记录大小

 有 2 个变量限制 bash 历史记录大小,即 $HISTFILESIZE 和 $HISTSIZE 变量。它们之间的区别在于 $HISTFILESIZE 定义将保存到磁盘并在会话结束后保留的行数。第二个变量 $HISTSIZE 定义将保存在历史记录中但在关闭会话后不会保留的行数。

要查看历史记录中保存的行数,请在关闭会话后运行以下命令。

echo $HISTFILESIZE

如您所见,关闭并重新登录后,我的历史记录将保留我最后的 100 个命令。

要更改保存到磁盘的行数,请运行以下命令。

HISTFILESIZE=50

注意:50 是您希望在关闭会话后保留在历史记录中的行数。将其替换为您想要的行数。

如您所见,现在您的历史记录将最后 50 个命令保存到磁盘。

运行以下命令可查看在同一会话中注销之前保存的行数。

echo $HISTSIZE

如您所见,您的会话历史记录记录了您最近的 500 个命令。

要更改 $HISTSIZE 运行:

HISTSIZE=50

现在您的会话将保留您最后的 50 个命令。

结论

正如您所看到的,删除 bash 历史记录或其中的特定内容非常容易,包括对于新的 Linux 用户而言。当您远程工作并需要保证活动安全时,了解如何删除历史记录尤其重要。在某些情况下,用户可能会在终端上错误地输入密码,从而留下敏感信息。在某些情况下,一些管理员可能会选择完全禁用此功能。然而,bash 历史记录是一个出色的功能,它可以帮助我们通过按键轻松地重复命令。

我希望这篇解释如何在 Linux 中不留痕迹地删除历史记录的教程对您有所帮助。继续关注 Linux Hint 以获取更多 Linux 技巧和教程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3