Làm thế nào để thay đổi kích thước lịch sử mãi mãi?


69

Kích thước mặc định của lịch sử trong Ubuntu là 1000 nhưng nó quá nhỏ. Tôi muốn thay đổi nó thành 10000, vì vậy tôi chắp thêm

export HISTSIZE=10000
export HISEFILESIZE=10000

đến .profile và 'nguồn' nó

source .profile

sau đó tôi chạy

echo $HISTSIZE
echo $HISTFILESIZE

1000 đã được hiển thị cho cả hai nhưng tôi khởi động lại máy tính của mình thì nó đã 'mặc định'. Tại sao nó không hoạt động?


Bạn có một lỗi đánh máy ở đây trong câu hỏi: export HISEFILESIZE=10000(mặc dù có vẻ như bạn đã không làm gì .profilenếu tiếng vang của bạn hoạt động). Chỉ trong trường hợp ai đó nhìn vào đây, thì nênHISTFILESIZE
Leo

Câu trả lời:


71

Tôi đã thử điều tương tự, chỉ để phát hiện ra rằng Ubuntu lén lút đặt các biến này ~/.bashrctheo mặc định, được thực thi thay vì ~/.profilecho các shell không đăng nhập, chẳng hạn như chỉ mở một cửa sổ đầu cuối. Thay đổi những dòng này trong ~/.bashrccố định nó cho tôi:

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

6
herfilesize là trong KB?
Patoshi パ ト

12
@duckx Không, HISTFILESIZE có số lượng dòng được lưu trữ trong tệp lịch sử , trong khi HISTSIZE là số dòng được lưu trữ và có sẵn bởi mỗi quy trình shell (và sau đó được lưu vào HISTFILESIZE). Lưu ý rằng không có giá trị (hoặc không có số hoặc âm), thì không có giới hạn nào xảy ra.
vaab

2
Điều này không hoạt động vì một số lý do trên XFCE Terminal
Michal Przybylowicz

1
@MichalPrzybylowicz: có thể được sửa bằng cách viết /etc/bash.bashrcnếu điều đó chấp nhận với bạn. Xem bên dưới. (có lẽ đó cũng là người mất tích export)
serv-inc

43

Từ tài liệu tham khảo 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). 

Vì vậy, đối với danh sách lịch sử vô hạn , hãy tạo:
HISTSIZE = (một số nhỏ hơn 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. 

Vì vậy, đối với .bash_history tệp lịch sử vô hạn , hãy tạo:
HISTFILESIZE = (một số nhỏ hơn 0 )


2

Như được đề cập bởi @Michal Przybylowicz , đôi khi các tệp này dường như bị bỏ qua trong Xubfox (và Lubfox). Nếu vậy, thay vào đó bạn có thể viết các dòng

export HISTSIZE=10000
export HISTFILESIZE=10000

để/etc/bash.bashrc . Điều này sẽ thay đổi các giá trị của các biến môi trường này trên toàn cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.