Bash履歴番号は1から始まらないのですか?

Bash履歴番号は1から始まらないのですか?

bashプロンプト(私はOS X 10.7を使用しています)のカスタマイズ中に奇妙な現象が発生しました。プロンプトに!を追加すると履歴番号が表示されます。ただし、履歴番号は常に1ではなく501から始まります。端末を再起動してもこの現象が発生します。

似たようなものが見つからないようで、あなたが洞察力を提供してくれるかどうか疑問に思います。

ベストアンサー1

メンズバッシュから:

   On startup, the history is initialized from the file named by the vari‐
   able HISTFILE (default ~/.bash_history).  The file named by  the  value
   of  HISTFILE  is  truncated,  if necessary, to contain no more than the
   number of lines specified by the value of HISTFILESIZE. [...] When an 
   interactive  shell  exits, the last $HISTSIZE lines are copied from the
   history list to $HISTFILE.

テキストは非常に明確ですが、例えば説明します(これはdebシステムですが、bashはbashです)。

私の現在の記録ステータス:

~$ set | grep HIST
HISTCONTROL=ignoredups:ignorespace
HISTFILE=/home/hmontoliu/.bash_history
HISTFILESIZE=2000
HISTSIZE=1000

HISTFILESIZEは2000で、HISTSIZEは1000なので、HISTFILEの最後の1000行しか使用できないため、誤った印象を受ける可能性があります。歴史1000から始めてください。

~$ history | head -1
 1000  if i=1; then echo $i; done

~$ history | wc -l
1000

ただし、実際にはHISTFILEは最後の2000のコマ​​ンドを保存します。

 ~$ wc -l $HISTFILE
2000 /home/hmontoliu/.bash_history

これが迷惑だと思われる場合は、HISTSIZEとHISTFILESIZEのようになります。

~$ echo "export HISTSIZE=$HISTFILESIZE" >> .bashrc
~$ bash -l
~$ history | head -1
    1  ls
~$ history | wc -l
2000
~$ set | grep HIST
HISTCONTROL=ignoredups:ignorespace
HISTFILE=/home/hmontoliu/.bash_history
HISTFILESIZE=2000
HISTSIZE=2000

最後のヒント:走って利用可能でhelp historyあることを確認する必要があります。歴史

おすすめ記事