Existe um tamanho máximo para o arquivo de histórico do bash?

17

Posso aumentar o tamanho do histórico de comandos no bash?

Observe que eu uso um computador Red Hat Linux no departamento de graduação em astrofísica aqui (para não ter tantos privilégios).

InquilineKea
fonte

Respostas:

15

Em vez de especificar números, você pode fazer

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

nesse caso, apenas o tamanho do seu disco (e o seu "maior limite de arquivos", se o seu SO ou FS tiver um) é o limite.

No entanto, esteja ciente de que isso acabará desacelerando o bash mais e mais. veja este documento do BashFAQ e o artigo debian-Administration (link original morreu, olhe no espelho: archive.is e archive.org ) para técnicas que melhoram a escala.

Philomath
fonte
Você também pode ter que aumentar o history-sizeseu inputrc.
Chris Baixo
Aviso: conforme observado [ unix.stackexchange.com/a/76129/78713.la ( abaixo)) , isso pode fazer com que o Bash herde os padrões e, se a sua existente .bash_historyfor maior que esses, truncá-los.
22417 Chris-Povirk
8

Você pode usar o logrotate para preservar entradas antigas. Ele permite, por exemplo, definir limites de tamanho que acionarão o arquivamento. Normalmente, é executado a partir de um cronograma diário, mas você também pode invocá-lo a partir do seu .bash_logoutscript.

rozcietrzewiacz
fonte
Parece a abordagem mais sustentável para mim, pois a remoção de limites de tamanho, a longo prazo, terá impactos no desempenho. Embora não esteja certo, chegarei ao limite em breve, receio que demore algum tempo para começar a perceber esses impactos. Entre, considere adicionar a configuração que você definiu e o comando basn logout opcional a adicionar.
Balmipour 27/02
O link está inoperante. Talvez edite para apontar para outro link com as mesmas informações pretendidas?
Dr Beco
7

@ Philomath, desarmar esses ambientes não funciona para mim! Para mim, isso faz com que o bash use seus padrões embutidos (ao que parece) de truncando .bash_history para cerca de 9KiB.

O que funciona para mim é o seguinte no meu .bashrc:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
zenaan
fonte