有沒有辦法影響 bash 歷史記錄的行為?

有沒有辦法影響 bash 歷史記錄的行為?

在終端機中,當您搜尋已使用的命令列時,bash 歷史記錄通常很有幫助。但有沒有辦法影響 bash 歷史記錄的行為(即保存哪些命令、保存多久、保存多少命令等等)?

答案1

有幾個變數控制歷史記錄的行為:

  • HISTCONTROL:控制如何將值保存在歷史記錄中。值ignorespace,ignoredupserasedups可以在此輸入(以冒號分隔)。
  • HISTFILE:設定歷史文件的位置。
  • HISTFILESIZE:設定歷史文件中的最大行數。
  • HISTIGNORE:有 bash 忽略的模式清單(請參閱另一個答案對於語法)。
  • HISTSIZE: 包含許多在實際 shell 中被記住的行。
  • HISTTIMEFORMAT:包含如何格式化條目的表達式(請參閱其他答案

答案2

設定歷史時間戳:

  • 預設情況下,歷史記錄不附加時間戳,但很容易配置它顯示時間戳,只需要設定一個環境變量歷史時間格式

    export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

  • 再次執行history查看結果。 替代文字
  • 如果您不想將命令保存在歷史記錄中,那麼

    export HISTSIZE=0

變數:

  • HISTFILE - 控制歷史檔案的儲存位置。
  • HISTFILESIZE - 控制在 HISTFILE 中保留多少歷史指令。
  • HISTSIZE - 控制在目前會話的歷史清單中保留多少歷史指令。
  • HISTIGNORE - 控制忽略哪些指令而不儲存到歷史清單。

筆記:

  • 一旦關閉終端,您的設定就會~/.bashrc丟失~/.bash_aliases

答案3

你可以添加一行像

export HISTFILESIZE=5000

增加~/.bashrc歷史記錄的大小。預設情況下,不儲存以空格開頭的命令。這是因為export HISTCONTROL=ignoreboth預設情況下 ubuntu 中全域啟用了該功能。

您也可以忽略以lwhich開頭的命令

export HISTIGNORE="l*:which*"

答案4

有一種方法可以告訴歷史而不是記住命令:只需以空格開頭。還有一個非常簡單的方法來檢索特定命令:鍵入 CTRL+R 和您正在搜尋的命令中的一個單字。

當然有一種方法可以增加預設歷史記錄,預設為 500 行...但我不知道如何,抱歉!

相關內容