Bash Geçmişi
Etkin terminalde verilen tüm yeni komutlar .bash_history
, aşağıdaki komutla dosyaya eklenebilir :
history -a
Anlaşılması gereken tek zor kavram, her terminalin kendi bash geçmiş listesine sahip olmasıdır ( .bash_history
terminali açtığınızda dosyadan yüklenir )
Bu aktif terminalin ömrü boyunca diğer terminaller tarafından yazılan herhangi bir yeni geçmişi çekmek istiyorsanız, .bash_history
dosyanın içeriğini aktif bash geçmişi listesine ekleyebilirsiniz.
history -c;history -r
Bu, geçerli geçmiş listesini temizler, böylece tekrarlanan bir liste almaz ve geçmiş dosyasını (şimdi boş) listeye ekleriz.
Çözüm
PROMPT_COMMAND
Her yeni istemle bir komut vermek için bash değişkenini kullanabilirsiniz (terminalde enter tuşuna her bastığınızda)
export PROMPT_COMMAND='history -a'
Bu, her komutu verildikçe geçmiş dosyasına kaydeder .
Sonuç
Şimdi açtığınız yeni terminaller, diğer terminallere gerek kalmadan diğer terminallerin geçmişine sahip olacak exit
. Bu benim tercih ettiğim iş akışı.
Daha Hassas
Diyelim ki (bazı nedenlerden dolayı) aynı anda kullandığınız iki terminaliniz var ve geçmişin her yeni komut için her ikisini de yansıtmasını istiyorsunuz.
export PROMPT_COMMAND='history -a;history -c;history -r'
Buradaki ana dezavantaj, karşı terminalden en son geçmişi almak için PROMPT_COMMAND'ı yeniden çalıştırmak için enter tuşuna basmanız gerekebilir.
Bu daha kesin seçeneğin neden aşırıya kaçmış olduğunu görebilirsiniz, ancak bu kullanım durumunda işe yarar.