¿Ejecutar un comando de terminal sin guardarlo en .bash_history en OS X?

19

Este sitio dice que en Linux puede agregar un spacecomando antes de un terminal para mantenerlo fuera .bash_history.

Esto no parece funcionar para Mac OS X. ¿Alguien sabe de una manera de ejecutar un solo comando en la Terminal sin guardarlo en el historial?

No quiero borrar la historia.

ingrese la descripción de la imagen aquí

cwd
fuente
agregar un `` (espacio) antes de un comando de terminal no lo mantendrá fuera del historial
warren
2
@warren No, lo hace. Solo tiene que habilitar la función en bash.
goweon
@firebat - correcto: pero como es algo que tienes que habilitar, puede o no funcionar en todas partes :)
warren

Respuestas:

24

Agregue la siguiente línea a ~ / .bashrc

export HISTCONTROL=ignorespace

Luego source ~/.bashrcpara actualizar la configuración

Esto debería habilitar esa función en bash. Si no funciona, es posible que deba agregarlo a ~ / .bash_profile en lugar de ~ / .bashrc, ya que OS X los carga de manera un poco diferente a Linux, creo.

goweon
fuente
¿Cómo puedo usar dos opciones con eso? Quiero usar export HISTCONTROL=erasedups,ignorespacepero creo que la sintaxis no funciona ...
Cwd
2
export HISTCONTROL=erasedups:ignorespace
goweon
2
Pero creo que es en realidadexport HISTCONTROL=ignoredups:ignorespace
goweon
3
La configuración "ignorar" ignora las líneas repetidas. Escribir "ls" veinte veces seguidas solo termina con uno de ellos en la historia. Sin embargo, escribir "ls" y luego "ps" y luego "ls" nuevamente almacenará "ls" y "ps" cada vez, a menos que tenga bash 3 y establezca "borrados". Si está configurado, no se ingresan duplicados en el historial de bash. - cyberciti.biz/faq/bash-for-loop-array
cwd
1
Esto no funciona para mi. He intentado tanto export HISTCONTROL=erasedups:ignorespace y export HISTCONTROL=ignoredups:ignorespacee incluso export HISTCONTROL=ignoredups:ignoreboth. Pero lo que obtengo es una entrada única para cada sesión en lugar de entre sesiones: es decir, si un comando ya está .bash_historyal comienzo de una sesión y se vuelve a escribir, se agregará al historial (aunque solo una vez para esa sesión) . ¿Cómo me aseguro de que un comando que ya está en `.bash_history cuando ejecuto Terminal no se agrega si se ingresa nuevamente?
orome
1

Si no le preocupa mantener activa la sesión, esto puede funcionar:

kill -9 $$

Eliminará la sesión actual en lugar de cerrar sesión, lo que [teóricamente] significa que su historial no se guardará.

madriguera
fuente