Eu uso o bash e gostaria de evitar que alguns comandos sejam mantidos no histórico.
- É possível fazer isso apenas para o próximo comando?
- É possível fazer isso durante toda a sessão?
Eu uso o bash e gostaria de evitar que alguns comandos sejam mantidos no histórico.
Respostas:
e acabei de me lembrar de outra resposta, essa é a resposta real à sua pergunta.
se você tiver "ignorespace" no HISTCONTROL, o bash não lembrará nenhuma linha que comece com um caractere de espaço. ele não aparecerá nem no histórico atual do shell, e muito menos será salvo em $ HISTFILE.
por exemplo, exporte HISTCONTROL = 'ignoreboth: erasedups' no meu ~ / .bashrc
aqui estão os detalhes da página de manual do bash:
fonte
Aqui estão algumas lições de história que aprendi no Google:
Você pode definir o histórico para ignorar determinadas seqüências de caracteres. Neste exemplo, eu ignorei os comandos ls, passwd e qualquer comando prefixado pelo espaço de caracteres.
Para desativar o histórico da sua sessão, você pode emitir:
Referência
fonte
Se você quiser apenas remover o último comando do histórico, pressione Up-arrow, seguido por Ctrl - U(apagar para o início da linha) e Up-arrownovamente.
Você pode apagar qualquer linha individual da história como esta. Basta usar a seta para cima ou pesquisar ou qualquer outra coisa para torná-la a linha de comando atual que está sendo editada, pressione Ctrl - Ue, em seguida, Up-arrowou Down-arrowpara mover para outra linha do histórico.
Eu descobri isso por acidente um dia anos atrás. Não faço ideia se está documentado ou não.
Geralmente, porém, é menos complicado simplesmente não salvar o histórico do shell atual com:
fonte
Você pode desarmar a
HISTFILE
variável. Deman bash
:Eu não acho que isso impeça que o comando apareça no histórico local do shell antes que o shell saia.
fonte
Eu faço às vezes
fonte
Vejo que ninguém escreveu esse método, então eu o farei.
history -d
exclui a entrada mencionada do histórico.HISTCMD
armazena o número do comando do comando a ser executado a seguir. Portanto, (HISTCMD-1) refere-se ao último comando executado.Eu fiz um pequeno filme do bash que mostra como ele funciona: https://asciinema.org/a/dtxpuovhty0obhln50soqypt2
Depois de executar o comando e porque ele também exclui o próprio comando, subir a seta não exibirá o comando; portanto, se você planeja usá-lo com frequência, seria melhor criar um alias:
Então você pode fazer:
fonte