Os comandos executados no terminal prefixado com espaços em branco não são registrados no arquivo de histórico de comandos. Mas existe uma maneira de obter o contrário, ou seja, a história deve registrar apenas aqueles que são prefixados com espaço?
Você pode reverter as configurações padrão do Ubuntu definindo duas variáveis (HISTIGNORE an HISTCONTROL), use os comandos como abaixo:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
altera o comportamento do histórico para ignorar apenas linhas duplicadas e não para ignorar linhas que começam com um espaço. (Você também pode definir HISTCONTROL como a sequência vazia (com HISTCONTROL=
) se desejar manter duplicatas, mas isso geralmente não é desejado.)
HISTIGNORE='!( *)'
faz com que a história ignore todas as linhas que não começam com um espaço: ( *)
corresponderiam a todas as linhas começando com um espaço, mas o líder !
nega a correspondência, portanto corresponde a tudo que não começa com um espaço. E tudo o que corresponder ao padrão HISTIGNORE será ignorado pela história. (Esta última opção requer que o bash seja executado com extglob
ativado, com shopt -s extglob
, mas essa é a configuração padrão no Ubuntu.)
Se você quiser tornar isso permanente, não esqueça de colocar os dois comandos acima no seu ~/.bashrc
.
.bashrc
.. Eu precisava disso para impedir festa de gravar cadacd
s,ls
S e outros comandos diários que eu uso; e para aqueles poucos comandos que eu preciso na história, agora eu posso usar o prefixo ..HISTIGNORE='ls*:cd*'
, que fará com que o histórico ignore todas as linhas que começam comls
oucd
, você pode estender a lista com outros comandos, basta colocar um:
entre os comandos . Mas não esqueça que o recurso de recuperação de comando que você pode acessar pela "tecla de seta para cima" também usa esse histórico; portanto, se você definir algo a ser ignorado, não poderá recuperar esses comandos ignorados com o " seta para cima ".ssh-copy-id
oussh-keygen
. EmHISTIGNORE
, eu incluído "ssh\ *
" com os meus outros comandos ignorados. Escapar do caractere de espaço parece ser obrigatório." Os comandos executados no terminal prefixado com espaços em branco não são registrados no arquivo de histórico de comandos "
Sim, eles estão.
fonte