Minha screen
sessão atual tem 12 janelas abertas. Está em execução há semanas ... sei que executei um convert
comando do ImageMagick em uma dessas 12 janelas da tela na semana passada ... existe alguma maneira de pesquisar facilmente o histórico do Bash de todas as 12 instâncias, sem fechá-las ou em execução history | grep convert
em todas as 12 telas?
11
setopt share_history
no/etc/zsh/zshrc
modo que este problema nunca deve acontecer para mim: PRespostas:
Você pode executar
history -a; history -c
em todas as janelas para salvar o histórico. E entãohistory -r
para atualizá-lo.Para resolvê-lo permanentemente, adicione isso ao seu
.bashrc
:fonte
Parece difícil. Aqui estão alguns métodos que podem funcionar para você.
Se você possui ferramentas de contabilidade de processo instaladas (no Linux, procure um pacote chamado
acct
) e a permissão para usá-las, poderá descobrir quando e possivelmente em qual terminal executouconvert
:Se isso não estiver disponível ou não for conclusivo, você poderá executar um
history
comando em cada instância do bash para procurar porconvert
comandos. Isso encontrará comandos que estavam no arquivo de histórico quando o bash também foi iniciado.$(seq 0 11)
itera sobre os números das janelas da tela. Certifique-se de ignorar as janelas que não estão atualmente em execução no bash, mas algum outro processo que interpreta a entrada de maneira diferente.screen -p $w stuff …
envia a seguinte string como entrada para a janela especificada. Você precisa da nova linha no final da string./tmp/convert.history
conterá uma lista de linhas como3 convert foo.jpg
, se você executouconvert foo.jpg
na janela 3.fonte
history | grep convert
. Em todas as janelas estou desapontado, eu queria aceitar outro grande resposta por Gilles!O tcsh permite compartilhar o histórico entre as sessões através do uso do alias periódico.
No seu arquivo .cshrc (ou .tcshrc):
Isso executará automaticamente o comando history a cada 60 minutos. Isso salvará o histórico em um arquivo de histórico comum em seu diretório pessoal. Para atualizar o histórico com mais frequência, diminua o número do período ou simplesmente execute o comando "periódico" para atualizar manualmente
fonte
O Bash só escreve a história quando sai, o que torna isso problemático na melhor das hipóteses. Ouvi dizer que o zsh pode compartilhar histórico entre sessões ativas.
fonte