Como salvar o histórico de terminal manualmente?

22

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 eu perco os comandos da minha história que são irritantes. Como faço para liberar imediatamente, de modo que as entradas ainda vão até mesmo se meu computador tiver um colapso? No momento estou usando esta alternativa, mas acho que deveria haver uma maneira melhor.

Estou usando o gnome-terminal no Ubuntu 12.10.

    
por wim 26.02.2013 / 08:10

3 respostas

12

As respostas no link que você forneceu do site Superusuários não devem necessariamente ser vistas como "soluções alternativas" para o comportamento padrão do comando history . O shell bash tem um comportamento padrão sadio, fora da caixa.

Eu recomendo que você leia Como posso evitar perder as linhas do histórico? para uma explicação sobre o que essas modificações em history estão fazendo. Além disso, há algumas preocupações razoáveis ​​de estar ciente de porque este não é o comportamento padrão do comando history .

  • desempenho - Como você está salvando todos os comandos de todas as janelas com history -a , o arquivo .bash_history pode ficar muito grande e exigir mais recursos para carregar o shell bash. Isso pode resultar em tempos de inicialização mais longos (para suas sessões de terminal, e 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 conforme eles foram executados em um único shell. "

Se você estiver preocupado em proteger ainda mais o bash shell e o arquivo. bash_history por meio de auditoria, consulte este artigo: Como faço para registrar histórico ou "seguro" contra a remoção de histórico?

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

Adicione as seguintes linhas ao seu arquivo ~/.bashrc :

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

shopt -s histappend

Certifique-se de que você está usando o comando .bashrc usando o comando source ~/.bashrc

    
por Kevin Bowen 26.02.2013 / 08:17
25

A resposta mais simples e funcional para a pergunta "Como salvar o histórico de terminal manualmente?":

history -a

Também pode valer a pena considerar mudar para o zsh, que tem setopt inc_append_history ("salva cada comando antes dele" é executado ").

E esta questão é relevante também: É possível tornar a escrita em .bash_history imediata?

    
por guaka 06.07.2015 / 16:13
15

Para salvar o histórico de bash manualmente em um arquivo:

history -w ~/history.txt
vim ~/history.txt

Exporta o histórico para um arquivo chamado history.txt. Você pode visualizá-lo usando seu editor favorito.

Resposta copiada de Ссылка

    
por wanderer 11.06.2014 / 03:16