Como salvar o histórico do terminal manualmente?

33

Entendo que o arquivo de histórico é atualizado quando o terminal sai. Mas às vezes meu computador falha e o terminal não sai corretamente, e então perco esses comandos do meu histórico, o que é irritante. Como posso liberá-lo imediatamente, para que as entradas continuem lá, mesmo que meu computador tenha um colapso? No momento, estou usando essa solução alternativa, mas acho que deve haver uma maneira melhor.

Estou usando o gnome-terminal no Ubuntu 12.10.

wim
fonte

Respostas:

17

As respostas no link que você forneceu no site Superusuários não devem necessariamente ser vistas como 'soluções alternativas' para o historycomportamento padrão do comando. O shell bash possui algum comportamento padrão sadio e pronto para uso.

Eu recomendo a leitura Como posso evitar a perda de linhas do histórico? para uma explicação do que essas modificações historyestão fazendo. Além disso, há algumas preocupações razoáveis ​​a serem observadas sobre o motivo pelo qual esse não é o comportamento padrão do historycomando.

  • desempenho - Como você salva todos os comandos de todas as janelas history -a, o .bash_historyarquivo pode crescer bastante e exigir mais recursos para carregar o shell bash. Isso pode resultar em tempos de inicialização mais longos (para as sessões do terminal, não para a inicialização geral do sistema, por si só).

  • organização - (do artigo acima) "os comandos de histórico de shells interativos simultâneos (para um determinado usuário) serão entrelaçados. Portanto, o histórico não é uma lista sequencial garantida de comandos, pois foram executados em um único shell".

Se você estiver preocupado em proteger ainda mais o shell bash e o. bash_historyarquivo através da auditoria, consulte este artigo: Como faço para registrar o histórico ou bash "seguro" contra a remoção do histórico?

Ocasionalmente (por exemplo, um sistema instável ou falta de energia), achei os comandos abaixo úteis.

Adicione as seguintes linhas ao seu ~/.bashrcarquivo:

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

Certifique-se de fornecer seu .bashrcarquivo usando o comandosource ~/.bashrc

Kevin Bowen
fonte