Je recherche fréquemment des changements avec history | grep 'string'
Je reçois une liste de commandes dans mon historique, avec le numéro de la ligne d'historique), par exemple
history | grep 'git'
755 git status
1535 git push origin master
1570 git merge origin/one-146
1667 git reset --hard origin/master
Je peux maintenant rappeler et exécuter une commande en une seule fois avec !nnn
, par exemple:
!755
git status
# On branch master
nothing to commit, working directory clean
Ma question est la suivante: comment puis-je rappeler une commande d'historique numérotée et rester sur la ligne de commandes pour la modifier et ne pas l' exécuter immédiatement `` telle quelle '', de cette façon !
, afin de pouvoir changer quelques éléments après le retour de la présélection?
la source
Ctrl-a
par exemple) arrêtera la recherche en laissant l'entrée d'historique actuelle dans l'invite de commande, sans l'exécuter. Cela peut être suffisant ou non, selon ce que @Michael veut.Si vous configurez votre fichier .bashrc pour utiliser l'éditeur vi sur la ligne de commande, cela rendra les modifications de ligne de commande beaucoup moins complexes.
1er, une fois que "set -o vi" est activé, vous pouvez simplement appuyer sur "<esc> k" , puis continuer à appuyer sur "k" pour remonter le fichier d'historique tel qu'il était, si vous dépassez une entrée, utilisez "j" descendre .
REMARQUE: lorsque vous utilisez vi, il existe deux modes: commande et modification pour entrer dans le mode de commande, appuyez une fois sur la touche Échap, puis sur a, A, i, I, etc. pour insérer.
Curseur simple en vi: gauche = h, bas = j, haut = k, droite = l http://linuxmeister.net/vi/vi-Summary.jpg
J'ai ajouté toutes les entrées nécessaires pour que cela fonctionne à: http://linuxmeister.net/Notes/bashrc-simple.html
Ainsi, sur la base des informations très utiles ci-dessus, j'ai pu utiliser "historique" et RAPPELER une ligne de "historique", SANS l'exécuter. (MERCI POUR CE POST!)
si shopt est listé et histverify est "off" a! EXÉCUTERA immédiatement,
si vous avez ajouté à votre .bashrc, ou tapé: shopt -s histverify , alors a! permet une modification, par exemple:
->! 5
quand je frappe! 5 la commande suivante apparaît, mais ne s'exécute PAS
### si histverify est "activé".
N'oubliez pas que Linus et Richard ont créé des outils Linux et GNU pour tirer parti d'UNIX. L'éditeur vi (créé par Bill Joy) est l'un des meilleurs outils à maîtriser car il est sur CHAQUE distribution d'UNIX et Linux.
Tous les autres éditeurs de ligne de commande doivent être chargés et nécessitent un logiciel supplémentaire. Utiliser une interface graphique sous Linux (autre que Firefox, Thunderbird et OpenOffice), c'est comme remorquer votre 4x4 Diesel avec une VW Beetle de 1968 ... cela fonctionnera, mais cela n'a aucun sens.
Rappelez-vous ce que Kernigan a dit à propos d'une interface graphique, "ce que vous voyez est tout ce que vous obtenez".
la source
puis appuyez sur la flèche vers le haut, supprimez le mot
echo
et modifiez le reste; appuyez sur entrée pour exécuter.la source