Ich arbeite an einem x86-Ziel mit Fedora 9.
Immer wenn ich es neu starte, kehrt mein Verlauf in einen bestimmten Zustand zurück und ich habe keine Befehle, die ich in den Sitzungen vor dem Neustart ausgeführt habe.
Was muss ich ändern, um den Verlauf zu aktualisieren, den ich vor dem Neustart hatte?
Antworten:
Welche Geschichte? Bash-Geschichte? Wenn Sie den Bash-Verlauf verlieren und mehrere Sitzungen gleichzeitig haben, wird in jeder Sitzung der Verlauf der anderen Sitzungen überschrieben.
Sie möchten Bash wahrscheinlich anweisen, den Verlauf nicht jedes Mal zu überschreiben, sondern ihn anzufügen. Sie können dies tun, indem Sie die .bashrc-Datei so ändern, dass sie ausgeführt wird
shopt -s histappend
.Sie können die Größe Ihrer Verlaufsdatei auch erhöhen, indem Sie HISTSIZE als große Zahl exportieren (in Byte, also sollten 100000 ausreichend sein).
quelle
HISTSIZE
ist die Anzahl der zu merkenden Befehle, nicht die Anzahl der Bytes.Ich wurde aus dem gleichen Problem leiden - aber meine
.bashrc
Datei hatte bereits dieshopt -s histappend
und richtigHISTFILE
,HISTSIZE
,HISTFILESIZE
.Für mich bestand das Problem darin, dass sich meine
.bash_history
Datei im Besitz von root und nicht meines Benutzernamens befand, sodass mein Benutzer beim Beenden niemals in dieser Datei speichern konnte.quelle
sudo chmod your_user_name .bash_history
geschafft! Vielen Dank.sudo chown user_name:user_name ~.bash_history
Ich habe es gelöst!Suchen Sie die Umgebungsvariablen HISTFILE, HISTSIZE, HISTFILESIZE.
quelle
Ich habe ein Skript zum Festlegen einer Verlaufsdatei pro Sitzung oder Aufgabe auf der Grundlage der folgenden Informationen geschrieben.
Es ist nicht notwendig, jeden Verlaufsbefehl zu speichern, aber es speichert die, die mir wichtig sind, und es ist einfacher, sie abzurufen, als jeden Befehl zu durchlaufen. Meine Version listet auch alle Verlaufsdateien auf und bietet die Möglichkeit, sie alle zu durchsuchen.
Vollständige Quelle: https://github.com/simotek/scripts-config/blob/master/hiset.sh
quelle
Ich habe einige Zeilen in meine .bashrc geschrieben, die Folgendes bewirken: Speichern Sie jede Sitzung nach jedem Befehl in einer Datei. Es werden so viele Verlaufsdateien vorhanden sein, wie Sie jemals mit Terminals begonnen haben. Beim Starten eines neuen Terminals ab der letzten Protokolldatei werden alle Protokolldateien aus früheren Sitzungen in den Protokollpuffer geladen, bis ein Zeilenzählungsschwellenwert erreicht ist.
quelle
Ich würde sicherstellen, dass .bash_history existiert. Wenn dies nicht der Fall ist, kann Bash den Befehlsverlauf nirgendwo speichern.
Wenn ".bash_history" nicht vorhanden ist, erstellen Sie es durch Ausführen von "touch":
Dadurch wird lediglich die leere Datei .bash_history in Ihrem Ausgangsverzeichnis erstellt, die Ihre Befehle enthält und zwischen den Sitzungen bestehen bleiben sollte.
quelle
Meine Amazon EC2 Ubuntu-Instanz hat den Verlauf nicht gespeichert.
.bashrc
hatte alle erforderlichen Befehle, wie in anderen Antworten erwähnt, aber das einzige, was fehlte, war die Datei. Ich musste es anfassen, damit es funktionierte.quelle
Eine gute Antwort auf diese Frage finden Sie hier:
http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html
quelle