Você pode compartilhar a sabedoria de usar o HISTIGNORE no bash?

26

Eu estava lendo as páginas de manual do bash no avião e tropecei na variável HISTIGNORE. Para testá-lo, editei imediatamente meu .profile para definir esta variável:

exportar HISTIGNORE = ls

Eu testei e isso é ótimo! Exclui os comandos ls simples da minha história, sem excluir comandos mais interessantes com caminhos longos, mas, tendo recentemente adquirido uma grande quantidade de sabedoria da SU, estou ansioso para saber o que outros comandos os superusuários podem recomendar ou outras lições aprendidas.

O que você pode compartilhar sobre o uso da variável HISTIGNORE no bash?

sábio
fonte

Respostas:

29

Ignoro lssem comandos, bg, fg, exit, pwd, clear, mounte umount:

Se você incluir isso em sua HISTIGNOREstring, poderá suprimir qualquer coisa que desejar, adicionando um espaço na frente do comando:

"[ \t]*" 

Este é o meu HISTIGNORE:

HISTIGNORE="&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*"

Excluí algumas outras coisas que tenho lá, que são comandos repetitivos exclusivos para o meu servidor. Qualquer coisa que você faça que seja simples é uma boa coisa para excluir.

Tenho outras coisas que esqueci de adicionar, mas estou a quilômetros de distância da minha caixa Linux, portanto, estou ficando sem memória.

Stanley Williams
fonte
6
Se o valor de HISTCONTROLincluir "ignorespace" ou "ignoreboth", os comandos que começam com um espaço serão omitidos do histórico. Se o valor incluir "ignorar dups" ou "ignoreboth", será o mesmo que "&" em HISTIGNORE.
Pausado até novo aviso.
Para mim, também se mostrou útil registrar o historycomando em si.
con-f-uso
2
usando "[ \t]*"ignora o comando começando com um espaço ou t. Você querHISTIGNORE=$'&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*'
Gregory Pakosz
14

Não salve comandos triviais de um e dois caracteres na lista de histórico:

HISTIGNORE='?:??'

Se a extglobopção estiver ativada, você também pode usar padrões estendidos, por exemplo

HISTIGNORE='a*( )'
Eugene Yarmash
fonte