Obter histórico bash para lembrar apenas os comandos executados com espaço prefixado!

10

Os comandos executados no terminal prefixado com espaço (s) em branco não são gravados no arquivo de histórico de comandos. Mas existe uma maneira de obter o inverso, ou seja, a história deve registrar apenas aqueles que são prefixados com espaço?

    
por precise 20.02.2014 / 16:17

2 respostas

12

Você pode reverter as configurações padrão do Ubuntu configurando duas variáveis (HISTIGNORE e HISTCONTROL), use os comandos abaixo:

HISTIGNORE='!( *)'
HISTCONTROL=ignoredups

HISTCONTROL=ignoredups altera o comportamento do histórico para ignorar somente linhas duplicadas e não ignora as linhas que começam com um espaço. (Você também pode definir HISTCONTROL para a cadeia vazia (com HISTCONTROL= ) se quiser manter duplicados, mas isso geralmente não é desejado.)

HISTIGNORE='!( *)' faz o histórico ignorar todas as linhas que não começam com um espaço: ( *) corresponderia a todas as linhas que começam com um espaço, mas o primeiro ! nega a correspondência, portanto, corresponde a tudo que não comece com um espaço. E tudo o que é correspondido pelo 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 se esqueça de colocar os dois comandos acima em ~/.bashrc .

    
por falconer 20.02.2014 / 16:52
2

" Os comandos executados no terminal prefixado com espaço (s) em branco não são gravados no arquivo de histórico de comandos "

Sim, eles são.

    
por MrVaykadji 20.02.2014 / 16:30

Tags