Possível duplicado: os
arquivos de histórico podem ser unificados no bash?
Eu uso o Ubuntu Server 9.10 e gostaria de poder ver meu histórico do bash por mais de uma sessão de terminal. Ou seja, meus últimos 200 comandos, mais ou menos, mesmo se eu tiver desconectado.
Quando uso o history
, apenas vejo todos os comandos da minha sessão real do terminal. Como posso ver mais histórico de comandos do Bash? Existe alguma configuração específica para o bash que eu deva alterar dos valores padrão no Ubuntu?
Eu não tenho um ~/.bash_history
arquivo. Mas eu tenho um ~/.bashrc
com HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
eHISTCONTROL=ignoreboth
echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
ATUALIZAÇÃO: Agora estou tentando o Ubuntu Server 10.10 no VirtualBox. Se eu desligar o VirtualBox sem o comando shutdown, na próxima vez em que inicializar, os comandos da última sessão não serão salvos no arquivo de histórico.
Os comandos serão salvos apenas 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, tenho que descobrir como salvar o histórico de comandos com mais frequência. Por exemplo, após cada comando.
fonte
echo $HISTSIZE
eecho $HISTFILESIZE
? Meu (Ubuntu)~/.bashrc
tem as mesmasHISTCONTROL
linhas que a sua, com morte cerebral, pois a segunda substitui a primeira e os valores devem ser separados por dois pontos, não separados por vírgula. Se o fizerset -o
, mostra uma linha que diz "histórico ativado"?500
comecho
ambas as variáveis ehistory on
Respostas:
Você pode usar
anexar imediatamente o histórico na memória ao arquivo do histórico. Uma sessão do terminal não pode ver a outra, a menos que isso seja feito ou a outra seja encerrada.
Você pode usar
para ver esse número de entradas.
Além de
HISTSIZE
ver a entrada na página de manual do Bash referenteHISTFILESIZE
.fonte
history -a´ doesn't do anything for me, and not
história 200 | less menos também, mas atualizei minha pergunta com mais informações. Obrigado mesmo assim.Após o logout, o histórico é anexado ao arquivo
~/.bash_history
. Dê uma olhada lá.Por padrão, ele lembrará dos seus últimos 500 comandos. Se você quiser economizar mais definir a variável
HISTSIZE
no~/.bashrc
.Eu também adiciono
ignoredups
aHISTCONTROL
(comHISTCONTROL=$HISTCONTROL:ignoredup
). Isso faz com que comandos consecutivos duplicados sejam salvos apenas uma vez.Dê uma olhada no
man 1 bash
que mais você pode ajustar sobre a história.fonte
~/bash_history
arquivo, e nãoHISTSIZE
em~/.bashrc
mas eu tenhoHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
eHISTCONTROL=ignoreboth
e É Ubuntu Server, se isso importa..
em~/.bash_history
. E, paraHISTSIZE
isso, basta usar o valor padrão de 500 entradas.~/.bash_history
arquivo no meu sistema. Eu costumavals -a
verificar.$HISTFILE
variável, portantoecho $HISTFILE
, você verá onde procurar.echo $HISTFILE
me dá/home/sanoj/.bash_history
- estranho. Talvez não esteja ativado por razões de segurança?o histórico do bash geralmente é carregado quando o shell começa a ser executado e é salvo quando é encerrado normalmente. Você pode usar
history -a
ehistory -n
substituir isso, mas não automaticamente, a menos que abuse$PROMPT_COMMAND
ou algo semelhante.fonte
Sanoj, isso realmente deveria "apenas funcionar"; Não acho que exista algo especial que você precise 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 houver 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
$HOME
variável?fonte