Linha em branco na minha bash.history?

6

Eu estava dando uma olhada no meu .bash_history , e encontrei uma linha em branco. Eu pensei que eu poderia ter pressionado "entrar" enquanto eu estava dando uma olhada no arquivo.

Isso é normal? Ou talvez eu realmente pressionei enter enquanto procurava o arquivo no gedit?

EDIT: Apenas encontrei hoje que tenho mais de uma quebra de linha. Isso é estranho, eu nunca edito o arquivo .bash_history.

    
por Nori-chan 09.11.2014 / 00:00

3 respostas

4

Isto não é um problema, não é perigoso e é totalmente normal. Você pode obter essas linhas se você pressionar espaço algumas vezes e depois pressionar enter . Isso será salvo em seu histórico (já que é uma linha não vazia, espaços são caracteres apenas invisíveis).

Para testar isso, podemos usar um comando que imprima as linhas em branco no histórico do bash. Por exemplo, esse grep corresponderá a todas as linhas que começam com números e terão 0 ou mais espaços em branco (espaços ou tabs ou qualquer outro) e nada mais até o final da linha:

history | grep -P '^\s*\d+\s*$'

Isso deve mostrar uma lista de comandos vazios que você executou. Agora, corra (a primeira linha significa acertar o espaço algumas vezes e depois entrar)

$ echo foo
foo
$       
$ history  | tail -n 3
$ history | tail -n 3
80  echo foo
81               ## this is the blank line
82  history | tail -n 3

Você notará que você tem uma nova linha em branco. Em conclusão, não se preocupe. está tudo bem e isso é normal.

    
por terdon 20.11.2014 / 17:06
1

Como mencionado por terdon , provavelmente são apenas linhas em branco.

Existem duas opções de variáveis de ambiente que controlam se as linhas de espaços em branco são armazenadas no histórico ou não:

  • HISTCONTROL : se contiver ignorespace , qualquer linha que comece com um espaço em branco será ignorada.

  • HISTIGNORE : lista separada por dois pontos para ignorar. Por exemplo, se contiver:

    HISTIGNORE=' *'
    

    as linhas que começam com um único espaço serão ignoradas.

Eu não consegui fazer o bash armazenar linhas realmente vazias sem espaço em branco.

    
0

Aqui é uma explicação sobre como linhas em branco podem ocorrer no arquivo .bash_history .

Em resumo:

  

Se você chamar do histórico uma linha de comando digitada anteriormente na mesma sessão de terminal atual e editá-la (talvez excluí-la), interrompa a edição deixando-a (histórico -) linha de comando usando por exemplo a Down arrow para voltar ao prompt da atual linha de comando atual, então quando mais tarde você sair do terminal as edições serão gravadas no arquivo .bash_history.

    
por The Quark 29.09.2015 / 20:08

Tags