端末の履歴を手動で保存する方法は?


33

ターミナルが終了すると履歴ファイルが更新されることを理解しています。しかし、時々コンピューターがクラッシュし、ターミナルがきれいに終了しないことがあります。そして、履歴からこれらのコマンドを失い、迷惑です。どうすればすぐにフラッシュして、コンピューターがメルトダウンしてもエントリがそこに残るようにできますか?現時点ではこの回避策を使用していますが、もっと良い方法があるはずです。

Ubuntu 12.10でgnome-terminalを使用しています。

回答:


17

スーパーユーザーのサイトから提供したリンクの回答は、必ずしもhistoryコマンドのデフォルトの動作に対する「回避策」と見なされるべきではありません。bashシェルには、すぐに使えるデフォルトの動作があります。

履歴行が失われないようにする方法を読むことを強くお勧めします。これらの変更が何をしているのかの説明についてはhistory。さらに、これがhistoryコマンドのデフォルトの動作ではない理由について注意すべき合理的な懸念事項がいくつかあります。

  • パフォーマンス-すべてのウィンドウのすべてのコマンドをで保存しているためhistory -a.bash_historyファイルは非常に大きくなり、bashシェルをロードするためにより多くのリソースが必要になります。これにより、起動時間が長くなる可能性があります(システム全体の起動ではなく、ターミナルセッション自体)。

  • 組織-(上記の記事から)「(特定のユーザーの)同時対話型シェルの履歴コマンドは絡み合います。したがって、単一シェルで実行されたため、履歴はコマンドの保証された連続リストではありません。」

bashシェルと。bash_historyファイルを監査する場合は、この記事をご覧ください:履歴をログに記録するにはどうすればよいですか?

ときどき(不安定なシステムや電源障害など)、以下のコマンドが役立つことがわかりました。

~/.bashrcファイルに次の行を追加します。

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

.bashrcコマンドを使用してファイルをソースしてくださいsource ~/.bashrc



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.