SunOS 5.10 中多個 PuTTy 會話的命令歷史記錄

SunOS 5.10 中多個 PuTTy 會話的命令歷史記錄

我有多個 PuTTy 會話向我的 SunOS 5.10 伺服器打開,並且我使用 ksh,有時命令歷史記錄在不同會話之間共享,有時則不然。我無法弄清楚是什麼決定了它是否共享。我所說的共享是指在一個會話中運行的命令將被視為在另一個會話中運行的上一個命令。

我不希望它被共享,有相關的配置設定嗎?

答案1

大多數 Unix shell 都會從檔案中讀取一次舊歷史記錄(當 shell 啟動時),當您關閉該 shell 時,歷史記錄會再次寫入檔案。

通常舊的內容會被簡單地覆蓋,所以如果你做類似的事情...

  1. 登入會話 A 和 B
    • A和B讀到的內容相同~/.history
  2. test在A中 運行命令
    • A 新增了test它的記憶體歷史記錄
    • B 不知道該指令
  3. 從A註銷
    • A 會覆蓋~/.history其歷史記錄,test
  4. 登入會話C
    • C 讀取~/.history,的內容test
  5. 從 B 註銷
    • B~/.history用它的歷史覆蓋,它沒有test
  6. 從 C 註銷
    • C~/.history用它的歷史覆蓋,test

然後test將在步驟#3之後保存到歷史文件中,但步驟#5將丟棄它,步驟#6將再次添加它...

有些 shell 有一個「附加歷史記錄」選項可以避免這種情況(例如shopt -s histappend在 Bash 中)。

如果您想要擁有完全獨立的歷史記錄,一個簡單的方法是將您的歷史文件符號連結到/dev/null.

相關內容