Bash tarihi nasıl devam ettirilir?


9

Bunun beklenip beklenmediğini bilmiyorum, ancak geçmişim oturumlar arasında kaydedilmedi. Yani pencereyi kapatırsam, tekrar açtığımda tarih boş olur. Oturumlarda nasıl devam ettirebilirim?

İşte size sorduğunuz komutların çıktıları:

 set -o | grep history
history         on

$ grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile
/cygdrive/c/cygwin/home/car/.bashrc:# Make bash append rather than overwrite the history on disk
/cygdrive/c/cygwin/home/car/.bashrc:# History Options
/cygdrive/c/cygwin/home/car/.bashrc:# Don't put duplicate lines in the history.
/cygdrive/c/cygwin/home/car/.bashrc:# export PROMPT_COMMAND="history -a"
grep: /cygdrive/c/cygwin/home/car/etc/bash.bashrc: No such file or directory
grep: /cygdrive/c/cygwin/home/car/etc/profile: No such file or directory
/cygdrive/c/cygwin/home/car/.profile:if [ "x$HISTFILE" == "x/.bash_history" ]; then
/cygdrive/c/cygwin/home/car/.profile:  HISTFILE=$HOME/.bash_history

$ ls -la ~/ | grep history -> no output

$ echo $HISTFILE 
~/.bash_history
$ echo $HISTSIZE
500
$ echo $HISTFILESIZE 
500

Aşağıdaki cevapta açıklanan düzenlemelerden sonra, şimdi:

grep -i hist .bashrc
# Make bash append rather than overwrite the history on disk
shopt -s histappend
# History Options
# Don't put duplicate lines in the history.
export HISTCONTROL="ignoredups"
# (added) A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# HISTIGNORE is a colon-delimited list of patterns which should be excluded.

Hala oturumlar arasında bir geçmiş kaydedemiyorum. Aşağıdaki soruları okudum:

Hiçbiri, sorununu sözde yinelenen sorudan cevaplayan kişinin yanıtını da içeren sorunumu ele almadı.


Ayrıca buradaki soruma ve bağlantılandırdığı sorulara bakın . İçlerindeki önerileri deneyin ve hala sorun olup olmadığını tekrar sorun. Emantime, oy bir kopya olarak kapatmak için.
terdon

düzenleme: set -o | grep tarih gösterileri geçmişi hem 500'den göstermek echo $ HISTFILE gösterileri ~ / .bash_history, eko, $ HISTSIZE ve $ HISTFILESIZE üzerindedir Ama tarih hala oturumları arasında kalıcı değildir
Car981

$ HISTFILE ~ / .bash_history olarak ayarlanmış, ancak ~ içinde .bash_history dosyası yok. Bu nasıl olabilir ?
Car981

Lütfen yorum yapmak yerine yeni bilgiler eklemek için sorunuzu düzenleyin . Bu komutların çıktısını ekleyin: set -o | grep history, grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profileve ls -la ~/ | grep history.
terdon

Blogunuza bu satırı ekleyin, belirli bir tarih dosyasını ayarlamayı deneyin ~/.bashrc: export HISTFILE="~/history". Bu bir fark yaratır mı?
terdon

Yanıtlar:


7

Görünüşe göre ~/.bashrc, gerekli seçeneklere sahip değilsiniz. Mutlaka bu satırlar Gözlerinde farklı olduğundan emin olun ~/.bashrc:

# Make Bash append rather than overwrite the history on disk:
shopt -s histappend
# A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# Don't put duplicate lines in the history.
export HISTCONTROL=ignoredups

Hala çalışmıyor. Yeni çıktı sonucunun güncellenmesi için düzenlemeye bakın.
Car981

7

Tamam neyin yanlış olduğunu öğrendim. Pencereyi kapatamıyorum, zarifçe kapanması için 'exit' yazmam gerekiyor.


Kendi sorunuzu cevapladınız! Bu harika, ama başkaları için başka cevap beklemediğinizi bilmesi için bunu böyle işaretlemelisiniz.
Tiago

Bunun kabul edilebilir bir cevap olduğunu söylemek zor - aynı sorunu yaşadım ve geçmişi kaydetmek için pencereyi elle kapatmak iyi bir fikir değil. Genellikle, terminal penceresini başka şekillerde kapatıyorum ve o zaman onu kaybetmek istemiyorum.
Krzysztof Bociurko
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.