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 b
en 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
history
usted 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
~/.inputrc
En algunos casos, puede encontrarlo en el valor predeterminado (Desactivado).
Debe forzar
readline
a deshacer todos los cambios en las líneas del historial antes de volver cuandoaccept-line
se ejecute. (más información enman bash
).Editar:
CTRL+c
yset revert-all-at-newline on
funciona bien desde entoncesbash-4.3.30
.Pero:
fuente
nano
tambié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-3
para comentar la línea de comando actual si su bash está usandoreadline
./insert-comment
enman 3 readline
(oman bash
) para más información.