Bash-Verlauf bleibt zwischen Terminalsitzungen auf dem Mac nicht erhalten

Bash-Verlauf bleibt zwischen Terminalsitzungen auf dem Mac nicht erhalten

Mein Bash-Verlauf funktioniert auf mysteriöse Weise nicht mehr und ich habe keine Ahnung, wie ich das beheben kann. So sieht meine .bashrc aus:

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history

Wenn ich es jedoch ausführe, echo $HISTFILEwird es ausgedruckt /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew.

Ich bin der Eigentümer der Datei .bash_history und bin mir daher nicht ganz sicher, wie ich dieses Problem beheben soll.

Danke!

Antwort1

Terminal weist jeder Terminalsitzung eine eindeutige Kennung zu und kommuniziert diese über die Umgebungsvariable TERM_SESSION_ID, sodass in einem Terminal ausgeführte Programme anwendungsspezifische Zustände speichern/wiederherstellen können, wenn Terminal mit aktivierter Fortsetzen-Funktion beendet und neu gestartet wird.

Ein neuer Ordner (~/.bash_sessions/) wird zum Speichern von HISTFILES und .session-Dateien verwendet, die für Sitzungen eindeutig sind.

Beim Start der Shell wird die Sitzungsdatei ausgeführt. Alte Dateien werden regelmäßig gelöscht.

Das Standardverhalten sieht das Speichern und Wiederherstellen des Bash-Befehlsverlaufs unabhängig für jede wiederhergestellte Terminalsitzung vor. Außerdem werden Befehle für neue Sitzungen in den globalen Verlauf integriert.

Sie können dieses Verhalten deaktivieren und einen einzelnen Verlauf freigeben, indem Sie Folgendes festlegen:

export SHELL_SESSION_HISTORY=0

Wenn HISTTIMEFORMAT definiert ist, ist der Sitzungsverlauf standardmäßig deaktiviert (lesen Sie mehr in /private/etc/bashrc_Apple_Terminal).

Der Speicher-/Wiederherstellungsmechanismus ist deaktiviert, wenn die folgende Datei vorhanden ist:

~/.bash_sessions_disable

Apple hat seit der Veröffentlichung von El Capitan bereits einige Verhaltensweisen geändert, daher ist es besser, hier mehr darüber zu lesenless /private/etc/bashrc_Apple_Terminal

Antwort2

Mir ist nach dem El Capitan-Upgrade etwas Ähnliches aufgefallen. Durch einfaches Hinzufügen der Datei .bash_sessions_disablein Ihrem Home-Verzeichnis werden die neuen Bash-Sitzungen deaktiviert und die Datei .bash_historyist wieder einsatzbereit.

DasReddit-Threadhat mehr Infos und weitere Links.

Antwort3

Sie können das RVM-Problem lösen, indem Sie auf die neueste RVM-Version aktualisieren oder Folgendes ausführen:

  echo 'shell_session_update' > $HOME/.bash_logout

Sehenhttps://github.com/rvm/rvm/issues/3540Für mehr Information.

Antwort4

Wenn es ein Mac ist, ist die Standard-Anmeldeshell vermutlich bashund wird .profileanstelle von ausgeführt .bashrc. Sie haben also die falsche Datei bearbeitet.

verwandte Informationen