42 votos

Evitar mantener comando en la historia

Yo uso bash y me gustaría evitar algunos de los comandos que se mantienen en el historial.

  • Es posible que para el siguiente comando sólo?
  • Es posible que durante toda la sesión?

41voto

kristofer Puntos 11

y acabo de recordar otra respuesta, esta es la verdadera respuesta a su pregunta.

si usted tiene "ignorespace" en HISTCONTROL, a continuación, bash no recordar cualquier línea que comience con un carácter de espacio. no va a aparecer incluso en la actual consola de la historia, y mucho menos ser guardado en $HISTFILE.

por ejemplo, tengo la exportación HISTCONTROL='ignoreboth:erasedups' en mi ~/.bashrc

aquí los detalles de la página man de bash:

HISTCONTROL
 Un colon lista de valores separados control del modo de comandos
 guardado en la lista de historial. Si la lista de valores incluye
 ignorespace, las líneas que comienzan con un carácter de espacio no son
 guardado en la lista de historial. Un valor de ignoredups hace que las líneas
 la coincidencia de la historia previa de entrada a no ser salvo. Un valor de
 ignoreboth es la abreviatura de ignorespace y ignoredups. Un valor
 de erasedups hace que todos los anteriores, las líneas que coincidan con la línea actual
 para ser removido de la lista de la historia antes de que la línea es guardado.
 Cualquier valor no está en la lista de arriba es ignorado. Si HISTCONTROL es
 no se especifica o no incluir un valor válido, todas las líneas de lectura por el
 shell analizador se guardan en la lista de la historia, sujeto a que el valor
 de HISTIGNORE. En la segunda y subsiguientes líneas de un multi - línea
 comando compuesto no están probados, y se agregan a la historia
 independientemente del valor de HISTCONTROL.

20voto

Paul Tomblin Puntos 83687

He aquí un par de lecciones de historia que he aprendido de google:

Puede establecer la historia de ignorar ciertas cadenas. En este ejemplo, he ignorado los comandos ls, passwd y cualquier comando precedido por el carácter espacio.

exportación HISTIGNORE="ls:passwd: "

Para deshabilitar la historia de su sesión, usted puede emitir:

exportación HISTSIZE=0

Referencia

9voto

kristofer Puntos 11

si solo quieres quitar el último comando de la historia, a continuación, puede pulsar la flecha arriba, a continuación, Ctrl-U (borrar al comienzo de la línea), luego de flecha hacia arriba de nuevo.

puede borrar cualquier individuo de la línea de la historia como este...solo utilice la flecha arriba o la búsqueda o lo que sea para hacer que la corriente de línea de comandos que se está editando, a continuación, pulse ^U, y, a continuación, hacia arriba o flecha abajo para moverse a otro de la historia de la línea.

esto lo descubrí por casualidad un día, años atrás. no tengo idea de si es o no documentación.

en general, sin embargo, es menos complicaciones simplemente para no guardar el shell actual de la historia a todos con:

HISTFILE=/dev/null

3voto

graham.reeds Puntos 9363

Usted podría anular la HISTFILE variable. De man bash:

HISTFILE
 El nombre del archivo en el que guardar el histórico de comandos (consulte la SU-
 TORY abajo). El valor por defecto es ~/.bash_history. Si no se especifica,
 el historial de comandos no se guardan cuando un shell interactivo
salidas.

No creo que esto evita que el comando que aparece en el local de shell de la historia antes de que se cierre el shell.

2voto

mblsha Puntos 305

A veces lo hago

export HISTFILE=/dev/null

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X