วิธียืนยันประวัติทุบตีอย่างไร


9

ฉันไม่รู้ว่านี่เป็นสิ่งที่คาดหวังหรือไม่ แต่ประวัติของฉันไม่ได้รับการบันทึกข้ามเซสชัน นี่คือการพูดว่าถ้าฉันปิดหน้าต่างจากนั้นเมื่อฉันเปิดมันอีกครั้งประวัติศาสตร์ว่างเปล่า ฉันจะคงอยู่ตลอดเซสชันได้อย่างไร?

นี่คือผลลัพธ์ของคำสั่งที่คุณถาม:

 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

หลังจากการแก้ไขที่อธิบายไว้ในคำตอบด้านล่างตอนนี้ฉันได้รับ:

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.

ฉันยังไม่สามารถบันทึกประวัติในเซสชันต่างๆได้ ฉันอ่านคำถามต่อไปนี้:

ดูเหมือนจะไม่มีใครตอบปัญหาของฉันรวมถึงคำตอบด้านล่างจากบุคคลที่มีคำถามของพวกเขาตอบจากซ้ำกันควร


ดูคำถามของฉันที่นี่และคำถามที่เชื่อมโยงไปถึง ลองคำแนะนำในพวกเขาและถามอีกครั้งหากคุณยังมีปัญหาอยู่ ในช่วงเวลาดังกล่าวให้ลงคะแนนเพื่อปิดแบบซ้ำซ้อน
terdon

แก้ไข: set -o | ประวัติ grep แสดงประวัติเปิด echo $ HISTFILE แสดง ~ / .bash_history, echo $ HISTSIZE และ $ HISTFILESIZE ทั้งคู่แสดง 500 แต่ประวัติยังไม่หายไปในเซสชัน
Car981

$ HISTFILE ถูกตั้งค่าเป็น ~ / .bash_history แต่ไม่มีไฟล์. bash_history ใน ~ สิ่งนี้จะเป็นอย่างไร
Car981

โปรดแก้ไขคำถามของคุณเพื่อเพิ่มข้อมูลใหม่แทนที่จะแสดงความคิดเห็น รวมถึงผลของคำสั่งเหล่านี้: set -o | grep history, และgrep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile ls -la ~/ | grep history
terdon

ลองตั้งค่าแฟ้มประวัติเฉพาะเพิ่มบรรทัดนี้ที่คุณ:~/.bashrc export HISTFILE="~/history"นั่นสร้างความแตกต่างหรือไม่?
terdon

คำตอบ:


7

ดูเหมือนว่าคุณ~/.bashrcไม่มีตัวเลือกที่จำเป็น ตรวจสอบให้แน่ใจว่าบรรทัดเหล่านี้อยู่ใน~/.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

มันยังไม่ทำงาน ดูการแก้ไขเพื่ออัปเดตผลลัพธ์ผลลัพธ์ใหม่
Car981

7

ตกลงฉันพบว่ามีอะไรผิดปกติ ฉันไม่สามารถปิดหน้าต่างได้ฉันต้องพิมพ์ "exit" เพื่อปิดอย่างสง่างาม


คุณได้ตอบคำถามของคุณเอง! นี่ยอดเยี่ยม แต่คุณควรทำเครื่องหมายเช่นนี้เพื่อให้คนอื่นรู้ว่าคุณไม่ได้คาดหวังคำตอบเพิ่มเติมใด ๆ
Tiago

ยากที่จะพูดว่านี่เป็นคำตอบที่ยอมรับได้ - ฉันมีปัญหาเดียวกันและปิดหน้าต่างด้วยตนเองเพื่อบันทึกประวัติไม่ใช่ความคิดที่ดี บ่อยครั้งที่ฉันปิดหน้าต่างเทอร์มินัลด้วยวิธีอื่นและไม่ต้องการหลุดออกมา
Krzysztof Bociurko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.