Je ne me souviens pas de l'astuce où j'ai pu obtenir la dernière commande sans l'exécuter:
disons que je veux pouvoir accéder à la commande! 1255 en appuyant sur la flèche haut et modifier la commande. Alors, quelle est l'astuce pour appeler la commande, la faire apparaître dans la ligne de commande mais pas exécutée et ensuite accessible via la flèche vers le haut?
J'ai essayé de mettre un écho, mais j'ai un écho avant la commande, je ne me souviens pas comment le faire correctement.
Réponses:
Fera ça
!
est le rappel de l'historique1255
est le numéro de ligne:p
imprimé mais ne s'exécute pasEnsuite, vous pouvez utiliser la flèche vers le haut pour récupérer la commande précédente (non exécutée) et vous pouvez la modifier selon vos besoins.
Je combine souvent cela avec
hg
("History Grep") - mon alias préféré.Cela recherche du texte sur une ligne d'historique récente, indépendamment de la casse et est utilisé de cette façon:
Lorsque je souhaite rechercher des commandes vi récentes pour modifier un certain fichier, puis je veux réutiliser l'une d'entre elles pour modifier le même fichier mais avec une extension de fichier différente.
Je définis également
hga
("History Grep All") pour rechercher toute mon histoire:mais je ne l'utilise pas beaucoup car mon historique est (intentionnellement) très volumineux et j'obtiens trop de sortie qui affecte plus tard le défilement des pages dans mon terminal.
la source
hg
c'est également la CLI de Mercurial .Le fait d'appuyer sur Ctrl+ R(qui est la liaison de clé de recherche incrémentielle inversée d'emacs lorsque @gnp s'est déplacé dans les commentaires) dans le terminal vous permet de rechercher dans la mémoire une commande spécifique. La commande s'affiche et peut être modifiée avant d'être exécutée. Vous verrez quelque chose comme ceci:
La source
la source
la
fc
commande fait ce que vous voulezfc -l <number>
listera l'historique des commandes autour de ce nombrefc <number>
ouvrira cette entrée de ligne de commande dansvim
(ou quel que soit votre éditeur par défaut, je suppose), afin que vous puissiez le modifier, et sur:wq
celui-ci sera disponible pour vous avec la flèche vers le haut.la source
Dans bash
Ctl+alt+e
, l'expansion du shell, donc en tapant!1255
puis en appuyant sur cette combinaison remplacera la ligne actuelle par le contenu de l'entrée d'historique 1255la source
man bash
tant queshell-expand-line
. Il existe peut-être un raccourci pour gnome-terminal.Vous souhaitez utiliser la commande fc tout en spécifiant list au lieu d'exécuter (-l)
la source