我一直使用bash進行工作,從來沒有遇到過問題。現在,它不再在歷史記錄中保存任何命令。如果我打開一個窗口終端,請嘗試一些命令,它看起來一切正常,並使用箭頭鍵向我顯示歷史記錄。但是,如果我關閉窗口(並且應該將其保存在.bash_history文件中的時間)並打開另一個窗口,則沒有最後一個命令的跡象。
如何查找出什麼問題了?或從空白重新設置所有內容。
我一直使用bash進行工作,從來沒有遇到過問題。現在,它不再在歷史記錄中保存任何命令。如果我打開一個窗口終端,請嘗試一些命令,它看起來一切正常,並使用箭頭鍵向我顯示歷史記錄。但是,如果我關閉窗口(並且應該將其保存在.bash_history文件中的時間)並打開另一個窗口,則沒有最後一個命令的跡象。
如何查找出什麼問題了?或從空白重新設置所有內容。
我這樣做:
將變量添加到 .bash_profile
文件
SHELL_SESSION_HISTORY = 0
重新啟動終端,然後按我的意願運行。(我在關閉終端后保存了命令)
P.S。我還使用了 HISTFILESIZE
和 HISTSIZE
變量
HISTSIZE是在bash會話中存儲在歷史記錄列表中的行數或命令數
HISTFILESIZE是(a)在會話啟動時歷史文件中允許的行或命令的數量,以及(b)在您的末尾存儲在歷史文件中的行或命令的數量bash會話以供將來使用。
從 OS X 10.11 El Capitan 開始,系統安裝的腳本 / etc / bashrc_Apple_Terminal
與Terminal配合使用,以便為恢復的每個終端保存/恢復單獨的命令歷史記錄恢復。
閱讀 / etc / bashrc_Apple_Terminal
中的註釋,以獲取有關如何管理每終端命令歷史記錄以及如何對其進行自定義的說明。
如果您自定義 PROMPT_COMMAND
,請確保將其串聯到以前的值,這樣就不會清除系統提供的命令:
PROMPT_COMMAND =“ $ {PROMPT_COMMAND:+ $ PROMPT_COMMAND;}您的代碼在這裡”
如果您使用 trap
安裝 EXIT
信號處理程序,請確保做類似的事情(或者,如果您不知道如何連接到先前的值,則從處理程序中調用shell_session_update,這有點麻煩)。
退出shell時,此代碼將保存新命令到終端在 exit
(或Control-D)手動退出外殼。它記錄進度消息。請注意它是否未完成,或者是否顯示任何警告或錯誤消息。
通常, bashrc_Apple_Terminal
會嘗試檢測和禁用每個會話的歷史記錄,例如用戶執行了與之不兼容的任何自定義。聽起來您可能發現了一個無法處理的問題。請考慮向Apple提交錯誤報告: https://developer.apple.com/bug-reporting/
以防萬一其他人安裝了RVM(Ruby版本管理器):檢查以查看〜/ .profile
,〜/中是否包含以下行。bashrc
或〜/ .bash_profile
文件。
[[-s“ $ HOME / .rvm / scripts / rvm”]] &&源“ $ HOME / .rvm / scripts / rvm”
RVM可能阻止bash_sessions運行的退出“鉤子”。
那是我的問題。嘗試將其註釋掉。
來源: Reddit
在全新安裝的Mac OS X(更新至10.13.6)上,未保存bash命令歷史記錄。也沒有.bashrc或.bash_profile文件。在這種情況下,只需添加一個空的.bashrc文件即可為我修復。
touch .bashrc
這似乎就是您所需要的...
新安裝的osx Mojave也有同樣的問題。我檢查了〜/ .bash_history
文件,並看到了:
$ ls -l〜/ .bash_history
-rw ------- 1個root員工599 Jan 4 20:50 /Users/gilm/.bash_history
只需將其重新編織回gilm即可解決問題。我用過:
sudo chown gilm /Users/gilm/.bash_history
這解決了我的問題。
您還可以使用以下內容創建一個 .bash_logout
文件:
shell_session_update