Algunas instancias de bash cambian el historial de comandos cuando reutiliza y edita un comando anterior, otras aparentemente no. He estado buscando y buscando, pero no puedo encontrar nada que diga cómo evitar que se modifiquen los comandos en el historial cuando se reutilizan y editan.
Hay preguntas como esta , pero parece decir cómo lidiar con la historia que se está editando. Recientemente me encontré con una instancia de bash que edita el historial cuando reutiliza un comando: todos los shells de bash anteriores que he usado se han configurado (hasta donde sé) para que no cambien el historial cuando se reutiliza y edite un comando. (Quizás no he prestado la debida atención a mi historial de shell durante los últimos 15 años más o menos ...)
Entonces esa es probablemente la mejor pregunta: ¿PUEDO decirle a bash NUNCA que modifique el historial? Y si es así, ¿cómo?
set revert-all-at-newline on
resuelve el problema en la pregunta que vincula? ¿Puedes mostrar cómo reproducir el problema? Tenga en cuenta que también puede usar zsh
para un comportamiento más en línea con lo que desea.
history -p
es algo que tendría que hacer para cada comando que quiera reutilizar, ¿es así? Si es así, eso no es exactamente lo que estoy buscando. Como mencioné, he usado instancias de bash que nunca modifican el historial cuando un comando se reutiliza y edita.
revert-all-at-newline
sea lo que necesito. Si edito un comando y presiono CTRL-C para cancelarlo, tampoco quiero que eso afecte el historial. Nunca antes tuve que configurar bash para no modificar el historial, lo cual es parte de la razón por la que estoy confundido de por qué a veces una instalación nueva se comporta de una manera y otras de otra. Por cierto, en una instancia que no edita el historial de reutilización de comandos, a bind -V | grep revert
indica que revert-all-at-newline
está configurado en 'apagado'.
bash
. Se trata de readline. Hay diferentes implementaciones de la readline
biblioteca, y también tiene su propio conjunto de configuraciones (MUCHAS de ellas) y su propio archivo de configuración. No estoy seguro exactamente si esto es una configuración o simplemente una diferencia de implementación, pero debe buscar en la documentación relacionada con readline, no bash.
history -p
para hacer expansiones de historial sin afectar el archivo de historial. Puede hacerhistory -s
lo mismo y agregar al historial sin ejecución. Puede hacerHISTIGNORE='start of a command I never want in history.*:command2.*'
para mantener ciertos comandos fuera de la historia.