web-dev-qa-db-ja.com

Bashコマンド履歴が機能しない

セッション間のコマンド履歴は保存されません。私はグアケを使用していますが、セッションの履歴は正常に機能しています。

。bash_historySudo -sモードで実行したコマンドがいくつかあり、同じことをもう一度試してみたところ、セッション中のすべてのコマンドが保存されたので、chmod 777 .bash_historyを試しました。

これで、セッションの開始時に古いコマンドが表示されますが、新しいコマンドは保存されません

事前に感謝

13
user12663

Bashはシェルが終了した後にのみ履歴を.bash_historyファイルに保存するため、コマンドは表示されません。これはGuakeではほとんど発生しません。 簡単な回避策 があり、すべてのコマンドの後にBashに(ファイルを上書きする代わりに)履歴を追加します

shopt -s histappend
Prompt_COMMAND="history -a;$Prompt_COMMAND"
15
Adam Byrtek

通常、これが壊れるのは、.bash_historyファイルを作成する前にコマンドをSudoする場合です。ユーザーではなくrootが所有して作成されるためです。

8
khamer

http://mywiki.wooledge.org/BashFAQ/088 を参照してください。履歴行が失われないようにする方法と、そうすることによる副作用の説明があります。

3
geirha

また、root:rootが.bash_historyを所有している場合もあります(ルートは所有者ではなく、ユーザーが所有者であるべきです!)、その場合は、次のことを行う必要があります。

#chown user:user .bash_history

これは、Sudo bash alotを実行すると発生するようです。

2
mahatmanich