Por que obtenho resultados diferentes com o mesmo usuário e o comando history?

2

Eu trabalho com o Linux por um bom tempo e já vi esse comportamento, mas nunca obtive uma boa explicação. Provavelmente é até muito simples.

Se eu fizer o login duas vezes com o mesmo usuário (bash) no mesmo servidor, é possível que eu obtenha resultados diferentes com o comando history.

Sempre achei que havia apenas um arquivo .bash_history e, portanto, um resultado.

    
por nsn 07.04.2015 / 09:29

1 resposta

4

O histórico é carregado do arquivo durante a inicialização do bash. E o arquivo é salvo automaticamente quando o bash sai. Durante a execução do bash, o histórico é mantido na memória e não sincronizado com o arquivo de histórico nem com várias instâncias do bash.

Você pode usar o comando history builtin para salvar manualmente seu histórico atual no arquivo ou carregá-lo do disco (consulte help history para obter detalhes).

Existe apenas um arquivo .bash_history (porque dois arquivos não podem ter o mesmo nome), mas é possível definir a variável HISTFILE para usar outro arquivo.

Algumas citações úteis de man bash ( HISTORY section):

On startup, the history is initialized from the file named by the variable HISTFILE (default ~/.bash_history).

e

When a shell with history enabled exits, the last $HISTSIZE lines are copied from the history list to $HISTFILE.

    
por 10.04.2015 / 11:03