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


13

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

私は気づいたの.bash_historyは私がして実行いくつかのコマンド持っていたsudo -s私が試したので、セッションに保存されてしまった状態でモードと再び同じしようとしたすべてのコマンドをchmod 777 .bash_history

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

事前に感謝


2
だから...あなたは正確に何を達成しようとしていますか?ここで質問をしているようには見えません:/
トーマスウォード

4
モード777は不要です。特に「実行可能」フラグとは関係ありません(デフォルトモードは600です)。~/.bash_historyあなたは(到達するために、ログアウト時に書き込まれます、新しいコマンドは、使用できるhistoryコマンド)。しかし、私も問題を見ることはできません
。– Onedinkenedi

回答:


16

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

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

4
本当に素晴らしい。5年前にこのことを知っていたのに。
-HDave

8

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



2

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

#chown user:user .bash_history

これはどうやらあなたがsudo bashたくさんやったときに起こる可能性があります!

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