Existe uma maneira de suspender temporariamente o rastreamento de histórico no bash, para entrar em uma espécie de modo "anônimo"? Estou inserindo coisas no meu terminal que não quero informações financeiras confidenciais registradas.
bash
command-history
Naftuli Kay
fonte
fonte
HISTFILE
só é verificado quando o bash é encerrado, portanto, o primeiro método não funciona como está (se você restaurar o valor, o comando será salvo).set +o history
funciona como indicado.set +o history
eset -o history
para alternar frente e para trás quando eu estou fazendo coisas secretas;)unset HISTFILE
não funciona.set -/+o history
Funciona como um encanto! graçasUsando o bash, defina
HISTCONTROL="ignorespace"
e anteceda com espaço qualquer comando que você não deseja que seja gravado no histórico. Caso você tenha esquecido de tomar alguma medida, também háhistory -d <number>
para excluir uma entrada específica ouhistory -c
limpar todo o histórico de comandos.fonte
Certifique-se de que
HISTCONTROL
contémignorespace
. Você provavelmente desejará adicionarHISTCONTROL=ignorespace
(HISTCONTROL=ignoredups:ignorespace
ou algo assim) ao seu~/.bashrc
. Em seguida, qualquer linha de comando que comece com um espaço é omitida do histórico.Outra possibilidade é iniciar uma nova sessão do bash que não salve seu histórico.
fonte
Se você precisar evitar o armazenamento de vários comandos e ainda quiser usar a seta para cima para acessar os comandos anteriores, use:
Existem quatro maneiras (níveis) de controlar como os comandos são armazenados.
A primeira e mais simples é usar
ignorespace
(ou ignorar):Isso permitirá usar um espaço antes dos comandos que você deseja evitar serem gravados na lista de memórias de
history
. E, consequentemente, como não há nenhum comando gravado na memória que possa ser enviado ao arquivo, também evitará que um comando seja enviado ao arquivo listado em$HISFILE
.Evite gravar comandos no arquivo em
$HISTFILE
:Nulo
HISTFILE=''
e / ou definido paraHISTFILE=/dev/null
funciona com o mesmo efeito. Entenda que os comandos ainda estão sendo gravados na lista de memórias, tente ohistory
comando ou a seta para cima.Aviso: se HISTFILE for redefinido antes que o shell exista, tudo o que foi gravado na memória poderá ser gravado no arquivo de qualquer maneira.
Evite gravar novos comandos na lista de histórico na memória. E, como não está na memória, não pode ser gravado em arquivo.
Reativar com
shopt -os history
(ouset -o history
)Remova todos os comandos da lista de histórico na memória:
Todos os comandos são apagados (da memória) e, portanto, nada pode ser armazenado no arquivo, é claro, até que a variável seja configurada novamente com algum valor numérico válido.
fonte
man history
não será suficiente para a maioria de nós.HISTIGNORE
, quesubsumes
a função deHISTCONTROL
.LESS=+'/^ *HISTI' man bash
(não são as "páginas de manual"?). @NathanBasaneseHá uma maneira simples de desativar o histórico, para que os comandos não sejam armazenados no
.bash_history
arquivo.Você deve colocar o espaço em branco ou espaço de tabulação na frente de qualquer comando, para que o comando não seja armazenado no histórico. Por exemplo:
O
pwd
comando não será armazenado no histórico, porque possui um espaço em branco na frente.fonte
Esse é o meu caminho. Caso o HISTORY / HISTFILE / HISTCONTROL, etc ... não funcione, exportá-lo para / dev / null sempre funcionou para mim.
fonte
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)