在终端中输入的任何命令(可能正确或错误)都存储在文件中~/.bash_history
,然后使用命令显示这些命令history
。
但是history
命令无法存储先前输入的命令。sudo!!
它存储的是其功能,而不是命令。^bad^good
sudo!!
^bad^good
例如,
sudo apt-gat update
^gat^get
之后,history
命令的输出为,
sudo apt-gat update
sudo apt-get update
history
这是什么原因呢?
答案1
在下面的例子中,
sudo apt-gat update
^gat^get
^gat^get
gat
是一种快捷方式,用于将上一个命令中的 替换为get
,然后运行更正后的命令。
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-gat update
[sudo] password for avinash:
sudo: apt-gat: command not found
avi@avi-Lenovo-IdeaPad-Z500:~$ ^gat^get
sudo apt-get update
Ign http://mirror.sov.uk.goscomb.net saucy InRelease
Ign http://liveusb.info all InRelease
在上面的第二段代码块中,您可以看到更正后的命令sudo apt-get update
,然后它会运行。
因此,该命令会按顺序history
显示错误的命令sudo apt-gat update
,然后显示更正的命令。它不会显示,因为它是一个sudo apt-get update
^gat^get
捷径。