En appuyant vers le haut, je peux parcourir les commandes entrées précédemment. J'ai remarqué cependant que si j'en modifie un, cela modifie l'histoire. Par exemple, si je tape:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
l'histoire montre maintenant que la deuxième commande ne l'était echo d
pas echo b
. Comment garder le premier echo b
de l'histoire?
Par exemple, disons que j'exécute une commande très longue, avec beaucoup d'options. puis je veux l'exécuter à nouveau, avec un changement mineur, donc je reviens à travers l'histoire pour le trouver, faire le changement, mais je me rends compte qu'en fait je n'ai pas besoin de le réexécuter, après avoir juste pensé à une autre option à faire à la place. puis plus tard, je veux revenir en arrière et me rappeler quelle était la commande que j'ai exécutée - mais attendez, l'histoire montre maintenant la mauvaise chose!
Cela revient très rarement, mais quand ça arrive, je trouve ça vraiment irritant. Existe-t-il un moyen de conserver automatiquement l'historique d'origine?
la source
history
vous pouvez voir toute la commande. Après vous pouvez sélectionner ce dont vous avez besoin. Quel shell utilisez-vous maintenant?echo c
.Réponses:
Essayez de mettre votre
~/.inputrc
Dans certains cas, vous pouvez le trouver dans la valeur par défaut (Off).
Il devrait forcer
readline
à annuler toutes les modifications apportées aux lignes d'historique avant de retourner lorsqu'ilaccept-line
est exécuté. (plus d'informations dansman bash
).Edit:
CTRL+c
etset revert-all-at-newline on
fonctionne très bien depuisbash-4.3.30
.Mais:
la source
nano
aussi :-)Habituellement:
le fera.
La commande d'origine sera mémorisée si vous exécutez la commande modifiée. Bien sûr, vous ne voulez pas réellement exécuter, vous pouvez donc commenter la ligne avec
#
.Dans votre exemple, vous auriez alors dans votre histoire:
echo a
,echo b
,echo c
,# echo d
.la source
alt-shift-3
pour mettre en commentaire la ligne de commande actuelle si votre bash utilisereadline
./insert-comment
dansman 3 readline
(ouman bash
) pour plus d'informations.