コマンド履歴リコールの数を設定する方法


15

私はbashを使用しています。コマンド履歴を閲覧するにhistoryは、同じ名前のGnuプログラムを呼び出していると思われるコマンドを呼び出しています。(bash固有のより良い方法があるかどうかはわかりません)。

現在、.bashrcには、export PROMPT_COMMAND='history -a'実行中の複数のbashセッションの履歴を保存する行があります。

履歴を作成すると、現在524エントリしか表示されません。これは構成可能ですか?これをもっと大きな数、たとえば2000に増やしたいと思います。

回答:


19

まず第一に、history あるのbashの特定の方法はどれも良く、。このhistoryコマンドは、次のコマンドを実行することで確認できるように、組み込みのbashです

$ type history 
history is a shell builtin

現在、覚えているコマンドの数はHISTSIZE変数によって制御されています。それをより大きな数に設定するには、この行をに追加します.profile(なぜこれがより良い場所であるかについては、こちらを.bashrc参照してください):

export HISTSIZE=2000

これ以降、history実行した最後の2000コマンドが返されます。


5

はい、man bash言います:

HISTSIZE-コマンド履歴に記憶するコマンドの数

しかし、Readline変数があります:history-size

履歴リストに保存される履歴エントリの最大数を設定します。ゼロに設定すると、既存の履歴エントリは削除され、新しいエントリは保存されません。ゼロ未満の値に設定すると、履歴エントリの数は制限されません。デフォルトでは、履歴エントリの数は制限されていません。

あなたは、設定することができhistory-sizeHISTSIZE=1000bind 'set history-size 1000'またはあなたに次の行を持ちます~/.inputrcset history-size 1000

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-size以降で利用可能bash-4.0-alphaCHANGES


2

HISTSIZE変数のおもむくままにはどのように多くのコマンドで実行履歴に保持され、HISTFILESIZE実行中の歴史から多くのコマンドは、シェルが終了後に保存されている方法を決定します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.