Bashの記録が一貫していない

Bashの記録が一貫していない

この Debian Jessie のインストールでは、Bash の記録は Gnome 端末で一貫して動作しないようです。

$ echo $USER
me
$ echo $HISTFILE
/home/me/.bash_history
$ grep browser ~/.bash_history 
browser-sync start
$ history | grep browser
 2071  grep browser ~/.bash_history 
 2073  history | grep browser

browser-syncファイルの行はかなり~/.bash_history古いです。つまり、現在のターミナルセッションよりはるかに古いです。なぜ結果に表示されないのですかhistory | grep browser

答え1

デフォルトでは、~/.bash_history対話型セッションは終了時にディスクに書き込まれます。つまり、同時シェルがオンの場合最近終了しましたシェルセッションはその履歴をディスクに書き込みます。

(技術的には、すべてのセッションはディスクに書き込まれますが、2つの同時セッションは別のセッションの履歴を知らないので、1つのセッションが終了したときに何を書きますか?それ新しい記録が次のように考えられ、他の記録が終了すると記録されます。それ歴史)

バラよりhttps://unix.stackexchange.com/a/1292/20246詳細については。

答え2

この$HISTSIZE変数の値が低すぎます。明らかな不一致は、値を十分に増やすことで解決できます$HISTSIZE

これバッシュマニュアルよく説明しません。

歴史的規模

履歴リストに記憶するコマンドの最大数。値が 0 の場合、コマンドは履歴リストに保存されません。 0より小さい値を使用すると、各コマンドは履歴リストに制限なく保存されます。シェルは起動ファイルを読み込んだ後、デフォルト値を 500 に設定します。

ここより良い説明は次のとおりです。

HISTSIZE(500)のデフォルト値は、保存されたレコードの小さな部分のみをロードします(保存されたレコードが500行より大きい場合)。

関連情報