Command-History
扭曲的歷史
在gui模式下,當一個使用者打開了多個終端時,終端如何重寫該使用者的歷史文件?我問的原因是,很可能在每個終端中,使用者最終都會執行不同的命令。那麼,歷史文件最終是保存來自所有終端的命令還是只保存第一個要打開的終端的命令?或者是否有其他類型的方案可以用來解決這種情況?
這完全取決於外殼選擇如何處理它
bash
預設情況下,當它退出時,它將用每個 shell 的本地歷史記錄覆蓋歷史文件,因此最後一個退出的 shell 獲勝。該**histappend
**選項將導致它改為附加到主歷史記錄 (shopt -s histappend
)。
zsh
預設情況下也是如此,並且有一些處理它的選項:
appendhistory
– 當 shell 退出時,每個 shell 的歷史都會附加到主歷史文件中incappendhistory
– 每次在任何 shell 中執行一行時都會更新主歷史文件,而不是等到該 shell 退出sharehistory
– Likeincappendhistory
, 但也將更改從主歷史文件拉到所有正在執行的 shell 中,因此您可以在一個 shell 中執行命令,然後Up
在另一個 shell 中點擊並查看它