Bash
重用和修改條目時如何停止 bash 編輯歷史記錄?
當您重新使用和編輯先前的命令時,某些 bash 實例會更改命令歷史記錄,而其他實例顯然不會。我一直在搜尋和搜尋,但找不到任何說明如何防止歷史記錄中的命令在被重用和編輯時被修改的內容。
有這樣的問題,但這似乎是在說如何應對正在編輯的歷史。我最近才遇到一個 bash 實例,它在您重用命令時會編輯歷史記錄——我以前使用過的所有 bash shell(據我所知)都被配置為在重用時不更改歷史記錄並編輯命令。(也許在過去 15 年左右的時間裡,我一直沒有適當關注我的 shell 歷史……)
所以這可能是最好的問題:我可以告訴 bash 永遠不要修改歷史記錄嗎?如果可以,怎麼做?
原來
revert-all-at-newline
是答案。我需要包含set revert-all-at-newline on
在我的~/.inputrc
文件中,因為set
在 bash 提示符下使用該命令無效。(然後,當然,我必須啟動一個新的 shell。)另外,我發現它
~/.inputrc
被載入而不是/etc/inputrc
如果存在,這意味著後者中定義的任何預設值在您創建~/.inputrc
. 要解決此問題,請~/.inputrc
從$include /etc/inputrc
.感謝@StéphaneChazelas 為我指明了正確的方向。