Command-Line

如何為同一使用者的不同會話擁有單獨的命令歷史記錄?

  • February 2, 2017

我在一些 Unix 伺服器上遇到了這個問題。當我為同一使用者打開不同的會話時,命令歷史記錄由所有會話共享。Ctrl-P如果我錯誤地按下或up arrow然後按下 Enter,這會產生問題。有一次我最終執行,rm -rf *幸好我在我沒有權限刪除文件的目錄中。

如何為同一使用者的不同會話擁有單獨的命令歷史記錄?大多數時候我都在使用 ksh 和 tcsh shell。

ksh 常見問題解答

Q1。如何獲取 shell 的單獨歷史文件?

A1。ksh 對使用相同歷史文件名的所有 shell 使用共享歷史文件。這意味著在一個視窗中輸入的命令將被其他視窗中的 shell 看到。要獲得單獨的視窗,需要在創建第一個歷史命令之前將 HISTFILE 變數設置為不同的名稱。

您可以添加HISTFILE=~/.hist$$到您的.profile. 這應該為每個會話生成一個唯一文件。

你最終會得到大量的,.hist*所以我建議你偶爾刪除它們。

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