向上箭头和 .bash_history 有不同的命令,那么向上箭头从哪里获取数据?

cel*_*sel 4 bash history

我似乎发现该~/.bash_history文件不包含使用向上箭头时显示的内容。我通过执行这样的命令发现了这一点

smbclient -L 10.2.10.240 -umyuser -p"mypassword on the command line is bad" 
Run Code Online (Sandbox Code Playgroud)

这个命令实际上是错误的,它有一个错误,-u实际上应该是a -U,所以这个命令失败了。

但是我也意识到这样做不好,因为它会将您的密码放入历史记录中,我进入.bash_history并且有趣的是它没有错误。它只有

smbclient -L 10.2.10.240 
Run Code Online (Sandbox Code Playgroud)

就是这样。但这会变得很奇怪,如果您使用向上箭头,则整个命令包括错误都可供您编辑。

所以问题是,为什么里面的内容.bash_history和向上箭头显示的内容之间存在差异?向上箭头数据在哪里?

在你指出之前;在这种情况下它非常方便,因为它阻止了我的密码被保存,但是,这不是它这样做的原因,我还使用正确的选项对其进行了测试,然后它确实保存了包括密码在内的整个命令。

fal*_*ner 6

~/.bash_history文件仅在您关闭/退出终端时更新。当您在终端中时,您可以在该会话中输入的命令中向后浏览。因此,如果您退出该终端会话,您的历史记录将使用丢失的命令进行更新。

此外,如果您在一行的开头在命令之前放置一个空格,则该命令将不会保存在历史记录中。如果您发出不想包含在历史记录中的命令,这是一个很好的做法。