Mein Bash-Verlauf wird gespeichert, wenn ich mich über SSH mit meinem Mac verbinde, iTerm2 verwende oder bash
in der integrierten Terminal-App starte (jeder von mir eingegebene Befehl bash
wird gespeichert), aber nicht, wenn ich nur die integrierte Terminal-App verwende. Ich habe bereits versucht, die Profile im Terminal zurückzusetzen. Ich habe auch den Besitz und die Berechtigungen von überprüft .bash_history
. Später habe ich auch versucht, diese Datei zu löschen. Auch diese Antwort hat nicht geholfen. Meine Standard-Shell ist definitiv bash
.
Beginnen Sie mit der Isolierung der Problemquelle, indem Sie alle Anpassungen des Bash-Verlaufs entfernen. Beispielsweise jeder Code, der Shell-Variablen setzt, die mit beginnen HIST
, oder verwendet set -o
, um entweder die Shell-Optionen history
oder festzulegen.histexpand
Der Befehlsverlaufscode pro Sitzung versucht, die /etc/bashrc_Apple_Terminal
Kompatibilität mit den Verlaufsvariablen von Bash aufrechtzuerhalten, und versucht zu erkennen, wenn der Benutzer wahrscheinlich etwas tut, mit dem er nicht kompatibel sein kann, und deaktiviert den Mechanismus in diesem Fall (weil der Benutzer etwas Willkürliches tut). , wie das Laden, Speichern oder Ändern des Verlaufs). Wenn Sie jedoch Skripte haben, die den history
Befehl ausführen, hat dieser Code keine Möglichkeit, dies im Voraus zu wissen. Sie müssen entweder Ihren Code aktualisieren, um die Kompatibilität mit dem neuen Befehlsverlauf pro Sitzung aufrechtzuerhalten, oder den Verlauf pro Sitzung deaktivieren, indem Sie die Einstellung SHELL_SESSION_HISTORY=0
wie in der Dokumentation in beschrieben vornehmen /etc/bashrc_Apple_Terminal
.
Wenn Sie HISTFILE
, HISTTIMEFORMAT
oder die histappend
Shell-Option nicht anpassen, sollten Sie außerdem prüfen, ob Ihre Shell-Startskripte entweder die PROMPT_COMMAND
Variable oder den EXIT
Trap ändern, ohne den vorherigen Wert zu verketten, um ihn nicht zu löschen.
In den Kommentaren finden Sie /etc/bashrc_Apple_Terminal
eine Beschreibung, wie der Mechanismus funktioniert und wie Sie ihn anpassen oder deaktivieren können.
Siehe diese Antwort von einer ähnlichen Frage. El Capitan hat einige Änderungen vorgenommen, wodurch versucht wird, eine sitzungsabhängige Geschichte zu erstellen. Sie können Ihr Problem wahrscheinlich beheben, indem Sie einfach ausführen, touch ~/.bash_sessions_disable
um eine Flag-Datei zu erstellen, um dieses Verhalten zu deaktivieren.
kein Hang
Benutzer162962
Benutzer162962
Seitenschausteller
Jari Türkei
Jari Türkei
~/.bash_profile
mitSHELL_SESSION_HISTORY
hat nichts gebracht. Das Problem bestand darin,.bash_history
Berechtigungen zu haben-rw------- root staff
, die von festgelegt wurden/etc/bashrc_Apple_Terminal
. Ein bisschenchown
ing hat es gelöst. Jetzt funktioniert die Geschichte mit iTerm2.