Jak zmienić rozmiar historii na zawsze?

69

Domyślny rozmiar historii w Ubuntu to 1000, ale jest za mały. Chcę to zmienić na 10000, więc dołączam

export HISTSIZE=10000
export HISEFILESIZE=10000

do .profile „źródła”

source .profile

wtedy biegnę

echo $HISTSIZE
echo $HISTFILESIZE

Dla obu wyświetliło się 1000, ale po ponownym uruchomieniu mojego komputera poszło „domyślnie”. Dlaczego to nie działa?

Mitoxys
źródło
Masz literówkę tutaj w pytaniu: export HISEFILESIZE=10000(chociaż wydaje się, że nie zrobiłeś tego, .profilejeśli echo zadziałało). Na wypadek, gdyby ktoś na to spojrzał, powinien to byćHISTFILESIZE
Leo

Odpowiedzi:

71

Próbowałem tego samego, tylko po to, aby odkryć, że podstępne Ubuntu ~/.bashrcdomyślnie ustawia te zmienne , które jest wykonywane zamiast ~/.profiledla powłok nie zalogowanych, takich jak otwarcie okna terminala. Zmiana tych wierszy ~/.bashrcnaprawiła to dla mnie:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
Paweł
źródło
6
jego rozmiar pliku jest w KB?
Patoshi パ ト シ
12
@duckx Nie, HISTFILESIZE jest liczbą linii przechowywanych w pliku historii , natomiast HISTSILE to liczba linii przechowywanych i dostępnych przez każdy proces powłoki (a następnie zapisywana w HISTFILESIZE). Zauważ, że bez wartości (lub nieliczbowej lub ujemnej), wówczas nie występuje ograniczenie.
vaab
2
Z jakiegoś powodu to nie działa na terminalu XFCE
Michał Przybylowicz
1
@MichalPrzybylowicz: można to naprawić, pisząc, /etc/bash.bashrcjeśli jest to dla Ciebie akceptowalne . Patrz poniżej. (być może brakowało export)
serv-inc
43

Z podręcznika użytkownika 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). 

Aby uzyskać nieskończoną listę historii , wykonaj:
HISTSIZE = (pewna liczba mniejsza niż 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. 

Dlatego dla nieskończonego .bash_history pliku historii wykonaj:
HISTFILESIZE = (pewna liczba mniejsza niż 0 )

Paruj Sir Parsera
źródło
2

Jak wspomniał @Michal Przybylowicz , pliki te wydają się czasami ignorowane w Xubuntu (i Lubuntu). Jeśli tak, możesz zamiast tego napisać wiersze

export HISTSIZE=10000
export HISTFILESIZE=10000

do/etc/bash.bashrc . Spowoduje to globalną zmianę wartości tych zmiennych środowiskowych.

serv-inc
źródło