ターミナルが終了すると履歴ファイルが更新されることを理解しています。しかし、時々コンピューターがクラッシュし、ターミナルがきれいに終了しないことがあります。それから、履歴からこれらのコマンドが失われ、面倒です。どうすればすぐにフラッシュして、コンピューターがメルトダウンしてもエントリがそこに残るようにできますか?現時点では this 回避策を使用していますが、より良い方法があるはずです。
Ubuntu 12.10でgnome-terminalを使用しています。
スーパーユーザーサイトから提供されたリンクの回答は、history
コマンドのデフォルトの動作に対する「回避策」とは限りません。 bashシェルには、すぐに使えるデフォルトの動作があります。
history
へのこれらの変更が何をしているのかの説明については、 履歴行を失うことを避けるにはどうすればよいですか を読むことを強くお勧めします。さらに、これがhistory
コマンドのデフォルトの動作ではない理由について注意すべき合理的な懸念事項がいくつかあります。
パフォーマンス-すべてのウィンドウのすべてのコマンドをhistory -a
で保存しているため、.bash_history
ファイルは非常に大きくなり、bashシェルをロードするためにより多くのリソースが必要になります。これにより、起動時間が長くなる可能性があります(システム全体の起動ではなく、ターミナルセッション自体)。
組織 上記の記事から)」(特定のユーザーの)同時対話型シェルの履歴コマンドは絡み合います。したがって、履歴は、実行されたコマンドの保証された連続リストではありません単一のシェルで。」
監査によってbashシェルと.bash_history
ファイルをさらに保護することに懸念がある場合は、この記事を参照してください。---(履歴をログに記録する、または履歴の削除に対してbashを「保護する」方法
時々(不安定なシステムや電源障害など)、以下のコマンドが役立つことがわかりました。
~/.bashrc
ファイルに次の行を追加します。
unset HISTFILESIZE
HISTSIZE=3000
Prompt_COMMAND="history -a"
export HISTSIZE Prompt_COMMAND
shopt -s histappend
.bashrc
コマンドを使用して、必ずsource ~/.bashrc
ファイルを入手してください
「端末の履歴を手動で保存する方法は?」という質問に対する最も簡単で実用的な答え:
history -a
setopt inc_append_history
(「実行する前にすべてのコマンドを保存する」)を持つzshへの切り替えを検討することも価値があります。
そして、この質問も関連しています: 。bash_historyへの書き込みを即座に行うことは可能ですか?
Bash履歴をファイルに手動で保存するには:
history -w ~/history.txt
vim ~/history.txt
履歴をhistory.txtというファイルにエクスポートします。その後、お気に入りのエディターを使用して表示できます。
http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/ からコピーされた回答