Ich habe vor ein paar Wochen eine Ubuntu Virtualbox-Maschine erstellt und arbeite seitdem immer wieder an Projekten.
Jetzt möchte ich die Syntax einiger Befehle finden, die ich vor einer Woche im Terminal eingegeben habe, aber ich habe das Terminalfenster mehrmals geöffnet und geschlossen und den Computer neu gestartet.
Wie kann ich den history
Befehl aufrufen, um zum ersten Befehl zurückzukehren, den ich nach dem Erstellen des Computers eingegeben habe?
Oder gibt es einen anderen Ort, an dem alle Befehle in Ubuntu gespeichert sind?
command-line
bash
history
Edward Tanguay
quelle
quelle
Antworten:
Möglicherweise können nicht alle Befehle abgerufen werden. Dies hängt davon ab, wie viele Befehle Sie ausgeführt haben und wie das Protokolllimit festgelegt wurde.
Sie können jedoch sehen, dass die Verlaufsliste hier gespeichert ist
/home/<YOUR_USERNAME>/.bash_history
Verwandte Frage (für den Umgang mit mehreren Shell-Verlauf):
Ist es möglich, direkt an .bash_history zu schreiben?
quelle
history
, wird der Verlauf der aktuellen Shell als der aktuellste und der Verlauf aller anderen Shells (einschließlich der Shells in früheren Sitzungen, einschließlich über mehrere Aus- und Einschaltzyklen hinweg) davor angezeigt. Alle Shell - Instanzen speichern ihre Geschichte zu ,.bash_history
wenn der Ausgang. Keine Instanz speichert es dort automatisch vor diesem Zeitpunkt.Standardmäßig gibt es keinen Ort, an dem alle Befehle aufgezeichnet und auf unbestimmte Zeit aufbewahrt werden, obwohl sie
~/.bash_history
die letzten paar Befehle enthalten (wenn Sie dies verwendenbash
, ist dies die Standard-Shell in Ubuntu).Wenn Sie möchten, dass jeder Befehl
bash
für immer aufgezeichnet wird , müssen Sie ihn selbst einrichten. Sie können beispielsweise Folgendes in Ihre~/.bashrc
Datei einfügen, um alle in einerbash
Shell eingegebenen Befehle in der Datei zu protokollieren~/.command_log
:Das Obige setzt einen Trap an
DEBUG
, der ausgeführt wird, kurz bevor ein gewöhnlicher Befehl ausgeführt wird. Diecaller
eingebaute Funktion wird verwendet, um zu testen, ob der Befehl in einer interaktiven Shell eingegeben oder über so etwas ausgeführt wird~/.bashrc
. Der Wert${BASH_COMMAND}
enthält den Befehl, der gerade ausgeführt wird.quelle
update_terminal_cwd
die Verlaufsdatei protokolliert. Dies ist ein Befehl, den der Benutzer nicht ausführt, der jedoch automatisch ausgeführt wird.Was Sie auch interessieren könnte, ist die Suche in Ihrem vorherigen Befehlsverlauf. Sie können Ihren Verlauf in der Befehlszeile umkehren, indem Sie drücken
Ctrl+r
und dann die Buchstaben eingeben, die Sie abgleichen möchten. Wenn Sie mehr als einen passenden Befehl haben, drücken SieCtrl+r
erneut. Um die Rückwärtssuche zu beenden, drücken SieCtrl+g
.http://www.ice2o.com/bash_quick_ref.html
quelle
Sie können nur so weit zurückgehen, wie Ihr Verlaufslimit festgelegt ist. Sobald dieser Punkt erreicht ist, wird der Verlauf überschrieben. Es ist jedoch möglich, eine größere Historie für die Zukunft zu haben. Fügen Sie dies in Ihre .bashrc-Datei ein und geben Sie einen Wert an (meine ist auf 1000 eingestellt):
quelle