可能性のある複製:
履歴ファイルをbashで統合できますか?
Ubuntu Server 9.10を使用していますが、複数のターミナルセッションのbash履歴を確認したいと思います。つまり私が最後にログアウトした場合でも、最後の200コマンド程度。
history
を使用すると、実際のターミナルセッションからのすべてのコマンドが表示されます。 Bashからより多くのコマンド履歴を表示するにはどうすればよいですか? Ubuntuのデフォルト値から変更する必要があるbashの特定の設定はありますか?
~/.bash_history
ファイル。しかし、私は~/.bashrc
とHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
およびHISTCONTROL=ignoreboth
echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
UPDATE:現在、VirtualBoxでUbuntu Server 10.10を試しています。 shutdownコマンドを使用せずにVirtualBoxをオフにすると、次回の起動時に、最後のセッションのコマンドが履歴ファイルに保存されません。
コマンドは、shutdownコマンドでマシンをシャットダウンした場合にのみ保存されます。例えば。シャットダウン-P 0。
これが私の問題の原因であるに違いありません。したがって、コマンド履歴をより頻繁に保存する方法を理解する必要があります。例えば。各コマンドの後。
使用できます
history -a
メモリ内履歴を履歴ファイルにすぐに追加します。これが行われるか、または他のセッションが終了しない限り、1つの端末セッションは別のセッションを見ることができません。
使用できます
history 200 | less
そのエントリ数を確認します。
HISTSIZE
に加えて、HISTFILESIZE
に関するBash manページのエントリを参照してください。
ログアウトすると、履歴がファイル~/.bash_history
に追加されます。そちらをご覧ください。
デフォルトでは、最後の500コマンドを記憶します。さらに保存する場合は、~/.bashrc
に変数HISTSIZE
を設定します。
また、ignoredups
をHISTCONTROL
に追加します(HISTCONTROL=$HISTCONTROL:ignoredup
を使用)。これにより、重複する連続したコマンドが1回だけ保存されます。
man 1 bash
で、履歴について他に調整できることを確認してください。
bashの履歴は通常、シェルの実行開始時にロードされ、通常の終了時に保存されます。 history -a
とhistory -n
を使用してこれをオーバーライドできますが、$Prompt_COMMAND
または同様のものを乱用しない限り、自動的にはオーバーライドできません。
Sanoj、これは本当に「うまくいく」はずです。これを可能にするためにあなたがする必要がある特別な何かがあるはずではないと思います。何かが通常のイベントの進行を妨げているようです。
/ etc/profile、/ etc/bashrc(またはいくつかのソースによるとおそらく/etc/bash.bashrc)、~/.bash_profile、~/.bashrc、~/.bash_login、~/.bash_logoutを見て、履歴に影響している可能性があるものがある場合(おそらく上記の各ファイルでgrep -i hist
)。
...特に、ファイルを削除する何かが〜/ .bash_logoutにあるかどうか疑問に思います。
または、何かが$HOME
変数をオーバーライドしている可能性はありますか?