Al presionar hacia arriba, puedo pasar por los comandos ingresados previamente. Sin embargo, he notado que si modifico uno de ellos, eso altera el historial. Por ejemplo, si escribo:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
la historia ahora muestra que el segundo comando era echo d, no echo b. ¿Cómo guardo el primero echo ben la historia?
Por ejemplo, digamos que ejecuto un comando realmente largo, con muchas opciones. luego quiero volver a ejecutarlo, con un cambio menor, así que vuelvo a través del historial para encontrarlo, hacer el cambio, pero luego me doy cuenta de que en realidad no necesito volver a ejecutarlo, solo pensé en otra opción hacer en su lugar. luego, quiero volver y recordarme cuál fue el comando que ejecuté, pero espera, ¡el historial ahora muestra lo incorrecto!
Esto ocurre muy raramente, pero cuando lo hace, me resulta realmente irritante. ¿Hay alguna forma de preservar automáticamente la historia original?
fuente

historyusted puede ver todo el comando. Después de que pueda seleccionar lo que necesita. ¿Qué caparazón estás usando ahora?echo c.Respuestas:
Intenta poner en tu
~/.inputrcEn algunos casos, puede encontrarlo en el valor predeterminado (Desactivado).
Debe forzar
readlinea deshacer todos los cambios en las líneas del historial antes de volver cuandoaccept-linese ejecute. (más información enman bash).Editar:
CTRL+cyset revert-all-at-newline onfunciona bien desde entoncesbash-4.3.30.Pero:
fuente
nanotambién :-)Generalmente:
lo haré.
El comando original será recordado si ejecuta el comando modificado. Por supuesto, no desea ejecutar realmente, por lo que puede comentar la línea con
#.En su ejemplo, entonces tendría en su historia:
echo a,echo b,echo c,# echo d.fuente
alt-shift-3para comentar la línea de comando actual si su bash está usandoreadline./insert-commentenman 3 readline(oman bash) para más información.