Certaines instances de bash modifient l'historique des commandes lorsque vous réutilisez et modifiez une commande précédente, d'autres ne le font apparemment pas. J'ai cherché et cherché, mais je ne trouve rien qui indique comment empêcher les commandes de l'historique d'être modifiées lorsqu'elles sont réutilisées et modifiées.
Il y a des questions comme celle-ci , mais cela semble dire comment faire face à l'histoire en cours d'édition. Je n'ai rencontré récemment qu'une instance de bash qui modifie l'historique lorsque vous réutilisez une commande - tous les shells bash précédents que j'ai utilisés ont (pour autant que je le remarque) été configurés pour ne pas modifier l'historique lorsque vous réutilisez et éditez une commande. (Peut-être que je n'ai pas prêté attention à mon histoire de coquille depuis environ 15 ans ...)
C'est donc probablement la meilleure question: PUIS-JE dire à bash de ne JAMAIS modifier l'historique - et si oui, comment?
set revert-all-at-newline on
dans la question que vous liez à résoudre votre problème? Pouvez-vous montrer comment reproduire le problème? Notez que vous pouvez également utiliser zsh
pour un comportement plus en ligne avec ce que vous voulez.
history -p
est-ce que je devrais faire pour chaque commande que je veux réutiliser - est-ce vrai? Si c'est le cas, ce n'est pas tout à fait ce que je recherche. Comme je l'ai mentionné, j'ai utilisé des instances de bash qui ne modifient jamais l'historique lorsqu'une commande est réutilisée et modifiée.
revert-all-at-newline
soit exactement ce dont j'ai besoin. Si je modifie une commande et appuie sur CTRL-C pour l'annuler, je ne veux pas non plus que cela affecte l'historique. Je n'ai jamais eu à configurer bash pour ne pas modifier l'historique, ce qui explique en partie pourquoi je me demande parfois pourquoi une nouvelle installation se comporte d'une manière et parfois de l'autre. Soit dit en passant, sur une instance qui ne modifie pas l'historique lors de la réutilisation des commandes, un bind -V | grep revert
indique qu'il revert-all-at-newline
est défini sur «off».
bash
. Tout est question de readline. Il existe différentes implémentations de la readline
bibliothèque, et elle a également son propre ensemble de paramètres (BEAUCOUP d'entre eux) et son propre fichier de configuration. Je ne sais pas exactement s'il s'agit d'un paramètre ou simplement d'une différence d'implémentation, mais vous devriez rechercher dans la documentation liée à readline, pas bash.
history -p
pour effectuer des extensions d'historique sans affecter le fichier d'historique. Vous pouvez fairehistory -s
de même et ajouter à l'historique sans exécution. Vous pouvez faireHISTIGNORE='start of a command I never want in history.*:command2.*'
pour garder certaines commandes hors de l'historique.