私はいつもbashを仕事に使ってきましたが、それでも問題はなかったです。現在、コマンドは履歴に再び保存されません。ウィンドウターミナルを開いていくつかのコマンドを試すと、すべてが正常に機能し、矢印キーを使用して履歴を表示するように動作します。しかし、ウィンドウを閉じて(そして.bash_historyファイルに保存することになっている)、別のウィンドウを開いた場合、最後のコマンドの兆候はありません。
何が間違っているのかを知るにはどうすればよいですか?または、すべてを空白から再設定します。
私はいつもbashを仕事に使ってきましたが、それでも問題はなかったです。現在、コマンドは履歴に再び保存されません。ウィンドウターミナルを開いていくつかのコマンドを試すと、すべてが正常に機能し、矢印キーを使用して履歴を表示するように動作します。しかし、ウィンドウを閉じて(そして.bash_historyファイルに保存することになっている)、別のウィンドウを開いた場合、最後のコマンドの兆候はありません。
何が間違っているのかを知るにはどうすればよいですか?または、すべてを空白から再設定します。
回答:
これは私がしました:
.bash_profile
ファイルに変数を追加する
SHELL_SESSION_HISTORY=0
ターミナルを再起動し、その後、希望どおりに動作します。(端末を閉じた後にコマンドを保存しました)
PS私はまたHISTFILESIZE
、HISTSIZE
変数を使用します
HISTSIZEは、bashセッションの進行中に履歴リストのメモリに保存される行またはコマンドの数です。
HISTFILESIZEは、(a)セッションの起動時に履歴ファイルに許可される行またはコマンドの数であり、(b)将来のセッションで使用するためにbashセッションの終了時に履歴ファイルに保存されます。
以降OS X 10.11エルキャピタン、システムにインストールスクリプト/etc/bashrc_Apple_Terminal
のために復元された端末ごとに個別のコマンド履歴を保存/復元するために、ターミナルとの座標を再開。
/etc/bashrc_Apple_Terminal
端末ごとのコマンド履歴の管理方法とカスタマイズ方法の説明については、コメントをお読みください。
カスタマイズPROMPT_COMMAND
する場合は、システムが提供するコマンドを削除しないように、必ず前の値に連結してください。
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }your_code_here"
EXIT
シグナルハンドラーをインストールする場合は、trap
同様のことを行ってください(または、以前の値に連結する方法がわからない場合は、ハンドラーからshell_session_updateを呼び出してください。少し複雑です)。
シェルを終了すると、このコードは新しいコマンドを端末の履歴に保存します~/.bash_sessions
。問題が発生したかどうかを確認するには、ターミナルを閉じる代わりにexit
(またはControl-D)でシェルを手動で終了します。進捗メッセージを記録します。完了していない場合、または何らかの警告またはエラーメッセージが表示されている場合は注意してください。
一般に、bashrc_Apple_Terminal
ユーザーが互換性のないカスタマイズを実行したように見える場合、セッションごとの履歴を検出して無効にしようとします。処理できないものを見つけたようです。Appleにバグレポートを提出することを検討してください:https : //developer.apple.com/bug-reporting/
/etc/bashrc_Apple_Terminal
PROMPT_COMMANDを何のために使用するのですか?」という意味ですか?後者の場合、詳細に文書化されているコードを参照します。または、それについて別のQ&Aを開始する必要があります。
trap shell_session_update EXIT
1回入力してログアウトします。/etc/bashrc_Apple_Terminal
スクリプトには、ここに含めるにはあまりにも退屈な手がかりがあります。