Pesquisa de site

Como executar um comando do Linux sem salvá-lo no histórico


Por padrão, cada comando que você executa em seu terminal é armazenado pelo shell (interpretador de comandos) em um determinado arquivo chamado arquivo histórico ou histórico de comandos do shell. No Bash (o shell mais popular em sistemas Linux), por padrão, o número de comandos persistidos no histórico é 1000, e algumas distribuições Linux têm 500.

Para verificar o tamanho do seu histórico no Bash, execute este comando:

echo $HISTSIZE

Para ver comandos mais antigos que você executou, você pode usar o comando history para exibir o histórico de comandos do shell:

history

Às vezes, você pode querer desabilitar o shell de registrar comandos em seu histórico de comandos. Você pode fazer isso da seguinte maneira.

Exclua um comando Linux do histórico após a execução

Você pode excluir um comando imediatamente do histórico do shell após executá-lo na linha de comando, anexando o comando history -d $ (history 1) a ele.

O subcomando $ (history 1) recupera a última entrada no histórico na sessão atual do terminal, onde 1 é o deslocamento e o -d A opção ajuda a excluí-lo.

Qualquer comando executado normalmente é salvo no histórico do shell.

echo "This command is saved in history"
history | tail

No entanto, quando você anexa o comando history -d $ (history 1) a uma linha de comando, ele é imediatamente excluído do histórico do shell, conforme mostrado na captura de tela a seguir:

echo "This command is not saved in history";history -d $(history 1)
history | tail

Outra maneira de evitar que o shell salve um comando no histórico é prefixar o comando com um espaço. Mas isso depende totalmente do valor da variável shell $HISTCONTROL definida no arquivo de inicialização ~/.bashrc do Bash. Deve ser definido para ter um destes valores: ignorespace ou ignoreboth, para que este método funcione.

Você pode verificar o valor da variável $HISTCONTROL conforme mostrado.

echo $HISTCONTROL
OR
cat ~/.bashrc | grep $HISTCONTROL

Se a variável shell mencionada acima for definida, qualquer comando prefixado com um espaço não será salvo no histórico:

echo "This command is not prefixed with space, it will be saved in history!"
echo "This command is prefixed with space, it will not be saved in history!"

Aqui estão alguns outros artigos interessantes sobre os comandos history e history do Bash:

  • 2 maneiras de executar novamente os últimos comandos executados no Linux
  • Como limpar o histórico da linha de comando BASH no Linux
  • Defina data e hora para cada comando executado no histórico do Bash

Por enquanto é isso! Use o formulário de comentários abaixo para compartilhar conosco suas idéias sobre este tópico. Até a próxima, fique conosco.