Depende do shell. No Bash, você pode controlar o histórico de várias formas :
-
Desative o histórico de salvamento usando
set +o history
e reative-o comset -o history
(observe o mais e o menos invertido). Com o histórico desativado, os comandos inseridos não serão salvos no registro do histórico, mas os anteriores estarão disponíveis. -
Defina o arquivo usado para salvar o histórico, definindo
HISTFILE
(HISTFILE=~/somehistoryfile
). Você pode desativá-lo completamente desativando a variável comunset HISTFILE
. Se você desabilitar o arquivo de histórico, ainda terá acesso ao histórico de tempo de execução enquanto o shell estiver em execução. Você também pode definirHISTFILESIZE
para controlar a quantidade de comandos salvos no arquivo. -
Evite salvar determinados comandos no histórico usando
HISTCONTROL
e / ouHISTIGNORE
. A definição deHISTCONTROL
paraignorespace
dirá ao shell para não salvar linhas de comando iniciando com um espaço.HISTIGNORE
pode conter padrões de comandos para não salvar no histórico. por exemplo.HISTIGNORE='ls:ls *'
impediria salvar linhas que contenham apenasls
ouls
, um espaço e qualquer coisa depois disso.
Para um shell "amnesiac", você precisaria aplicar uma dessas configurações manualmente ao abrir o shell ou defini-las em algum script de inicialização do shell.
Uma opção seria criar, digamos ~/.bashrc.nohist
com:
# include the standard startup files as --rcfile will override them
if [ -f /etc/bash.bashrc ] ; then
. /etc/bash.bashrc
fi
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
# disable history completely
HISTSIZE=0
# disable the history file
unset HISTFILE
# we could even set a reminder in the prompt
PS1="[nohist] $PS1"
e, em seguida, organize o shell para ser iniciado com bash --rcfile ~/.bashrc.nohist
. Ajuste o script a gosto.