Je suis récemment passé de bash à zsh. En bash, une manière (en plus de la recherche récursive) que j’avais l'habitude de trouver des commandes précédemment exécutées était la suivante history | grep whatever
: où whatever
est le bit de commande dont je me souviens.
En zsh, cela ne fonctionne pas. history
ne renvoie que quelques éléments, même si mon .zsh_history
fichier contient de nombreuses entrées pour lesquelles je l'ai configuré.
Comment puis-je sortir toute mon histoire, approprié pour la recherche avec grep
?
alias history="history 0"
alias h='history 1 | grep'
~/.zsh_history
a 10066 lignes, maishistory 0
(ou son équivalentfc -l 0
), n'imprime que 4999 lignes.history 1 | grep
gens, j'espère que vous connaissezctrl+r
- best trick / raccourci jamais!La réponse acceptée est correcte, mais il convient de noter que vous n'avez pas besoin d'appeler le
grep
binaire externe pour effectuer la recherche, car cette capacité est intégrée. J'ai cette fonction définie dans mon.zshrc
:Remarques:
fc
est la fonction intégrée zsh qui contrôle l’historique interactif.history
est équivalent àfc -l
.Le
-m
drapeau nécessite un motif, qui doit être cité.Le
-i
drapeau ajoute un horodatage.fc
a beaucoup plus d’astuces dans sa manche (par exemple, limiter la recherche à l’historique interne de la session en cours). Voir lazshbuiltins(1)
page de manuel ou la documentation officielle .la source
Regardez fzf . Cela aide non seulement à trouver des "particules" dans l'historique de votre shell, mais également dans d'autres lieux intéressants, tels que l'historique du navigateur, l'historique des répertoires, etc.
fzf est un chercheur fuzzy en ligne de commande. Cela signifie que vous pouvez rechercher des particules ou des fractions de ce que vous recherchez et afficher une collection de correspondances que vous pourrez affiner en permanence. C'est vraiment un changeur de jeu.
La page d' accueil de l'auteur contient un certain nombre d'exemples illustratifs.
la source