Quero que meu .bash_history
arquivo seja ilimitado. Por exemplo, para que eu possa sempre voltar e ver como eu construí / configurei algo, ou qual foi o comando bacana, ou como algum comando quebrou algo semanas atrás. Como altero essa configuração?
350
Respostas:
Defina
HISTSIZE
eHISTFILESIZE
em .bashrc como uma sequência vazia:No bash 4.3 e posterior, você também pode usar
HISTSIZE=-1 HISTFILESIZE=-1
:fonte
HISTSIZE= HISTFILESIZE=
resulta em desabilitar completamente o histórico do bash, pelo menos para mim.HISTSIZE=-1 HISTFILESIZE=-1
desabilitou meu histórico, enquantoHISTSIZE= HISTFILESIZE=
fazia o truque. CentOS 7 aqui.HISTSIZE= HISTFILESIZE=
você deveexport HISTSIZE=
export HISTFILESIZE=
Depois de várias iterações grandes e feias e casos extremos estranhos ao longo dos anos, agora tenho uma seção concisa do meu .bashrc dedicado a isso.
Primeiro, você deve comentar ou remover esta seção do seu .bashrc (padrão para Ubuntu). Caso contrário, determinados ambientes (como
screen
sessões em execução ) ainda truncarão seu histórico:Segundo, adicione isso na parte inferior do seu .bashrc:
Nota: todos os comandos são gravados imediatamente após a execução; portanto, se você colar acidentalmente uma senha, não poderá simplesmente "matar -9 %%" para evitar a gravação do histórico, será necessário removê-la manualmente.
Observe também que cada sessão do bash carregará o arquivo de histórico completo na memória, mas mesmo se o arquivo de histórico aumentar para 10 MB (o que levará muito, muito tempo), você não notará muito efeito no tempo de inicialização do bash.
fonte
HISTFILESIZE=
eHISTSIZE=
branco em vez de -1, e certifique-se que você não tem quaisquer outras declarações desses parâmetros em uma .bashrc ou .bash_profile ou .profile..bashrc
, eu tinha essa configuração depois em outro arquivo carregado por .bashrc ..., agora trabalhando! valeu!cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(e possivelmenteHISTSIZE
) terá efeito imediato não pode ser enfatizado demais .Como Jörg Beyer mencionou acima,
HISTSIZE
eHISTFILESIZE
são fundamentais.Além disso, você deve definitivamente verificar a variável ambiental
HISTCONTROL
, que permite fazer coisas legais, como não armazenar comandos duplicados do histórico (HISTCONTROL=erasedups
). Não há nenhum ponto em ter histórico ilimitado se você precisar navegar por centenas de linhas decd ..
ou similares.Links: aqui , e trabalhando com o histórico do bash . Também vale a pena navegar nas Perguntas frequentes sobre o bash Variable .
fonte
Ctrl-r
carrosCtrl-o
Ctrl-o
Ctrl-o
Ctrl-o
. É por isso que mantenho duplicatas na história.Ctrl-o
?Ctrl-o
executa o comando no prompt e mostra imediatamente o comando logo após o anterior no histórico. Um benefício é que, depois de usarCtrl-r
para encontrar um comando antigo (possivelmente usando as setas para cima e para baixo para passar para comandos vizinhos no histórico), basta manterCtrl
pressionado e pressionaro
várias vezes para executar novamente uma série anterior de comandos, mesmo em loop infinito se você quiser. Veja também GNU Readline - WikipediaExistem (pelo menos) dois envios relevantes aqui:
Acho que podemos concordar que o termo ilimitado geralmente é o mesmo que muito grande (ou você tem armazenamento ilimitado de arquivos?). Então, basta definir os valores muito grandes.
fonte