Gibt es eine andere Möglichkeit, als den Verlauf zu filtern?
Angenommen, ich möchte nach einem Befehl suchen, der mit "ssh" beginnt?
quelle
Gibt es eine andere Möglichkeit, als den Verlauf zu filtern?
Angenommen, ich möchte nach einem Befehl suchen, der mit "ssh" beginnt?
Drücken Sie Ctrl+ Rund geben Sie ein ssh
. Ctrl+ Rstartet die Suche vom letzten zum alten Befehl (Rückwärtssuche). Wenn Sie mehr als einen Befehl haben, der mit beginnt ssh
, drücken Sie immer wieder Ctrl+ R, bis Sie die Übereinstimmung gefunden haben.
Sobald Sie die Übereinstimmung gefunden haben, können Sie drücken Enter, um den Befehl auszuführen, oder den linken / rechten Cursor, um nur den Text des Befehls auszuwählen.
Es gibt keine Standardumkehroption für Ctrl+ R, um die Suchrichtung umzukehren, aber hier finden Sie einige Vorschläge dazu.
Wenn Sie nur Ihren Verlauf durchsuchen möchten, können Sie einfach history | grep ssh
ssh verwenden und durch das ersetzen, was Sie durchsuchen möchten.
Ich mache eine kleine Abwandlung des oben Genannten, funktioniert gut für mich (wenn Sie sich auf Ihre Bash-Geschichte beziehen)
In meinem Home-Ordner erstelle ich eine Datei mit dem Namen
Drinnen geht das
Hinweis: Das oben genannte scheint in 14.04 nicht mehr zu funktionieren, also macht dies dasselbe -
Wenn Sie dann einen beliebigen vorherigen Befehl eingeben und die Bild-auf / Bild-dn-Schaltflächen verwenden, wird der Verlauf durchsucht, wobei immer mit Bild-auf begonnen wird
quelle
Durch Drücken von Ctrl+ Rwird der "Reverse-i-Search" -Modus gestartet. Wenn Sie "ssh" eingeben, wird Ihr Verlauf nach Befehlen durchsucht, die "ssh" enthalten.
quelle
Hier ist eine andere Methode, bei der klassische Befehle verwendet werden (die mit größerer Wahrscheinlichkeit in allen Distributionen funktionieren). Der Befehlsverlauf wird in der Datei
.bash_history
in Ihrem Ausgangsverzeichnis gespeichert. Gehen Sie dazu folgendermaßen vor:Vergessen Sie die
-i
Flagge nicht, wenn Sie eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung benötigen.quelle
history | grep ssh
Ich werde nur temporäre Session-ssh anzeigen, also würde ich diese Antwort anstreben.Ich habe die folgende Funktion irgendwo im Internet gefunden und sie sehr effektiv genutzt. Fügen Sie dies in Ihre
~/.bashrc
:Jetzt neu laden Shell:
exec bash
. Sie haben jetzt einen neuen Befehl, den Sie wie folgt verwenden können:Es wird Ihnen eine Liste passender Befehle aus Ihrem Verlauf angezeigt. Um einen Befehl auszuführen, geben Sie
!
gefolgt von der Befehlsnummer ein. Hier ist ein Beispiel:Ich mag diesen Ansatz besser als Ctrl+, Rda er flexiblere Suchvorgänge ermöglicht und ich mehrere Ergebnisse gleichzeitig sehen kann.
quelle
Fügen Sie dies in Ihre
~/.bashrc
:Beispiel:
quelle
Wenn Sie die Shell in Emacs (
M-x shell
) verwenden, können Sie sie verwendenM-r
(entspricht Ctrl+ Rin einem Terminal ).quelle
Der Verlauf ist gut, aber begrenzt. Ich bevorzuge es, meine Bash-Umgebung so einzurichten, dass ich alle Befehle protokolliere, die ich jemals ausgeführt habe, zusätzlich zu dem Verzeichnis, in dem sie ausgeführt wurden. Anschließend führe ich einen Befehl aus, um alle Befehle aufzulisten Ich habe im aktuellen Verzeichnis ausgeführt, das ich per Pipe an grep usw. senden kann - es heißt "dish", siehe:
https://github.com/wolfwoolford/dish
Wenn Sie auf den Punkt kommen möchten, geben Sie dies einfach in Ihrer .bashrc-Datei an ( https://github.com/wolfwoolford/dish/blob/master/dishrc ).
Es gibt auch einen wirklich nützlichen Befehl namens "dishg" - oder "dish global" -, der jeden Befehl ausgibt, der jemals ausgeführt wurde, unabhängig vom Verzeichnis. Offensichtlich ist dieses nur nützlich, wenn es mit Grep und Tail usw. verwendet wird.
Ich benutze es seit Jahren und es ist buchstäblich das erste, was ich installiere, wenn ich eine neue Box einrichte. Es protokolliert die Befehle, die Sie in Textdateien in einem versteckten Verzeichnis (~ / .dish) ausführen. Ich hatte noch nie ein Problem mit dem Speicherplatz ...
quelle
Wollte dies als Kommentar zu @ssmy schreiben , konnte aber die Formatierung im Kommentar nicht erhalten, um zusammenzuarbeiten.
Nachdem Sie den Verlauf mit durchsucht haben
history | grep ssh
, können Sie den gewünschten Befehl ausführen, indem Sie dessen Nummer mit einem Ausrufezeichen voranstellen, z!42
.Beispiel:
quelle