Existe alguma maneira de excluir comandos como rm -rf
, svn revert
de ser ficando armazenados na história bash? Na verdade, eu, por engano, os emiti várias vezes, embora não tenha intenção de fazê-lo, apenas porque estou fazendo as coisas rapidamente e isso aconteceu. Daí resulta a perda de muito trabalho que fiz até agora.
bash
command-history
Ravi Gupta
fonte
fonte
Respostas:
Você pode querer
$HISTIGNORE
: "Uma lista de padrões separados por dois pontos usados para decidir quais linhas de comando devem ser salvas na lista de histórico". Esta linha no seu ~ / .bashrc deve fazer o trabalho:Além disso, você pode adicionar um espaço no início de um comando para excluí-lo do histórico. Isso funciona desde que
$HISTCONTROL
contenhaignorespace
orignoreboth
, que é o padrão em qualquer distribuição que eu usei.fonte
y
, afinalcp
(alias paracp -i
) superar. Então, eu fiz um aliasy
comoalias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'
... MasHISTIGNORE
é o melhor método que parece. :) Obrigado.export HISTCONTROL="ignorespace"
ao seu~/.bashrc
para ignorar comandos que começam com espaços.Embora seja um pouco diferente da pergunta do OP, quando intencionalmente não quero que um comando seja armazenado no histórico do bash, prefixo-os com um espaço. Funciona no Ubuntu e suas variantes, não tenho certeza se funciona em todos os sistemas.
fonte
$HISTCONTROL
(veja minha resposta).Normalmente, eu mato minha instância do bash quando faço coisas que não quero na história.
$$ representa o processo atual - bash quando você o executa a partir do shell. Você pode usar $ BASHPID, mas é mais digitação :-)
fonte
HISTFILE=/dev/null
é uma opção melhor.HISTFILE=
funciona no bash e no ksh.unset HISTFILE