这里有一个类似的问题,但我想实现一些不同的东西:我想在会话之间共享历史记录,但不将在不同会话中执行的命令混合在一起。
例如,假设我有两个 shell 会话:A 和 B。我在 A 中键入了一些命令:
A$ ls ~
A$ ls /etc
在 B 中:
B$ git status
B$ git log
当我输入history
一个 shell 时,我想在其他 shell 的命令之后一起查看这个 shell 的所有命令-这样我总是可以使用 uparrow 从当前 shell 获取最后一个命令。换句话说,在外壳 A 中应该显示history
git status
git log
ls ~
ls /etc
在 shell B 中它应该显示
ls ~
ls /etc
git status
git log
这个怎么做?
似乎没有内置的解决方案,但事实证明手动实现它并不难。必须分别存储每个会话的历史记录并在每次提示时重新创建它(它不像听起来那么慢)。这是核心逻辑:
请参阅此要点以获取完整的解决方案,包括一些保护措施和性能优化。