在 Zsh 和 Bash 之间共享或同步历史记录

And*_*rei 13 bash command-history zsh synchronization

我经常发现自己在 Bash 和 Zsh 之间切换,并使用历史搜索功能来恢复命令。

但是,由于 Bash 和 Zsh 具有不同的历史文件,我经常发现我正在搜索的命令已在另一个 shell 中执行。

有没有办法在两者之间共享或同步历史?

Ruf*_*ufo 10

如果您使用 bash 和 zsh 的默认值:

$ cat ~/.histfile >> ~/.bash_history
$ youreditor ~/.zshrc
# Here change your config to:
HISTFILE=~/.bash_history
$ rm ~/.histfile
Run Code Online (Sandbox Code Playgroud)

现在您在两个 shell 中都有相同的历史文件。

  • 您需要执行 `unsetopt EXTENDED_HISTORY` 来获取与 bash 兼容的仅命令历史记录。 (7认同)
  • 我的 .zsh_history 有类似 `:1399608924:0;hg diff` 的行,而我的 .bash_history 只有 `hg diff`。也许是因为我正在使用 oh-my-zsh? (4认同)
  • 这真的有效吗??这两个 histfile 具有完全不同的格式! (3认同)