我希望我的.bash_history
文件無限制。例如因此,我總是可以回頭看看我是如何構建/配置某些東西的,或者那些漂亮的命令是什麼,或者幾周前某些命令是如何破壞的。我如何更改此設置?無限制Bash歷史
回答
集HISTSIZE
和HISTFILESIZE
爲空字符串:
HISTSIZE= HISTFILESIZE=
在bash 4.3 and later你也可以使用HISTSIZE=-1 HISTFILESIZE=-1
:
n. Setting HISTSIZE to a value less than zero causes the history list to be
unlimited (setting it 0 zero disables the history list).
o. Setting HISTFILESIZE to a value less than zero causes the history file size
to be unlimited (setting it to 0 causes the history file to be truncated
to zero size).
我可以將此設置全局放入全局bashrc中,以覆蓋所有用戶的設置嗎? – 2014-03-14 22:06:06
(export PROMPT_COMMAND ='history -a')可以立即刷新命令以打擊歷史記錄。 – cruelcage 2014-09-11 13:49:15
設置''HISTSIZE = HISTFILESIZE =''導致完全禁用bash歷史記錄,至少對我而言。 – 2017-02-27 07:53:32
有(至少)兩個相關的ENV瓦爾這裏:
- HISTSIZE:在歷史文件中的條目數
- HISTFILESIZE:線在歷史文件數
我認爲我們可以同意,無限制通常與相同很大(或者您是否擁有無限制的文件存儲?)。所以只需設置非常大的值。
「應該指出的是,對於非常小的無窮大值,1000000000只等於無窮大。 - sepp2k」lol。是的,我滿足於無限的小值(比如說頻繁使用終端的月份)。 – 2012-02-28 03:25:44
頻繁使用終端的月份是無窮無盡的一小部分。我會說終身使用頻繁的終身等同於非常非常非常小的無限價值。但終身使用頻繁的終身足以滿足我的shell歷史。 ;) – iconoclast 2014-07-14 14:36:58
如果將HISTSIZE和/或HISTFILESIZE設置得太大,zsh的舊版本至少會崩潰,因爲它會嘗試預先分配足夠的內存。這在運行使用zsh作爲其shell的工具(例如dbx)時變得相關。 – 2017-10-09 19:09:55
正如JörgBeyer上面提到的,HISTSIZE
和HISTFILESIZE
是關鍵。
此外,你應該肯定退房環境變量HISTCONTROL
,它可以讓你不喜歡不存儲重複歷史命令很酷的事情(HISTCONTROL=erasedups
)。如果您需要瀏覽數百行cd ..
或類似內容,則無限歷史毫無意義。
鏈接:here和。 bash變量常見問題也是worth browsing。
我grep它,但仍然,很高興知道。 – 2012-02-28 03:26:53
這些cd的行給你發出命令的上下文。它們實際上非常有用。我無法理解爲什麼有人會想要刪除它們,除非你使用歷史的唯一方法是通過一次一個命令分頁。 – iconoclast 2014-07-14 14:38:29
@simont我也在HISTCONTROL中使用了ignorespace選項,然後用它來做任何我不想寫入歷史的東西,比如密碼。 – bigtunacan 2015-11-06 15:09:26
許多大型的,醜陋的迭代和怪異的邊緣情況,多年來,我現在有一個致力於此的簡潔部分my .bashrc。
首先,您必須註釋掉或刪除您的.bashrc的這一部分(默認爲Ubuntu)。如果你不這樣做,那麼某些環境中(如跑步screen
會話)仍將截斷你的歷史:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
其次,這添加到您的.bashrc的底部:
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
注:每個命令在運行後立即寫入,所以如果你不小心粘貼了一個密碼,你不能只爲了避免寫入歷史而「殺死-9 %%」,你需要手動刪除它。
還要注意,每個bash命令將加載在內存中的全部歷史文件,但即使你的歷史文件增長到10MB(這將需要一個很長很長的時間),你不會注意到太多的效果你的bash啓動時間。
我能在全球.bashrc中把這個設置使全球它覆蓋所有用戶的設置? – 2014-03-14 22:05:09
@ user01,我想是的,你可以,我只會設置一個很大的限制。只是要確定。 – freedev 2014-06-09 09:18:40
我做了所有這些和我的日誌不斷被封頂在2000 :(可以我的版本被竊聽嗎?任何其他技巧?ubuntu 14.04,bash 4.3.11,HISTFILE =〜/ .bash_eternal_history,HISTFILESIZE = -1,HISTSIZE = -1 ,HISTTIMEFORMAT ='[%F%T]'(而不是'-1'我試過這個空選項也無濟於事。) – 2014-06-13 22:21:47
- 1. Bash提示歷史問題
- 2. 增加掠影歷史標籤限制
- 3. Google Fit API歷史記錄限制?
- 4. 歷史的歷史
- 5. 檢索bash的輸出歷史
- 6. 從結尾列舉的Bash歷史
- 7. 單更容易命令在bash歷史
- 8. 系統歷史記錄Linux 5.11(NOT BASH)
- 9. 沒有行號的Bash歷史記錄
- 10. 保存命令輸出到bash歷史
- 11. 定期推送bash歷史到github
- 12. bash的歷史CTRL + R行爲
- 13. 當前bash命令不保存歷史
- 14. sudo su後截短的bash歷史
- 15. Cygwin Bash,加載歷史文件
- 16. 無論如何要複製文件名到bash剪貼板歷史?
- 17. 如何抑制Bash歷史中的數字?
- 18. 複製沒有歷史
- 19. GWT歷史記錄機制
- 20. 控制器操作歷史
- 21. 控制ipython歷史長度
- 22. Javascript歷史記錄無效
- 23. 歷史限制在tmux中的C-l之後不工作
- 24. AWS步驟功能歷史事件的限制
- 25. Pubnub歷史消息限制超過一百
- 26. 歷史MotionEvent有沒有限制(時間或數量)?
- 27. 如何限制svn保存的歷史數量?
- 28. 如何限制HtmlUnit的歷史記錄大小?
- 29. 歷史
- 30. 歷史
http://超級用戶。com/questions/137438/how-to-unlimited-bash-shell-history – tekknolagi 2012-02-26 21:17:28
我建議將@fotinakis的答案標記爲公認的答案,因爲它更全面,涵蓋了許多奇怪的陷阱。 – 2016-09-10 23:29:05