Responda:
Tudo o que você precisa fazer é definir HISTSIZE
seu perfil do bash ( ~/.bash_profile
). Você pode deixar por HISTFILESIZE
definir . Isto irá configurar tanto a história na memória ea história baseada em arquivo.
# Saves 10 million lines in memory and in the bash history file.
HISTSIZE=10000000
Explicação, informações adicionais.
O problema é HISTFILESIZE define apenas o histórico máximo armazenado no arquivo quando você inicia uma sessão. HISTSIZE é o que determina quantas linhas são salvas no final de uma sessão. Se HISTFILESIZE é maior do que o seu HISTSIZE, você nunca vai ver mais do que o seu HISTSIZE porque o arquivo está ficando substituído com comandos HISTSIZE ( a menos que você história set para acrescentar, mas isso é um tópico separado: olhar para cima histappend
no shell builtin comandos para que) .
É por isso que você não vê efeito. Com HISTSIZE no padrão (provavelmente 500), seu arquivo de histórico é sempre substituído pelos comandos $ HISTSIZE mais recentes. Qualquer coisa mais antiga (que poderia aumentar a lista além de $ HISTSIZE) é apagada.
Na maioria dos casos, não há necessidade de definir HISTFILESIZE independentemente de HISTSIZE.
HISTSIZE determina quantas linhas serão gravadas no arquivo de histórico. A lista de comandos é truncada na saída, antes de gravar no arquivo de histórico, mantendo N as linhas mais recentes. Por padrão, esta lista substitui o arquivo de histórico.
HISTFILESIZE determina o tamanho do arquivo de histórico (em linhas). O arquivo é truncado na inicialização, mantendo N linhas mais recentes. Além disso, o arquivo de histórico é potencialmente truncado sempre que HISTFILESIZE estiver definido.
Finalmente, embora pareça não estar documentado, o BASH define HISTFILESIZE com base em HISTSIZE se HISTSIZE estiver definido durante a inicialização. Eu tentei isso no macOS e em algumas variedades do Ubuntu, e o comportamento é consistente. Se você definir HISTSIZE em um arquivo de inicialização ( não através da linha de comando, por qualquer meio), HISTFILESIZE será configurado para corresponder. (Tente você mesmo: defina HISTSIZE para um valor arbitrariamente grande em .bash_profile, saia e inicie um novo terminal e, em seguida, echo $HISTSIZE $HISTFILESIZE
você os encontrará correspondentes.)
Como resultado, não há razão para tocar em HISTFILESIZE, a menos que você queira valores diferentes, e os casos de uso com valores diferentes são raros (e geralmente envolvem mais configurações de personalização do histórico para obter algo útil).