Ich möchte den Inhalt meiner .bash_history
Datei anzeigen, weiß aber nicht, wie ich über die Befehlszeile dorthin komme.
/home/username/.bash_history
?
.bash_history
Wird nur angehängt, wenn ein Terminal geschlossen ist.
Ich möchte den Inhalt meiner .bash_history
Datei anzeigen, weiß aber nicht, wie ich über die Befehlszeile dorthin komme.
/home/username/.bash_history
?
.bash_history
Wird nur angehängt, wenn ein Terminal geschlossen ist.
Antworten:
Wenn Sie die tatsächliche Datei selbst zugreifen möchten, benutzen Sie einfach Ihre bevorzugten Texteditor (ich benutze emacs
aber Sie verwenden können , pluma
von gedit
oder vim
oder was auch immer):
emacs ~/.bash_history
Dies ist der Standardspeicherort für Ihre Verlaufsdatei. Wenn Sie dort nichts finden, haben Sie möglicherweise den Namen der Verlaufsdatei geändert. Dies ist in der $HISTFILE
Variablen gespeichert , drucken Sie es also aus, um den aktuellen Wert zu überprüfen:
echo $HISTFILE
Wenn Sie anstelle der Datei nur Ihren Verlauf history
anzeigen möchten, können Sie sie wie in @ minerz029 vorgeschlagen ausführen. Der history
Befehl ohne Optionen gibt nur den Inhalt von your aus, $HISTFILE
gefolgt von den in der aktuellen Shell ausgeführten Befehlen, die noch nicht in diese Datei geschrieben wurden, mit Zeilennummern.
Wenn Sie tatsächlich benötigen die Ausgabe der .bash_history
Datei, ersetzen history
mit
cat ~/.bash_history
in alle unten stehenden Befehle.
Wenn Sie die Befehle tatsächlich ohne vorangestellte Zahlen haben möchten, verwenden Sie diesen Befehl anstelle von history
:
history | cut -d' ' -f 4-
Andernfalls gibt es keinen Unterschied (außer wenn Sie eine andere Shell verwenden).
Sie können verwenden
history | tail -n 15
um nur die letzten 15 Zeilen Ihres Verlaufs mit dem zuletzt ausgeführten Ausdruck (unten) abzurufen.
Alternativ verwenden Sie
history | grep "apt-get" | tail -n 15
um die letzten 15 Befehle zu erhalten, die apt-get
den zuletzt ausgeführten Ausdruck (unten) enthielten . Sie können durch apt-get
jeden Befehl (oder jedes Befehlsargument) ersetzen, nach dem Sie suchen möchten (es kann ein regulärer Ausdruck sein).
Sie können verwenden
history | tac | less
um durch alle ausgeführten Befehle zu scrollen, beginnend mit dem letzten oben. Drücken Sie, qum das Menü zu verlassen.
Ebenso verwenden
history | grep "apt-get" | tac | less
um durch alle Befehle zu scrollen, die mit " apt-get
" in ihnen ausgeführt wurden (einschließlich Argumenten), beginnend mit dem letzten oben. Drücken Sie, qum das Menü zu verlassen.
Zusätzlich zur hervorragenden Antwort von minerz029.
Zur Wiederholung: Der Befehl 'history' gibt den Verlauf zusammen mit einer Nummer daneben aus.
Sie können die Ausgabe des Verlaufs in grep, less usw. umleiten.
Die Ausgabe der Historie zeigt auch links neben dem Ausgang eine Zahl an. z.B
469 free
470 ps -fA
471 ps -fA | grep xend
472 free
473 sudo vi /etc/xen/xend-config.sxp
474 cat /etc/default/grub
Mit dieser Nummer können Sie den Befehl erneut ausführen.
zB um 473 neu zu starten würde ich in das Terminal tippen
admin@xen1~$ !473
gefolgt von der Eingabetaste, um den Befehl neben 473 in der Verlaufsausgabe zu wiederholen.
Sie können im Befehlsverlauf auch interaktiv rückwärts suchen, indem Sie ctrl + r
Tasten eingeben und dann einen Teil des Befehlsinhalts eingeben. Anschließend wird der Befehl gesucht und ausgefüllt. Wenn Sie es gefunden haben, können Sie enter eingeben, um es zu wiederholen, oder die [tab]
Taste drücken, um es in die Befehlszeile zu kopieren und den Befehl zuerst zu bearbeiten.
Natürlich funktionieren die letzten beiden Optionen in der Bash-Shell. Ich bin nicht sicher, ob diese Funktionen in anderen Shells funktionieren. Aber da bash die Ubuntu-Standardshell ist, sollten Sie sie dort finden.
Versuchen Sie es mit einem "Feld vorschlagen" -ähnlichen Verlauf: https://github.com/dvorka/hstr. Er liest den Bash-Verlauf und ermöglicht eine schnelle Navigation.
history | less