如何实现,以便输入的每个命令在每个打开的终端的历史记录中都可见?
打开多个终端时,历史不会共享,即您在一个终端历史中输入的内容不会显示在另一个终端中。考虑 Bash 的替代方案 PROMPT_COMMAND="history -a"(在显示提示之前保存历史记录)。
据我了解,当终端退出时,历史文件会更新。但有时我的电脑崩溃了,终端没有干净地退出,然后我从我的历史记录中丢失了那些令人讨厌的命令。我怎样才能让它立即刷新,这样即使我的计算机出现故障,条目仍然会出现在那里?目前我正在使用这种解决方法,但我觉得应该有更好的方法。
我在 Ubuntu 12.10 上使用 gnome-terminal。
几周前我创建了一个 Ubuntu 虚拟机,从那时起就一直在做项目。
现在我想找到我一周前在终端中输入的一些命令的语法,但我已经打开和关闭了终端窗口并多次重新启动了机器。
如何让history命令返回到我创建机器后输入的第一个命令?
或者所有命令都存储在Ubuntu中的另一个地方?
我似乎发现该~/.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和向上箭头显示的内容之间存在差异?向上箭头数据在哪里?
在你指出之前;在这种情况下它非常方便,因为它阻止了我的密码被保存,但是,这不是它这样做的原因,我还使用正确的选项对其进行了测试,然后它确实保存了包括密码在内的整个命令。