Como posso ver o histórico do Bash de mais de uma sessão de terminal no Ubuntu? [duplicado]

10

Eu uso o Ubuntu Server 9.10 e gostaria de poder ver meu histórico bash para mais de uma sessão de terminal. Ou seja meus últimos 200 comandos ou mais, mesmo que eu tenha sido desconectado entre eles.

Quando uso o history , vejo todos os comandos da minha sessão de terminal real. Como posso ver mais histórico de comandos do Bash? Existe alguma configuração específica para o bash que eu deveria alterar dos valores padrão no Ubuntu?

Eu não tenho um arquivo ~/.bash_history . Mas eu tenho um ~/.bashrc com HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups e HISTCONTROL=ignoreboth

echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth

UPDATE: Agora estou tentando o Ubuntu Server 10.10 no VirtualBox. Se eu desligar o VirtualBox sem o comando shutdown, da próxima vez que eu inicializar, os comandos da última sessão não serão salvos no arquivo de histórico.

Os comandos só são salvos se eu desligar a máquina com o comando shutdown. Por exemplo. desligamento -P 0.

Este deve ser o motivo do meu problema. Então eu tenho que descobrir como salvar o comando de histórico com mais freqüência. Por exemplo. depois de cada comando.

    
por Jonas 18.03.2010 / 01:48

4 respostas

5

Você pode usar

history -a

para anexar imediatamente o histórico na memória ao arquivo de histórico. Uma sessão de terminal não pode ver outra, a menos que isso seja feito ou que a outra seja encerrada.

Você pode usar

history 200 | less

para ver esse número de entradas.

Além de HISTSIZE , veja a entrada na página man do Bash referente a HISTFILESIZE .

    
por 18.03.2010 / 02:37
4

Depois de efetuar o logout, o histórico é anexado ao arquivo ~/.bash_history . Dê uma olhada lá.

Por padrão, ele lembrará seus últimos 500 comandos. Se você quiser salvar mais, defina a variável HISTSIZE em ~/.bashrc .

Eu também adiciono ignoredups a HISTCONTROL (com HISTCONTROL=$HISTCONTROL:ignoredup ). Isso faz com que comandos duplicados consecutivos sejam salvos apenas uma vez.

Dê uma olhada em man 1 bash para o que mais você pode ajustar sobre o histórico.

    
por 18.03.2010 / 02:05
1

O histórico do bash é geralmente carregado quando o shell começa a ser executado e é salvo quando é finalizado normalmente. Você pode usar history -a e history -n para anular isso, mas não automaticamente, a menos que você abuse de $PROMPT_COMMAND ou algo semelhante.

    
por 02.04.2010 / 22:43
0

Sanoj, isso realmente deveria "apenas funcionar"; Eu não acho que deve haver algo especial que você precisa fazer para permitir isso. Parece que algo está interferindo no curso normal dos eventos.

Eu procuraria em / etc / profile, / etc / bashrc (ou talvez /etc/bash.bashrc de acordo com algumas fontes), ~ / .bash_profile, ~ / .bashrc, ~ / .bash_login, ~ / .bash_logout , para ver se há algo que possa estar afetando o histórico (talvez grep -i hist em cada um dos arquivos acima).

... Em particular, eu me pergunto se você tem algo em ~ / .bash_logout que remove o arquivo.

Como alternativa, é possível que algo esteja substituindo a variável $HOME ?

    
por 31.03.2010 / 06:50