Dans les systèmes UNIX, vous pouvez appuyer sur les flèches haut et bas pour parcourir les commandes précédentes. C'est extrêmement pratique.
Parfois, je monte et trouve une commande que je veux réutiliser, mais avec quelques variantes. Si j'effectue de telles modifications, je n'ai aucun moyen de récupérer la commande d'origine, sauf si je l'enregistre history
.
Existe-t-il un moyen d'annuler les modifications de la commande dans l'historique accessible via les touches?
Ma solution de contournement actuelle consiste à ajouter un préfixe #
à la commande. De cette façon, la commande actuelle est exécutée en tant que commentaire, donc rien ne se passe. Ensuite, je peux à nouveau parcourir les commandes avec les touches. Le problème est que la commande que j'utilisais peut être très éloignée de la liste, donc remonter 200 fois c'est un peu. Control + R n'est pas non plus une solution, car je ne me souviens peut-être pas exactement de ce que je cherchais.
Exemple
J'ai tapé "il y a 50 commandes":
ls -l /etc/httpd/conf/
Maintenant, je suis allé jusqu'à cette ligne et l'ai changé en
ls -l /etc/init.d/
mais n'a pas appuyé sur Entrée. Maintenant, je veux revenir au ls -l /etc/httpd/conf/
.
Mon environnement
$ echo $SHELL
/bin/bash
$ echo $TERM
xterm
ksh
le comportement de diffère ici, semble-t-il. Et vos options de modification d'historique dépendent également du mode d'édition choisi. Dans ksh
le vi-mode de, par exemple, l'ancienne entrée n'est pas écrasée, et je peux également émettre une commande d'annulation, comme dans vi
, avec 'u'.
ksh
, mais il est bon de savoir qu'une telle chose existe là-bas.
ksh
, par exemple, vous pouvez modifier les entrées d'historique et les appeler sans supprimer la "version précédente" de l'entrée; vous avez toutes les commandes appelées disponibles.