似ている5000行の制限の問題最初のことがあるとき.bashrc私は持っ
export HISTSIZE=10001
ています
export HISTFILESIZE=$HISTSIZE
私のユーザーにはファイルがなく、~/.inputrc
システム全体の/etc/inputrc
ファイル(Ubuntu 11.10のデフォルトと変更されていません)には定義がありませんhistory-size
。マニュアルページには、readline
ヒントを提供する以外にデフォルト値は表示されません。(0)または無制限。
history -w
ただし、最後のセッションでより多くの独自のコマンドラインを追加したり、ログアウトせずに保存したにもかかわらず、ログインするたびにプロンプトに5000個しか表示されません。
この制限はどこに設定されており、これを克服するには?
私のヒントやその他の興味深い設定は、以下で提供されます。~/.bashrcまたはファイルソース:
PS1='\u@\h\w \d,\t\$ (\!) '
HISTCONTROL=erasedups:ignorespace
HISTSIZE=10001
export HISTIGNORE="[ ]*:&:bg:fg:exit"
export HISTFILESIZE=$HISTSIZE
export PROMPT_COMMAND="history -a"
shopt -s histappend
HISTTIMEFORMAT="%Y-%m-%d_%H-%M-%S "
shopt -s histreedit
ヒントの例:
master@quant~/dev Mon Feb 27,10:08:29$ (5721)
いくつかのコメントに答えるには:
# to unpollute from other concurrent sessions, which previously already truncated file to 5000 at login:
master@ventana~ Mon Feb 27,18:47:35$ (9220) history -w
master@ventana~ Mon Feb 27,18:51:34$ (9220) history |wc
9219 69109 795143
master@ventana~ Mon Feb 27,18:51:51$ (9220) wc -l ~/.bash_history
18442 /home/master/.bash_history
# ignoring timestamps, nominally every other line like #1328201645
master@ventana~ Mon Feb 27,18:51:58$ (9220) grep -vc "^#[0-9]\{10\}$" .bash_history
9222
答え1
私はこれについての動作理論を持つことができます。
私は昔
HISTSIZE=10001
しかし、 ~/.bash_history の実際の行は次のようになります。
#1341908063
w;df
#1341908291
wizmo reboot!
#1341909327
sc stop uxsms; sleep 1; sc start UxSms
つまり、私のHISTTIMEFORMAT="%Y-%m-%d_%H-%M-%S "
シェルの設定により、他のすべての行はタイムスタンプです。
したがって、5000のコマンドを記録するには、ファイルに10000行が必要です。
これで制限を HISTSIZE=20001 に設定しました。
最後に、私のプロンプトに5000以上の歴史的なコマンドが残っていることを確認しました。後ろに新しいログイン。