Comment puis-je rappeler une commande spécifique de l'historique des commandes, sans l'exécuter


13

Par exemple, en bash, je peux taper !xyzqui exécutera la dernière commande que j'ai tapée en commençant par xyz.

Comment afficher la dernière commande que j'ai tapée en commençant par xyzmais sans l'exécuter?
par exemple pour que je puisse changer les paramètres avant l'exécution ....

Réponses:


20

Vous pouvez le faire comme ceci: À l'invite de commande, appuyez sur Ctrl+ r, puis tapez la commande que vous souhaitez rappeler, dans votre cas xyz. Cela vous montrera la commande complète sans l'exécuter.


1
Plus utile que la !notation, car vous pouvez appuyer plusieurs fois sur Ctrl-r pour parcourir davantage l'historique de correspondance. Lorsque vous arrivez au bon endroit, vous pouvez essayer d'exécuter non pas avec Enter mais avec Ctrl-o pour beaucoup de profit.
kubanczyk

12

Essayez !xyz:p; il rappellera la commande en haut de l'historique sans l'exécuter, donc par exemple la flèche vers le haut peut y accéder immédiatement pour une édition interactive.

En passant, j'ai l'habitude de le faire lors du rappel de commandes avec une expression rationnelle qui pourrait éventuellement creuser quelque chose de dommageable, depuis qu'un hâte !r, destiné à rappeler la rsync ...commande la plus récente , a reculé et exécuté un rm *qui avait été poussé vers la pile plus récemment que le rsync.


Merci, c'est une bonne pratique. J'ai fait de même avec rm -rf ./*jamais été aussi reconnaissant pendant une période. Pour info !xyz:p, cela a fonctionné, merci, mais a nécessité quelques touches supplémentaires que la solution ctrl-r.
Mtl Dev

@MtlDev yes; Je trouve que la solution ^ R fonctionne mieux pour les EMACSgens, tandis que le! -Path fonctionne mieux pour les violateurs comme moi.
MadHatter

1
  1. Exécutez la commande suivante. Il fera écho à la dernière commande exécutée. vous pouvez copier et modifier la commande. Cette commande a été testée dans debian.

    histoire | queue -2 | grep -v histoire | coupe -d '' -f4-

  2. Ou Appuyez et maintenez ctrl + R et tapez la lettre de départ de votre dernière commande. Il répertorie les commandes que vous avez exécutées précédemment en fonction de votre saisie. Une fois qu'il affiche la commande souhaitée, appuyez simplement sur la flèche droite pour sélectionner cette commande.


1
La première commande est tellement fluide !! Je pense qu'il est plus rapide de simplement s'occuper de la commande dans l'histoire que d'écrire tout cela ^ __ ^
Grajdeanu Alex.

1

Si la recherche d'historique inversée a échoué, effectuez l'une des opérations suivantes:

$ history | grep WHAT_YOU_LOOK_FOR

Ou:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.