¿Hay alguna forma de excluir comandos como rm -rf
, svn revert
de ser almacenados en el historial bash? En realidad, por error, los he emitido varias veces a pesar de que no tengo intención de hacerlo, solo porque estoy haciendo las cosas rápidamente y sucedió. Por lo tanto, resulta en la pérdida de mucho trabajo que he hecho hasta ahora.
bash
command-history
Ravi Gupta
fuente
fuente
Respuestas:
Es posible que desee
$HISTIGNORE
: "Una lista de patrones separados por dos puntos utilizados para decidir qué líneas de comando deben guardarse en la lista del historial". Esta línea en su ~ / .bashrc debería hacer el trabajo:Además, puede agregar un espacio al comienzo de un comando para excluirlo del historial. Esto funciona siempre que
$HISTCONTROL
contengaignorespace
oignoreboth
, que es el valor predeterminado en cualquier distribución que haya usado.fuente
y
, después de todocp
(alias paracp -i
) superar. Así que aliasy
comoalias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'
... PeroHISTIGNORE
es un mejor método como parece. :) Gracias.export HISTCONTROL="ignorespace"
a su~/.bashrc
para ignorar los comandos que comienzan con espacios.Aunque va un poco diferente de la pregunta de OP, cuando intencionalmente no quiero que un comando se almacene en el historial de bash, los prefijo con un espacio. Funciona en Ubuntu y sus variantes, no estoy seguro si funciona en todos los sistemas.
fuente
$HISTCONTROL
(ver mi respuesta).Por lo general, mato mi instancia de bash cuando he hecho cosas que no quiero en la historia.
$$ representa el proceso actual: bash cuando lo ejecutas desde el shell. Puede usar $ BASHPID, pero eso es más escribir :-)
fuente
HISTFILE=/dev/null
es una mejor opción.HISTFILE=
funciona tanto en bash como en ksh.unset HISTFILE