Como alterar o tamanho do histórico para sempre?

69

O tamanho padrão da história no Ubuntu é 1000, mas é muito pequeno. Quero alterá-lo para 10000, então acrescento

export HISTSIZE=10000
export HISEFILESIZE=10000

para .profile e 'fonte'

source .profile

então eu corro

echo $HISTSIZE
echo $HISTFILESIZE

1000 foi exibido para ambos, mas eu reinicio meu computador, ele ficou "padrão". Por que isso não funciona?

Mitoxys
fonte
Você tem um erro de digitação aqui na pergunta: export HISEFILESIZE=10000(embora pareça que não ocorreu, .profilese o eco funcionou). Apenas no caso de alguém olhar para ele aqui, deveria serHISTFILESIZE
Leo

Respostas:

71

Eu tentei a mesma coisa, apenas para descobrir que o Ubuntu sorrateiro define essas variáveis ~/.bashrcpor padrão, que é executado em vez de ~/.profileshells que não são de login, como abrir uma janela de terminal. Alterar essas linhas em ~/.bashrccorrigi-lo para mim:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
Paulo
fonte
6
hisfilesize está em KB?
Patoshi #
12
@duckx Não, HISTFILESIZE está no número de linhas armazenadas no arquivo de histórico , enquanto HISTSIZE é o número de linhas armazenadas e disponíveis por cada processo do shell (e salvas em HISTFILESIZE). Observe que, sem valor (ou não número, ou negativo), nenhum limite ocorre.
vaab
2
Por algum motivo, isso não funciona no Terminal XFCE
Michal Przybylowicz
11
@MichalPrzybylowicz: pode ser corrigido por escrito, /etc/bash.bashrcse isso for aceitável para você. Ver abaixo. (talvez ele também era o que faltava export)
serv-inc
43

No Manual de Referência do 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). 

Portanto, para obter uma lista infinita do histórico , faça:
HISTSIZE = (algum número menor que 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. 

Portanto, para um .bash_history arquivo de histórico infinito , faça:
HISTFILESIZE = (algum número menor que 0 )

Par Sir Parser
fonte
2

Como mencionado por @Michal Przybylowicz , esses arquivos parecem ser ignorados no Xubuntu (e Lubuntu) às vezes. Nesse caso, você poderia escrever as linhas

export HISTSIZE=10000
export HISTFILESIZE=10000

para/etc/bash.bashrc . Isso mudará os valores dessas variáveis ​​de ambiente globalmente.

serv-inc
fonte