Ich habe Bash immer für die Arbeit benutzt und hatte nie Probleme damit. Jetzt wird kein Befehl mehr im Verlauf gespeichert. Wenn ich ein Fensterterminal öffne, versuche ich einige Befehle, es sieht so aus, als ob alles gut funktioniert hätte, und zeige mir den Verlauf mit den Pfeiltasten. Aber wenn ich das Fenster schließe (und es die Zeit ist, in der es in der .bash_history-Datei gespeichert werden soll) und ein anderes öffne, gibt es keine Anzeichen für die letzten Befehle.
Wie kann ich herausfinden, was falsch läuft? Oder setzen Sie alles von leer.
.bash_sessions_disable
und weiß, dass es zum Standardverhalten zurückkehrtAntworten:
Ich tat dies:
Fügen Sie der
.bash_profile
Datei eine Variable hinzuSHELL_SESSION_HISTORY=0
Starten Sie das Terminal neu und danach funktioniert es wie gewünscht. (Die Befehle wurden gespeichert, nachdem ich das Terminal geschlossen habe.)
PS Ich benutze auch die
HISTFILESIZE
undHISTSIZE
VariablenHISTSIZE ist die Anzahl der Zeilen oder Befehle, die in einer Verlaufsliste gespeichert werden, während Ihre Bash-Sitzung läuft.
HISTFILESIZE ist die Anzahl der Zeilen oder Befehle, die (a) zum Startzeitpunkt einer Sitzung in der Verlaufsdatei zulässig sind und (b) am Ende Ihrer Bash-Sitzung in der Verlaufsdatei gespeichert werden, um in zukünftigen Sitzungen verwendet zu werden.
quelle
Ab OS X 10.11 El Capitan wird das vom System installierte Skript
/etc/bashrc_Apple_Terminal
mit Terminal koordiniert, um separate Befehlsverläufe für jedes für Resume wiederhergestellte Terminal zu speichern / wiederherzustellen .In den Kommentaren finden Sie
/etc/bashrc_Apple_Terminal
Erklärungen zur Verwaltung und Anpassung der Befehlsverläufe pro Terminal.Wenn Sie eine Anpassung vornehmen,
PROMPT_COMMAND
müssen Sie sicherstellen, dass die Verknüpfung mit dem vorherigen Wert erfolgt, damit der vom System bereitgestellte Befehl nicht gelöscht wird:Wenn Sie einen
EXIT
Signal-Handler installieren, stellen Sietrap
sicher, dass Sie etwas Ähnliches tun (oder rufen Sie shell_session_update von Ihrem Handler aus auf, wenn Sie nicht herausfinden können, wie die Verkettung mit dem vorherigen Wert erfolgen soll - dies ist ein wenig umständlich).Wenn Sie die Shell verlassen, werden mit diesem Code neue Befehle im Protokoll des Terminals in gespeichert
~/.bash_sessions
. Um festzustellen, ob Probleme auftreten, beenden Sie die Shell manuell mitexit
(oder Control-D) , anstatt das Terminal zu schließen . Es protokolliert Statusmeldungen. Beachten Sie, wenn der Vorgang nicht abgeschlossen ist oder eine Art Warn- oder Fehlermeldung angezeigt wird.In der Regel
bashrc_Apple_Terminal
auf die Versuche zu erkennen und deaktivieren pro Sitzung Geschichte , wenn es der Benutzer sieht aus wie alle Anpassungen durchgeführt hat , die mit ihm nicht kompatibel sind. Es hört sich so an, als hättest du eines gefunden, das es nicht handhabt. Bitte denken Sie daran, einen Fehlerbericht bei Apple einzureichen : https://developer.apple.com/bug-reporting/quelle
/etc/bashrc_Apple_Terminal
PROMPT_COMMAND verwendet?"? Im letzteren Fall verweise ich auf den Code, der ausführlich dokumentiert ist. Oder Sie sollten ein weiteres Q & A darüber starten.Nur für den Fall gibt es andere gibt , die RVM (Ruby - Version Manager) installiert haben: Überprüfen Sie , ob Sie die folgende Zeile in Ihrem haben
~/.profile
,~/.bashrc
oder~/.bash_profile
Dateien.[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Das war das Problem für mich. Versuchen Sie es auskommentieren.
Quelle: Reddit
quelle
Bei einer Neuinstallation von Mac OS X (aktualisiert auf 10.13.6) wurde der Bash-Befehlsverlauf nicht gespeichert. Es gab auch keine .bashrc- oder .bash_profile-Dateien. In diesem Fall wurde das Problem durch Hinzufügen einer leeren .bashrc-Datei behoben.
Das scheint alles zu sein, was du brauchst ...
quelle
Ich hatte das selbe problem mit einem neu installierten osx mojave. Ich überprüfte meine
~/.bash_history
Akte und sah dieses:$ ls -l ~/.bash_history -rw------- 1 root staff 599 Jan 4 20:50 /Users/gilm/.bash_history
Das Problem wurde durch einfaches Zurückschieben auf Gilm behoben. Ich benutzte:
sudo chown gilm /Users/gilm/.bash_history
und das löste mein problem.
quelle
Sie können auch eine
.bash_logout
Datei mit folgenden Elementen erstellen :Von GitHub Kommentar bezogen
quelle
trap shell_session_update EXIT
einmal manuell ein und melden Sie sich ab. Es gibt Hinweise im/etc/bashrc_Apple_Terminal
Skript, die zu langweilig sind, um sie hier aufzunehmen.