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.