私のbashの履歴が不思議なことに機能しなくなったので、どうすれば修正できるかわかりません。これは私の.bashrcのようになります:
HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
ただし、echo $HISTFILE
を実行すると、/Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew
が出力されます。
私は.bash_historyファイルの所有者なので、この問題をどのように修正すればよいかわかりません。
ありがとう!
端末は各端末セッションに一意の識別子を割り当て、TERM_SESSION_ID環境変数を介してそれを通信します。これにより、端末で実行されているプログラムは、Resumeを有効にして端末を終了および再起動するときに、アプリケーション固有の状態を保存/復元できます。
新しいフォルダー(〜/ .bash_sessions /)は、セッションに固有のHISTFILEおよび.sessionファイルを格納するために使用されます。
シェルの起動中に、セッションファイルが実行されます。古いファイルは定期的に削除されます。
デフォルトの動作では、復元されたターミナルセッションごとに、bashコマンド履歴を個別に保存および復元します。また、新しいセッションのコマンドをグローバル履歴にマージします。
この動作を無効にして、次の設定で単一の履歴を共有できます
export Shell_SESSION_HISTORY=0
HISTTIMEFORMATが定義されている場合、セッションごとの履歴はデフォルトで無効になっています(/ private/etc/bashrc_Apple_Terminalで詳細をご覧ください)
次のファイルが存在する場合、保存/復元メカニズムは無効になります。
~/.bash_sessions_disable
El Capitanのリリース以降、Appleはすでに一部の動作を変更しているため、こちらで詳細を読むことをお勧めしますless /private/etc/bashrc_Apple_Terminal
El Capitanのアップグレード後も同様のことがわかりました。 .bash_sessions_disable
ファイルをホームディレクトリに追加するだけで、新しいbashセッションが無効になり、.bash_history
が再び使用できるようになります。
この Redditスレッド には、より多くの情報とリンクがあります。
RVMの問題を解決するには、最新のRVMバージョンに更新するか、これを実行します。
echo 'Shell_session_update' > $HOME/.bash_logout
詳細は https://github.com/rvm/rvm/issues/354 を参照してください。
Redditスレッド からのこの回答は私を救いました:
おそらくRVMが、bash_sessionsを実行するための出口「フック」を妨げているためです。 .bash_profileの次の行をコメント化すると、機能するはずです。
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Macの場合、デフォルトのログインシェルはbash
であり、.profile
の代わりに .bashrc
。そのため、間違ったファイルを編集していました。
私はハイシエラでこの問題を見ていました。どういうわけか、私自身の.bash_historyはrootによって所有され、他のユーザーの読み取り権限さえ持っていませんでした(ls -alでホームディレクトリの内容を表示した場合)
この.bash_historyファイルには何の影響もなかったため、Sudo rm .bash_historyを実行してから、touch .bash_historyを実行して新しいファイルを作成しました。
今はすべて順調に見えます