Ich bin kürzlich von bash auf zsh umgestiegen. In Bash war eine Möglichkeit (neben der rekursiven Suche), zuvor ausgeführte Befehle zu finden, die history | grep whatever
, an whatever
die ich mich erinnere.
In zsh funktioniert das nicht. history
gibt nur wenige Elemente zurück, obwohl meine .zsh_history
Datei viele Einträge enthält, für die ich sie konfiguriert habe.
Wie kann ich meinen gesamten Verlauf ausgeben, mit dem ich suchen kann grep
?
alias history="history 0"
alias h='history 1 | grep'
~/.zsh_history
hat 10066 Zeilen, aberhistory 0
(oder das Äquivalentfc -l 0
) druckt nur 4999 Zeilen aus.history 1 | grep
Menschen, ich hoffe , Sie wissenctrl+r
- die beste Trick / Verknüpfung aller Zeiten!Die akzeptierte Antwort ist richtig, aber es ist erwähnenswert, dass Sie nicht brauchen , um die externen Anruf
grep
die Suche binär zu tun, da die Fähigkeit , in gebacken habe ich diese Funktion in meinem definiert..zshrc
:Anmerkungen:
fc
ist das integrierte zsh, das den interaktiven Verlauf steuert.history
ist äquivalent zufc -l
.Die
-m
Flagge erfordert ein Muster, das in Anführungszeichen gesetzt werden muss.Die
-i
Flagge fügt einen Zeitstempel hinzu.fc
hat noch viele weitere Tricks auf Lager (z. B. Beschränkung der Suche auf den internen Verlauf der aktuellen Sitzung). Siehe diezshbuiltins(1)
Manpage oder die offizielle Dokumentation .quelle
Schauen Sie sich fzf an . Es hilft nicht nur, "Was auch immer-Partikel" in Ihrem Shell-Verlauf zu finden, sondern auch an anderen interessanten Orten, z. B. im Browserverlauf, im Verzeichnisverlauf usw.
fzf ist ein Kommandozeilen-Fuzzy-Finder. Das heißt, Sie können nach Partikeln oder Fraktionen suchen, nach denen Sie suchen, und es wird eine Sammlung von Übereinstimmungen angezeigt, die Sie kontinuierlich verfeinern können. Es ist wirklich ein Game Changer.
Die Homepage des Autors enthält einige anschauliche Beispiele.
quelle