40

まず、以下に例を示します。

shell(1) で、次のコマンドを実行しました。

$ ping google.com
PING google.com (74.125.235.164) 56(84) bytes of data.
64 bytes from nrt19s12-in-f4.1e100.net (74.125.235.164): icmp_seq=1 ttl=54 time=2.85 ms
64 bytes from nrt19s12-in-f4.1e100.net (74.125.235.164): icmp_seq=2 ttl=54 time=3.42 ms

その後、別の shell(2) を開き、履歴を確認します。

$ history
 .
 .
 .
 8720  exit
 8721  clear
 8722  history

この場合、シェルは shell(1) によって実行された履歴を見ることができませんが、すべてのシェルですべての bash 履歴を確認したいと考えています。

私の質問は、どうすればすべての bash 履歴を見ることができるでしょうか? ハッキングの方法を知っている人はいますか?

事前にどうもありがとうございました!

4

5 に答える 5

25

histappendシェルオプションと-aフラグを調べて、次のことを行う必要がありますhistory

histappend

設定されている場合、履歴リストは、ファイルをHISTFILE上書きするのではなく、シェルの終了時に変数の値によって指定されたファイルに追加されます。

history

-a 「新しい」履歴行(現在のbashセッションの開始以降に入力された履歴行)を履歴ファイルに追加します。

に入れると、常に最新のファイルが得られhistory -aます。PROMPT_COMMAND.bash_history

于 2013-02-27T16:12:38.923 に答える
6

これを試して:

.bashrc を編集して、これを末尾に追加します。

shopt -s histappend
PROMPT_COMMAND="history -n; history -a"
unset HISTFILESIZE
HISTSIZE=2000

ソース: http://subbass.blogspot.com.br/2009/10/howto-sync-bash-history-between.html

于 2013-02-27T16:36:02.687 に答える