bash 履歴の動作に影響を与える方法はありますか?

bash 履歴の動作に影響を与える方法はありますか?

ターミナルでは、すでに使用したコマンドラインを検索するときに、bash 履歴が役立つことがよくあります。しかし、bash 履歴の動作 (つまり、どのコマンドが保存されるか、保存される期間、保存されるコマンドの数など) に影響を与える方法はありますか?

答え1

履歴の動作はいくつかの変数によって制御されます。

  • HISTCONTROL: 履歴に値を保存する方法を制御します。ここにはignorespace、、、ignoredupsの値erasedupsを入力できます (コロンで区切ります)。
  • HISTFILE: 履歴ファイルの場所を設定します。
  • HISTFILESIZE: 履歴ファイルの最大行数を設定します。
  • HISTIGNORE: bashが無視するパターンのリストがあります(もう一つの答え構文についてはこちらをご覧ください。
  • HISTSIZE: 実際のシェルに記憶される行数が含まれます。
  • HISTTIMEFORMAT: エントリのフォーマット方法を表す式が含まれます(その他の回答

答え2

履歴のタイムスタンプの設定:

  • デフォルトでは、履歴にはタイムスタンプは追加されませんが、タイムスタンプを表示するように設定するのは簡単です。環境変数を1つ設定するだけです。履歴時間フォーマット

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

  • 結果を確認するには、履歴を再度実行してください。 代替テキスト
  • コマンドを履歴に保存したくない場合は、

    export HISTSIZE=0

変数:

  • HISTFILE - 履歴ファイルが保存される場所を制御します。
  • HISTFILESIZE - HISTFILE に保持する履歴コマンドの数を制御します。
  • HISTSIZE - 現在のセッションの履歴リストに保持する履歴コマンドの数を制御します。
  • HISTIGNORE - どのコマンドを無視し、履歴リストに保存しないかを制御します。

注記:

  • ターミナルを閉じると設定は失われます。そのため、設定を永続的に保持したい場合は、上記のコマンドを または に追加する必要があり~/.bashrcます~/.bash_aliases

答え3

次のような行を追加できます

export HISTFILESIZE=5000

履歴のサイズを増やすには、 を使用します~/.bashrc。デフォルトでは、スペースで始まるコマンドは保存されません。これは、export HISTCONTROL=ignorebothUbuntu でデフォルトでグローバルに有効になっている によるものです。

lまたはwhichを使用して始まるコマンドを無視することもできます。

export HISTIGNORE="l*:which*"

答え4

履歴にコマンドを記憶させないようにする方法があります。スペースで始めるだけです。特定のコマンドを取得する非常に簡単な方法もあります。CTRL+R と検索するコマンドの単語を入力します。

デフォルトでは 500 行であるデフォルトの履歴を増やす方法は確かにありますが、方法がわかりません。申し訳ありません。

関連情報