web-dev-qa-db-ja.com

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

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

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

31
wim

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

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

監査によってbashシェルと.bash_historyファイルをさらに保護することに懸念がある場合は、この記事を参照してください。---(履歴をログに記録する、または履歴の削除に対してbashを「保護する」方法

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

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

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

shopt -s histappend

.bashrcコマンドを使用して、必ずsource ~/.bashrcファイルを入手してください

16
Kevin Bowen

「端末の履歴を手動で保存する方法は?」という質問に対する最も簡単で実用的な答え:

history -a

setopt inc_append_history (「実行する前にすべてのコマンドを保存する」)を持つzshへの切り替えを検討することも価値があります。

そして、この質問も関連しています: 。bash_historyへの書き込みを即座に行うことは可能ですか?

36
guaka

Bash履歴をファイルに手動で保存するには:

history -w ~/history.txt
vim ~/history.txt

履歴をhistory.txtというファイルにエクスポートします。その後、お気に入りのエディターを使用して表示できます。

http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/ からコピーされた回答

21
wanderer