Como definir o número de recuperações do histórico de comandos

15

Estou usando o bash. Para navegar no meu histórico de comandos, chamo o historycomando que acredito estar chamando o programa Gnu com o mesmo nome. (Não sei se existe uma maneira específica melhor para o bash).

No meu .bashrc, atualmente tenho uma linha export PROMPT_COMMAND='history -a'para preservar o histórico das minhas várias sessões do bash que estou executando.

Se eu fizer história, atualmente vejo apenas 524 entradas. Isso é configurável? Eu gostaria de aumentar isso para um número muito maior, digamos 2000.

Gilles
fonte

Respostas:

19

Primeiro de tudo, history é o caminho específico do bash, nada melhor. ohistory comando é um bash embutido, como você pode ver executando

$ type history 
history is a shell builtin

Agora, o número de comandos que ele lembra é controlado pela HISTSIZEvariável. Para configurá-lo para um número maior, adicione esta linha ao seu .profile(por que esse é um lugar melhor para ele do que .bashrc, veja aqui ):

export HISTSIZE=2000

A partir de agora, historyretornará os últimos 2000 comandos que você executou.

terdon
fonte
5

Sim, man bash diz:

HISTSIZE - O número de comandos a serem lembrados no histórico de comandos

Mas há uma Readlinevariável:history-size

Defina o número máximo de entradas do histórico salvas na lista de histórico. Se definido como zero, qualquer entrada do histórico existente será excluída e nenhuma nova entrada será salva. Se definido como um valor menor que zero, o número de entradas do histórico não será limitado. Por padrão, o número de entradas do histórico não é limitado.

Você pode definir history-sizecom HISTSIZE=1000, bind 'set history-size 1000'ou com a seguinte linha na sua ~/.inputrc:set history-size 1000

Exemplos :

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-sizedisponível desde bash-4.0-alpha: ALTERAÇÕES

Evgeny Vereshchagin
fonte
2

A HISTSIZEvariável determina quantos comandos são mantidos no histórico de execução e HISTFILESIZEdetermina quantos comandos do histórico de execução são salvos quando o shell sai.

Bratchley
fonte