セッションの競合後に失われた端末コマンドの回復

セッションの競合後に失われた端末コマンドの回復

数日前、私はGuakeを使用して、やや長いコマンド(wget複雑なオプションセットを含むWebサイトをダウンロードするために使用されます)を実行しました。手術をする前は、ノートブックをぶら下げて数日間使用しませんでした。残念ながら、バッテリーが放電しました。再度ログインした後は命令がファイルに出ないので.bash_history、使用時のグアケや他の端末では表示されません

このコマンドを復元する方法はありますか?おそらく他の場所に書かれていませんか? Guakeフォルダにはbash履歴と同等のものがないようです。

答え1

いいえ、コマンドを復元できない可能性があります。デフォルトでは、~/.bash_historyファイルはシェルセッションを終了したときにのみ記録されます。これはから来たものですバッシュマニュアル:

書き込み可能シェルが終了すると、最後の数行が履歴$HISTSIZEリストから名前付きファイルにコピーされます$HISTFILEhistappendシェルオプションが設定されている場合(参照:Bash 組み込み機能)、この行は履歴ファイルに追加されます。それ以外の場合は、履歴ファイルが上書きされます。HISTFILE設定しない、または履歴ファイルに書き込めない場合、履歴は保存されません。履歴が保存されると、履歴ファイルは行のみを含むように切り捨てられます$HISTFILESIZE。設定しないか、null、数値以外の値、またはゼロより小さい数値に設定すると、HISTFILESIZE履歴ファイルは切り捨てられません。

つまり、今後このようなことが発生しないようにするには、できることがいくつかあります。次のものを次のように追加できます~/.bash_profile

shopt -s histappend
export HISTSIZE=-1
export HISTFILESIZE=-1
PROMPT_COMMAND='history -a;history -n'

このトピックの詳細については、次の投稿をご覧ください。

関連情報