จะเปลี่ยนขนาดประวัติได้อย่างไร?


69

ขนาดเริ่มต้นของประวัติใน Ubuntu คือ 1,000 แต่มันเล็กเกินไป ฉันต้องการเปลี่ยนเป็น 10,000 ฉันจึงต่อท้าย

export HISTSIZE=10000
export HISEFILESIZE=10000

เพื่อ.profile และ 'แหล่งที่มา' มัน

source .profile

จากนั้นฉันก็วิ่ง

echo $HISTSIZE
echo $HISTFILESIZE

มีการแสดง 1,000 รายการสำหรับทั้งคู่ แต่ฉันรีบูตเครื่องคอมพิวเตอร์ ทำไมมันไม่ทำงาน


คุณพิมพ์ผิดที่นี่ในคำถาม: export HISEFILESIZE=10000(แม้ว่าดูเหมือนว่าคุณไม่ได้อยู่ในของคุณ.profileถ้า echos ทำงาน) ในกรณีที่มีคนดูที่นี่มันควรจะเป็นHISTFILESIZE
Leo

คำตอบ:


71

ฉันลองสิ่งเดียวกันเพียงเพื่อค้นพบว่า Ubuntu ลับ ๆ ล่อใจตั้งค่าตัวแปรเหล่านี้~/.bashrcตามค่าเริ่มต้นซึ่งจะถูกดำเนินการแทน~/.profileการไม่ใช่เปลือกหอยเข้าสู่ระบบเช่นเพิ่งเปิดหน้าต่างเทอร์มินัล เปลี่ยนบรรทัดเหล่านี้ในการ~/.bashrcแก้ไขสำหรับฉัน:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

6
ขนาดไฟล์ของเขาอยู่ในหน่วย KB?
Patoshi パトシ

12
@duckx ไม่ HISTFILESIZE อยู่ในจำนวนบรรทัดที่เก็บไว้ในไฟล์ประวัติในขณะที่ HISTSIZE คือจำนวนบรรทัดที่จัดเก็บและพร้อมใช้งานโดยแต่ละกระบวนการเชลล์ (จากนั้นบันทึกลงใน HISTFILESIZE) โปรดทราบว่าไม่มีค่า (หรือไม่ใช่ตัวเลขหรือค่าลบ) ดังนั้นจึงไม่มีการ จำกัด
vaab

2
สิ่งนี้ไม่สามารถใช้งานได้ด้วยเหตุผลบางอย่างใน XFCE Terminal
Michal Przybylowicz

1
@MichalPrzybylowicz: สามารถแก้ไขได้โดยการเขียน/etc/bash.bashrcหากยอมรับได้กับคุณ ดูด้านล่าง (บางทีมันอาจจะเป็นสิ่งที่ขาดหายไปexport)
serv-inc

43

จากคู่มืออ้างอิง Bash :

HISTSIZE 
    The maximum number of commands to remember on the history list.

    If the value is 0, 
       **commands are not saved** in the history list. 

    Numeric values less than zero result in 
       every command being saved on the history list (there is no limit). 

ดังนั้นสำหรับรายการประวัติอนันต์ให้:
HISTSIZE = (จำนวนน้อยกว่า 0 )

HISTFILESIZE 
    The maximum number of lines contained in the history file. 

    When this variable is assigned a value, 
        the history file is truncated, if necessary, 
        to contain no more than that number of lines 
        by removing the oldest entries. 

        The history file is also truncated to this size after 
        writing it when a shell exits. 

    If the value is 0, 
        **the history file is truncated to zero size.** 

    Non-numeric values and numeric values less than zero 
        inhibit truncation. 

ดังนั้นสำหรับ.bash_history ไฟล์ประวัติที่ไม่มีที่สิ้นสุดให้:
HISTFILESIZE = (บางจำนวนน้อยกว่า 0 )


2

ดังที่@Michal Przybylowiczไฟล์เหล่านี้ดูเหมือนจะถูกละเว้นใน Xubuntu (และ Lubuntu) บางครั้ง ถ้าเป็นเช่นนั้นคุณสามารถเขียนบรรทัดแทน

export HISTSIZE=10000
export HISTFILESIZE=10000

/etc/bash.bashrcไปยัง สิ่งนี้จะเปลี่ยนค่าของตัวแปรสภาพแวดล้อมเหล่านี้ทั่วโลก

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