Dans le terminal, je peux taper CTRL-R pour rechercher une commande correspondante précédemment tapée dans BASH. Par exemple, si je tape CTRL-R alors grep
is liste ma dernière commande grep
, et je peux appuyer sur Entrée pour l'utiliser. Cela ne donne cependant qu'une seule suggestion. Existe-t-il un moyen de parcourir d'autres commandes de correspondance précédemment saisies?
Si je comprends bien la question, vous devriez pouvoir parcourir les alternatives en appuyant plusieurs fois sur Ctrl+R.
Par exemple.:
Ctrl+R grep
Ctrl+RCtrl+R ...
Cela recherche en arrière dans votre historique. Pour effectuer une recherche vers l'avant à la place, utilisez Ctrl+S, mais vous devrez peut-être avoir défini: stty -ixon
(soit par .bash_profile
ou manuellement) avant cela pour désactiver la fonction XON/XOFF qui prend le relais Ctrl+s. (Plus de détails ici .)
Si vous pensez que la commande sera utilisée fréquemment, vous pouvez ajouter une balise
commande #useful
Alors
ctrl+r #useful
Cela fonctionne parce que #
est un délimiteur de commentaire, c'est-à-dire que tout ce qui vient après le symbole n'est pas interprété comme une commande. Cependant, il sera enregistré dans l'histoire et est donc consultable.
Vous pouvez également configurer les flèches haut et bas pour effectuer une recherche légèrement différente en ajoutant ces lignes à ~/.inputrc:
"\e[A": history-search-backward
"\e[B": history-search-forward
Au lieu de rechercher une sous-chaîne n'importe où dans la commande (comme Ctrl-r ) il recherchera une commande commençant par le texte à gauche du curseur . Par exemple, si j'exécute ces commandes:
$ ls bart
$ ls fools
puis tapez ls
et appuyez sur Up deux fois, il affichera ls bart
et le curseur au même endroit. Comparer avec Ctrl-r, où il trouverait le ls
deux fois dans la dernière ligne, vous devrez donc appuyer à nouveau pour trouver la ligne précédente.
Ces approches ont toutes deux leurs points forts et peuvent toutes les deux gagner beaucoup de temps.
Il y a un remplacement pour intégré Ctrl + R appelé hstr . Il permet de rechercher l'historique des commandes correspondant à tous les jetons de recherche en même temps (entre autres), et de parcourir les résultats à l'aide des touches fléchées:
Voici un screencast de démonstration .
Il peut être installé sur un système d'exploitation de la famille Debian comme:
add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr
hstr --show-configuration >> ~/.bashrc
Et puis utilisez Ctrl + R (après réouverture du terminal).