O histórico do comando Bash não está funcionando

13

O histórico de comandos entre as sessões não está sendo salvo. Estou usando o guake e o histórico da sessão está funcionando bem.

Eu notei que .bash_history tinha alguns comandos que eu executei no modo sudo -s e tentei o mesmo novamente e todos os comandos que estavam na sessão foram salvos, então eu tentei chmod 777 .bash_history

Agora, os comandos antigos aparecem no início de uma sessão, mas não há novos comandos sendo salvos

Thanx antecipadamente

    
por v2r 19.03.2011 / 15:01

4 respostas

14

Os comandos não são visíveis porque o Bash salva o histórico no arquivo .bash_history somente depois que o shell é encerrado, e isso acontece muito raramente com o Guake. Existe uma solução simples para fazer com que o Bash acrescente o histórico (em vez de sobrescrevendo o arquivo) após cada comando

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
    
por Adam Byrtek 20.03.2011 / 01:32
7

Relacionado, tipicamente como isto é quebrado é se você sudo um comando antes que você tenha um arquivo .bash_history, então ele será criado por root em vez do seu usuário.

    
por khamer 29.03.2011 / 15:25
3

Veja o link para saber como evitar a perda de linhas do histórico e uma explicação dos efeitos colaterais de fazê-lo.

    
por geirha 20.03.2011 / 02:59
2

Também pode ser que root: root possui sua .bash_history (a raiz não deve ser o proprietário, seu usuário deve ser o proprietário!), nesse caso você precisa:

#chown user:user .bash_history

Isso aparentemente pode acontecer se você usar sudo bash alot!

    
por mahatmanich 10.07.2013 / 15:58