Je pense qu'un exemple sera bon pour comprendre ma question.
...
scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important
...
...
scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important/tested
...
...
Supposons que c'est l'ordre des commandes dans l'historique. Si je fais Ctrl+R et tapez scp
il affichera la dernière commande scp
exécutée (c'est-à-dire la ligne se terminant par 'testé').
Mais je veux localiser la commande scp se terminant par "important". Y a-t-il un moyen dans ce reverse-i-search
pour afficher toutes les commandes commençant par scp, pour choisir celle qui convient?
Continuez à appuyer Ctrl-R et il traversera votre histoire.
Si vos termes de recherche sont un peu plus compliqués/non contigus, une autre option est de grep parmi les résultats history
, par exemple:
history 300 | grep scp | grep important$
Cela renverra une liste de commandes dans votre historique qui correspondent, telles que:
3323 scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important
3325 scp file1 [email protected]:/home/user1/winfiles/samplecode/important
Et vous pouvez ensuite exécuter la commande appropriée avec !3325
.
Je trouve parfois cela utile lors de l'exécution de nombreuses commandes similaires et je devrai peut-être appuyer sur Ctrl+R plusieurs fois pour revenir à la commande exacte.
Il existe une excellente alternative à Ctrl+R
installer https://github.com/dvorka/hstr
exécutez-le avec hh
il affiche une liste de vous toutes les dernières commandes exécutées (contenu de ./bash_history)
si vous commencez à taper la liste sera filtrée en fonction de ce que vous tapez
vous pouvez utiliser Up/Down flèches pour sélectionner la commande souhaitée et sélectionnez-la avec Enter