相关疑难解决方法(0)

在多个终端窗口中保留 bash 历史记录

我一直有不止一个终端打开。从两个到十个,做各种各样的点点滴滴。现在假设我重新启动并打开另一组终端。有些人记得某些事情,有些人忘记了。

我想要一段历史:

  • 记住每个终端的一切
  • 可以从每个终端立即访问(例如,如果我ls在一个终端,切换到另一个已经运行的终端,然后按下,ls显示)
  • 如果命令前面有空格,不要忘记命令。

我能做些什么让 bash 更像那样工作?

bash command-history

633
推荐指数
14
解决办法
23万
查看次数

为什么在 Bash 中将 histappend 设置为 off 时历史不会覆盖而是追加?

几天前,我有一个终端选项卡在做ssh,另一个在本地做很多工作。然后我重新启动了机器(在带有 Mavericks 的 Mac 上)。

当我再次运行终端时,我发现第二个选项卡的所有命令历史记录都不存在。只有ssh命令。

然后我搜索了如何以某种方式“合并”历史记录,发现我们需要shopt -s histappend在我们的~/.bashrc文件中做一个,以便历史记录将追加,而不是“覆盖”——我们不希望一组历史记录覆盖另一组放; 我们要追加。

但是,当我转到 OS X Yosemite 框并使用 时shopt,我看到它histappend已关闭,但是当我打开两个选项卡,一个执行echo abc另一个执行echo def并退出它们时,我再次重新打开终端并发出history命令,并且看到了echo abcecho def命令。

然后我在 VirtualBox 上运行 Ubuntu 2014-10 并做了类似的事情,并且仍然看到两个历史记录(我首先shopt -u histappend在两个 Bash 中运行以先将选项设置为关闭)。

那么究竟是什么机制在这样做呢?那么histappend就没有意义了,是开还是关都无所谓?

我还在shopt -s histappend我的.bashrc终端中注释掉并重新启动并再次尝试,并看到两个选项卡的历史能够组合......所以这真的很奇怪,是什么导致了它?

bash command-history shopt

10
推荐指数
1
解决办法
2151
查看次数

如何仅获取当前 shell 进程的命令历史记录?

在 bash shell 中,当我运行 时history,它提供所有命令的历史记录,不仅是在当前 shell 中键入的命令,还包括在先前 shell 中键入的命令的历史记录。到目前为止,如何获取仅在当前 shell 中键入的命令的历史记录?当您想查找已知已在当前 shell 中键入的命令时,这很有用。谢谢。

bash command-history

2
推荐指数
1
解决办法
1485
查看次数

标签 统计

bash ×3

command-history ×3

shopt ×1