¿Hay alguna manera de suspender temporalmente el seguimiento del historial en bash, para ingresar en una especie de modo "incógnito"? Estoy ingresando cosas en mi terminal que no quiero que se registre, información financiera confidencial.
bash
command-history
Naftuli Kay
fuente
fuente
HISTFILE
solo se verifica cuando bash sale, por lo que el primer método no funciona como está (si restaura el valor, se guardará el comando).set +o history
funciona según lo indicado.set +o history
yset -o history
para alternar cuando estoy haciendo cosas secretas;)unset HISTFILE
No funciona.set -/+o history
¡Funciona de maravilla! graciasUsando bash, establece
HISTCONTROL="ignorespace"
y precede con espacio cualquier comando que no desees que se registre en el historial. En caso de que haya olvidado tomar alguna medida, también existehistory -d <number>
para eliminar una entrada específica ohistory -c
para borrar todo el historial de comandos.fuente
Asegúrese de que
HISTCONTROL
contieneignorespace
. Probablemente quieras agregarHISTCONTROL=ignorespace
(HISTCONTROL=ignoredups:ignorespace
o algo) a tu~/.bashrc
. Entonces, cualquier línea de comando que comience con un espacio se omite del historial.Otra posibilidad es comenzar una nueva sesión de bash que no guarde su historial.
fuente
Si necesita evitar almacenar varios comandos y aún desea usar la flecha hacia arriba para acceder a comandos anteriores, use:
Hay cuatro formas (niveles) para controlar cómo se almacenan los comandos.
El primero y más simple es usar
ignorespace
(o ignorarlos):Eso permitirá usar un espacio antes de los comandos que desea evitar que se graben en la lista de memoria
history
. Y, en consecuencia, como no hay ningún comando grabado en la memoria que pueda enviarse a un archivo, también evitará que se envíe un comando al archivo que figura en la lista$HISFILE
.Evite grabar comandos en el archivo en
$HISTFILE
:Nulo
HISTFILE=''
y / o configurado paraHISTFILE=/dev/null
funcionar con el mismo efecto. Comprenda que los comandos aún se están grabando en la lista de memoria, pruebe elhistory
comando o la flecha hacia arriba.Advertencia: si HISTFILE se restablece antes de que exista el shell, todo lo que se ha grabado en la memoria podría escribirse en el archivo de todos modos.
Evite grabar nuevos comandos en la lista del historial en la memoria. Y, como no está en la memoria, no se puede grabar en un archivo.
Vuelva a habilitar con
shopt -os history
(oset -o history
)Elimine todos los comandos de la lista de historial en la memoria:
Todos los comandos se borran (de la memoria) y, por lo tanto, no se puede almacenar nada en el archivo, por supuesto, hasta que la variable se establezca nuevamente en algún valor numérico válido.
fuente
man history
que no será suficiente para la mayoría de nosotros.HISTIGNORE
quesubsumes
la función deHISTCONTROL
.LESS=+'/^ *HISTI' man bash
(¿no son las "páginas del manual"?). @NathanBasaneseHay una forma sencilla de desactivar el historial, por lo que los comandos no se almacenarán en el
.bash_history
archivo.Debe colocar el espacio en blanco o el espacio de tabulación delante de cualquier comando, para que ese comando no se almacene en el historial. Por ejemplo:
El
pwd
comando no se almacenará en el historial porque tiene espacios en blanco en el frente.fuente
Esa es mi manera de ir a Goto. En caso de que el HISTORY / HISTFILE / HISTCONTROL no configurado no funcione, exportarlo a / dev / null siempre me ha funcionado.
fuente
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)