Más de una vez accidentalmente ejecuté varios comandos y contaminé mi historial de bash. ¿Cómo cierro mi terminal sin guardar mi historial de bash? Estoy usando Fedora.
bash
command-history
Michael Mrozek
fuente
fuente
set HISTFILE
próxima vez que inicie sesión? (solo diga si esto es correcto o incorrecto)Respuesta corta:
Escriba esto en el indicador:
Esto matará su shell de inmediato sin que el shell pueda hacer nada como atrapar la señal, guardar el historial, ejecutar
~/.bash_logout
, advertir sobre trabajos detenidos o cualquiera de esas cosas buenas.Respuesta larga:
Nota: Estas opciones no son mutuamente excluyentes; se pueden usar todos a la vez.
Opción 1:
Si eres un perfeccionista cuando se trata de abarrotar tu archivo de historial, entonces lo que puedes hacer es modificar la
HISTIGNORE
variable para incluir globos de comandos que no deseas grabar. Por ejemplo, si agregaHISTIGNORE='ls*:cd*'
a su~/.bashrc
, cualquier instancia dels
ycd
no se inserta en su archivo de historial.Opcion 2:
Si desea controlar comando por comando qué comandos quedan fuera de su historial, puede establecer
HISTCONTROL='ignorespace'
qué omitirá cualquier línea de comando que comience con un espacio. El usoignoreboth
también omitirá líneas repetidas. Luego, presionar la barra espaciadora antes de ingresar un comando hará que no se muestre en su archivo de historial.Opcion 3:
Si solo quiere que sea así, cuando cierre el terminal, el shell sale inmediatamente, puede
trap
indicar que el programa del terminal envía el shell (xterm
por ejemplo, envía ySIGHUP
luego espera a que el shell salga) y salga sin guardar el historial cuando recibe esta señal Agregue esto a su~/.bashrc
:fuente
kill -9
para cualquier cosa, excepto situaciones graves en las que todo lo demás ha fallado.Me sorprende ver que nadie ha sugerido
history -c
inmediatamente antesexit
. IINM (no soy un experto) que funcionará bien.fuente
history -r
volverá a leer el archivo del historial, por lo que guardar se convierte en un no-op.Hay dos variables de entorno que bash usa para determinar el archivo de historial y cuántas líneas escribir cuando se cierra el shell.
Puede descartar el historial de su sesión con cualquiera de estos (establecidos durante la sesión que desea omitir de su archivo de historial):
o
Cualquiera de estos funciona bien en Bash en Fedora
fuente
No estoy seguro de por qué te importa tanto tu historial de comandos. Si necesita ciertos comandos con frecuencia, es posible que se divierta más si define alias para ellos, de modo que pueda recuperarlos con dos pulsaciones de teclas en lugar de tener que buscarlos en el historial.
fuente
Eli ya te dio la respuesta correcta para Bash, que es configurar
HISTSIZE=0
.Simplemente agregaría el método para hacerlo para la pantalla GNU . Presione
Ctrl+A
(secuencia de escape de la pantalla) seguido de:scrollback 0
. Esto eliminará el historial de retroceso. Ahora puede hacer inmediatamente:scrollback 15000
para restablecer el tamaño del búfer de desplazamiento hacia atrás.fuente
screen(1)
?scrollback=0
.Ctrl+a H
niCtrl+a :clear
eliminará la historia. Es necesarioCtrl+a :scrollback 0
. Puedes probarlo tú mismo. Comience una nueva sesión de pantalla. Ahora haz uncat /etc/passwd
. Ahora, haga cualquiera de los anteriores -Ctrl+a H
oCtrl+a :clear
. Ahora, intente copiar desde el búfer de la pantalla con una flechaCtrl+a [
seguida de una flecha hacia arriba para ver qué tan lejos puede llegar a copiar. Si ha hecho unCtrl+a :scrollback
seguido por unclear
, solo iría tan lejos como puede ver en la ventana actual ya que no habrá ningún búfer de desplazamiento.