Terminal
會話崩潰後恢復失去的終端命令
幾天前,我正在使用 Guake 執行一個相當長的命令(下載一個帶有
wget
復雜選項的網站)。我在手術完成之前暫停了我的筆記型電腦,並且幾天沒有使用它。不幸的是,我的電池沒電了。再次登錄後,該命令沒有出現在.bash_history
文件中,所以在使用↑
.有沒有辦法可以恢復這個命令?它可能寫在其他地方嗎?Guake 文件夾中似乎沒有與 bash 歷史記錄等效的內容。
不,您可能無法恢復該命令。預設情況下,
~/.bash_history
僅當您退出 shell 會話時才會寫入該文件。這是Bash Manual中的相關段落:當一個啟用了歷史的 shell 退出時,最後
$HISTSIZE
幾行從歷史列表複製到名為$HISTFILE
. 如果histappend
設置了 shell 選項(請參閱Bash Builtins),則將這些行附加到歷史文件中,否則將覆蓋歷史文件。如果HISTFILE
未設置,或者如果歷史記錄文件不可寫,則不保存歷史記錄。保存歷史記錄後,歷史記錄文件被截斷為不超過$HISTFILESIZE
行。如果HISTFILESIZE
未設置或設置為 null、非數值或小於零的數值,則不會截斷歷史文件。也就是說,如果您想避免這種情況在未來發生,您可以採取一些措施。您可能希望將以下內容添加到您的
~/.bash_profile
:shopt -s histappend export HISTSIZE=-1 export HISTFILESIZE=-1 PROMPT_COMMAND='history -a;history -n'
有關此主題的進一步討論,請參閱以下文章: