Ich möchte den Inhalt meiner .bash_historyDatei anzeigen, weiß aber nicht, wie ich über die Befehlszeile dorthin komme.
/home/username/.bash_history ?
.bash_historyWird nur angehängt, wenn ein Terminal geschlossen ist.
Ich möchte den Inhalt meiner .bash_historyDatei anzeigen, weiß aber nicht, wie ich über die Befehlszeile dorthin komme.
/home/username/.bash_history ?
.bash_historyWird 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 emacsaber Sie verwenden können , plumavon geditoder vimoder 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 $HISTFILEVariablen gespeichert , drucken Sie es also aus, um den aktuellen Wert zu überprüfen:
echo $HISTFILE
Wenn Sie anstelle der Datei nur Ihren Verlauf historyanzeigen möchten, können Sie sie wie in @ minerz029 vorgeschlagen ausführen. Der historyBefehl ohne Optionen gibt nur den Inhalt von your aus, $HISTFILEgefolgt 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_historyDatei, ersetzen historymit
cat ~/.bash_historyin 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-getden zuletzt ausgeführten Ausdruck (unten) enthielten . Sie können durch apt-getjeden 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 + rTasten 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