¿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.
¿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.
Respuestas:
Esto debería ser lo que estás buscando:
unset HISTFILE
man bash
Si HISTFILE no está configurado, o si el archivo de historial no se puede escribir, el historial no se guarda.
Alternativamente, si desea desactivarlo y luego volver a activarlo, puede ser más fácil de usar set
:
set +o history
set -o history
set +o history
y set -o history
para alternar cuando estoy haciendo cosas secretas;)
unset HISTFILE
No funciona. set -/+o history
¡Funciona de maravilla! gracias
Usando 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 existe history -d <number>
para eliminar una entrada específica o history -c
para borrar todo el historial de comandos.
Asegúrese de que HISTCONTROL
contiene ignorespace
. Probablemente quieras agregar HISTCONTROL=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.
$ bash
$ unset HISTFILE
$ sooper-sekret-command
$ exit
$ #back in the parent shell
Si necesita evitar almacenar varios comandos y aún desea usar la flecha hacia arriba para acceder a comandos anteriores, use:
$ bash # open a new session.
$ unset HISTFILE # avoid recording commands to file.
$ commands not recorded
.
.
$ exit
$
Hay cuatro formas (niveles) para controlar cómo se almacenan los comandos.
El primero y más simple es usar ignorespace
(o ignorarlos):
$ HISTCONTROL="ignorespace${HISTCONTROL:+:$HISTCONTROL}"
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
:
$ unset HISTFILE
Si no está configurado, el historial de comandos no se guarda cuando sale un shell.
Nulo HISTFILE=''
y / o configurado para HISTFILE=/dev/null
funcionar con el mismo efecto. Comprenda que los comandos aún se están grabando en la lista de memoria, pruebe el history
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.
$ shopt -ou history # or set +o history
Vuelva a habilitar con shopt -os history
(o set -o history
)
Elimine todos los comandos de la lista de historial en la memoria:
$ HISTSIZE=0
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.
man history
que no será suficiente para la mayoría de nosotros.
HISTIGNORE
que subsumes
la función de HISTCONTROL
.
LESS=+'/^ *HISTI' man bash
(¿no son las "páginas del manual"?). @NathanBasanese
Hay 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:
$ ls
print the list of file
$ history
ls
history
$ pwd
print the current working directory
$ history
ls
history
El pwd
comando no se almacenará en el historial porque tiene espacios en blanco en el frente.
export HISTFILE=/dev/null
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.
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
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.