วิธีการตั้งค่าจำนวนคำสั่งประวัติการเรียกคืน


15

ฉันกำลังใช้ทุบตี เพื่อเรียกดูประวัติคำสั่งของฉันฉันกำลังเรียกhistoryคำสั่งที่ฉันเชื่อว่ากำลังเรียกโปรแกรม Gnu ในชื่อเดียวกัน (ฉันไม่รู้ว่ามีวิธีเฉพาะทุบตีที่ดีกว่า)

ใน. bashrc ของฉันฉันมีบรรทัดที่export PROMPT_COMMAND='history -a'จะเก็บประวัติจากเซสชันทุบตีหลายครั้งที่ฉันใช้อยู่

ถ้าฉันทำประวัติฉันเห็น 524 รายการในปัจจุบันเท่านั้น สามารถกำหนดค่านี้ได้หรือไม่ ฉันต้องการที่จะเพิ่มจำนวนนี้เป็นจำนวนมากขึ้นกล่าวว่า 2000

คำตอบ:


19

ก่อนอื่นhistory เป็นวิธีทุบตีเฉพาะไม่มีดีกว่า historyคำสั่งเป็น builtin ทุบตีที่คุณสามารถดูโดยการเรียกใช้

$ type history 
history is a shell builtin

ตอนนี้จำนวนคำสั่งที่จำได้ถูกควบคุมโดยHISTSIZEตัวแปร หากต้องการตั้งเป็นจำนวนที่มากกว่าให้เพิ่มบรรทัดนี้เป็นของคุณ.profile(เพราะเหตุใดที่นี่จึงเป็นที่ ๆ ดีกว่า.bashrcดูได้ที่นี่ ):

export HISTSIZE=2000

จากนี้ไปhistoryจะส่งคืนคำสั่ง 2000 ล่าสุดที่คุณรัน


5

ใช่man bashพูดว่า:

HISTSIZE - จำนวนคำสั่งที่ต้องจดจำในประวัติคำสั่ง

แต่มีReadlineตัวแปรของ:history-size

ตั้งค่าจำนวนรายการประวัติสูงสุดที่บันทึกไว้ในรายการประวัติ หากตั้งค่าเป็นศูนย์รายการประวัติที่มีอยู่จะถูกลบและไม่มีการบันทึกรายการใหม่ หากตั้งค่าเป็นน้อยกว่าศูนย์จำนวนรายการประวัติไม่ จำกัด ตามค่าเริ่มต้นจำนวนรายการประวัติไม่ จำกัด

คุณสามารถตั้งค่าhistory-sizeด้วยHISTSIZE=1000, bind 'set history-size 1000'หรือบรรทัดต่อไปนี้ในของคุณ~/.inputrc:set history-size 1000

ตัวอย่าง :

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-sizeให้บริการตั้งแต่bash-4.0-alpha: เปลี่ยน


2

HISTSIZEสั่งตัวแปรหลายวิธีที่คำสั่งจะถูกเก็บไว้ในประวัติศาสตร์การทำงานและการHISTFILESIZEกำหนดคำสั่งหลายวิธีจากประวัติศาสตร์การทำงานจะถูกบันทึกไว้ครั้งหนึ่งออกจากเปลือก

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