Command-History

在多個終端視窗中保留 tcsh 歷史記錄

  • January 29, 2022

我們如何跨多個終端保存或維護相同的歷史記錄?

在下面的連結中討論了相同的問題,但對於 bash shell

在多個終端視窗中保留 bash 歷史記錄

讓我知道 tcsh shell 的相應設置?

這些變數將歷史記錄設置為合併而不是覆蓋,並且不保存重複項:

set history=1000
set histdup=erase
set savehist=(1000 merge)

秘訣是這一行:

alias precmd 'history -S; history -M'

這將在列印提示之前保存並合併您的歷史記錄 - 即在您鍵入的每個命令之後。

以上所有內容都應添加到您的***.tcshrc***文件中。

除了Idan answer之外,我還想補充一點,它alias precmd 'history -S; history -M'可能會弄亂歷史文件,因為它還記錄 SIGINT 和 EOF 信號(Ctrl+C 和 Ctrl+D)。

在此處輸入圖像描述

更好的方法是在執行命令後保存並合併目前的 shell 歷史記錄。

您可以通過下面的設置來實現它,因為 tcsh 不將 SIGINT 或 EOF 辨識為有效命令。

alias postcmd       "history -S; history -M"

引用自:https://unix.stackexchange.com/questions/88838