O histórico de comandos do 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.

Percebi que .bash_history tinha alguns comandos que executei no sudo -smodo e tentei o mesmo novamente e todos os comandos durante a sessão foram salvos, então tenteichmod 777 .bash_history

Agora os comandos antigos aparecem no início de uma sessão, mas nenhum novo comando está sendo salvo

Thanx antecipadamente

v2r
fonte
2
Então ... o que exatamente você está tentando realizar? Você não parece estar fazendo uma pergunta aqui: /
Thomas Ward
4
O modo 777 é desnecessário, não tem nada a ver com o sinalizador 'executável' (o modo padrão é 600). Ele ~/.bash_historyé gravado quando você efetua logout (para acessar os comandos mais recentes, você pode usar o historycomando). Mas não vejo o problema também ..
Onedinkenedi

Respostas:

16

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

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Adam Byrtek
fonte
4
Puro demais. Gostaria de saber sobre isso há 5 anos.
HDave
8

Relacionado, normalmente, como isso é interrompido é se você sudo um comando antes de ter um arquivo .bash_history, pois ele será criado pertencente à raiz e não ao seu usuário.

Khamer
fonte
2

Também pode ser essa raiz: a raiz é proprietária do seu .bash_history (o ROOT NÃO DEVE SER O PROPRIETÁRIO, SEU USUÁRIO DEVE SER O PROPRIETÁRIO!);

#chown user:user .bash_history

Aparentemente, isso pode acontecer se você fizer sudo bashmuito!

mahatmanich
fonte