如何在Linux中清除命令行历史记录
Linux中清除命令行历史记录
有很多方法可以清除命令行历史记录。
在这里我有五种方法。
1.使用"历史"命令清除整个命令行历史记录
如我们所知,"历史记录"命令将显示上次执行的命令。
要查看先前执行的命令,请运行:
$history
要清除历史记录,只需运行以下命令中的任何一个命令:
$history -c
或者
$history -cw
上面的命令将清除命令行历史记录。
2.避免在每个命令之前插入空白空间,避免在历史列表中保存命令
使用此方法,我们可以消除在历史记录列表中保存的特定命令。
在任何命令之前刚刚放置空格(从键盘点击空间列)。
该命令不会在历史记录中记录。
为此,必须将HistControl环境变量的值设置为"IgnorEspace"或者"Ignoreboth"。
编辑~/.bashrc文件:
$nano ~/.bashrc
最后添加以下行:
export HISTCONTROL=ignorespace
保存并关闭文件。
运行以下命令以生效更改。
$source ~/.bashrc
或者,只需注销并重新登录使更改生效。
要验证它,请运行几个命令。
并在任何命令前面放置一个空白空间。
我在最后一个命令中放置一个空白空间。
$clear
$uname -a
$sudo pacman -Syyu
$sudo wifi-menu
$ls
$<space>sudo ping theitroad.com
这里<space>表示空白空间。
请参阅以下屏幕截图:
现在,运行"历史"命令以查看最近执行的命令。
$history
示例输出:
3 clear 4 export HISTCONTROL=ignorespace 5 clear 6 uname -a 7 sudo pacman -Syyu 8 sudo wifi-menu 9 ls 10 history
如上所述,在历史记录命令输出中,不会显示"sudo ping theitroad.com"命令。
3.清除或者删除历史记录的特定命令
有时我们可能希望从历史记录列表中删除一些特定的命令,而不是清除整个历史记录。
我运行了以下命令。
$clear
$cal
$time
$ls
$uname -r
然后,使用命令显示历史命令输出:
$history
示例输出:
3 clear 4 cal 5 time 6 ls 7 uname -r 8 history
在上面的输出中看到,历史记录命令显示上次执行的命令。
要清除或者删除历史记录的特定命令,请使用-d标志使用命令前缀编号:
$history -d <number>
这里<number>表示每个命令的行号。
例如,要从历史记录中删除具有行"5"的"时间"命令,请运行:
$history -d 5
现在,显示命令行历史记录,以查看是否已删除该命令。
$history
示例输出:
3 clear 4 cal 5 ls 6 uname -r 7 history 8 history -d 5 9 history
如我们所见,"时间"命令已被删除。
同样,我们可以从历史记录列表中删除任何命令。
推荐下载 - 免费电子书:"在5天内学习Linux"
4.在注销时自动清除命令行历史记录
每次手动清除历史时,我们可以在注销时自动清除它。
为此,请编辑~/.bashrc文件:
$vi ~/.bashrc
添加以下行:
unset HISTFILE
保存并关闭文件。
现在,从会话注销后,历史将被清除。
5.永久删除命令行历史记录
所有上述方法只会从活动会话中删除命令,例如:当前打开的终端。
如果我们有多个终端运行不同的命令,则"历史记录"命令只会从运行此命令的位置删除历史记录。
其他终端的命令仍将可用。
要从所有会话中删除历史记录中的所有命令,我们必须删除.bash_history文件的内容。
此文件保存我们在终端中运行的命令列表。
我们可以每次手动清除此文件或者设置CRON作业以定期清除它。
要手动清除此文件的内容,请运行:
$cat /dev/null > ~/.bash_history
就像我说的那样,这将删除整个历史记录。
下次此文件将开始记录历史记录。
我们应该每天运行此命令以清除此文件的内容。
或者,我们可以使用Cron作业定期安排此任务。
为此,运行:
$crontab -e
添加以下命令:
00 20 * * * cat /dev/null > ~/.bash_history
保存和退出文件。
历史将在每天晚上8点自动清除。
为什么我们不应该清除命令行历史?
清除命令行历史记录是一个很好的做法,但是在某些情况下,我们不得清除历史。
例如,我们要经常重复特定命令。
你每次键入相同的命令吗?
没有必要。
就像我说过的那样,你在终端上运行的命令将保留在~/.bash_history文件中。
刚刚点击键盘中的上箭头,最近将出现的命令列表。
继续击中上箭头键,直到找到要运行的命令。
一旦找到要运行的命令,只需按Enter才能执行。
我们每次都不必键入整个命令。
此外,有时我们将不会记得上一届会话中的一些冗长和复杂的命令。
在这种情况下,我们可以使用"历史记录"命令来检索先前执行的命令。