De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Como Utilizar e Personalizar o Arquivo .bash_history no Linux

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 9 de novembro de 2025

O arquivo .bash_history é um recurso fundamental no Linux, responsável por armazenar o histórico de comandos executados no terminal. Ele permite que usuários consultem e reutilizem comandos previamente digitados, tornando o trabalho no shell mais ágil e eficiente. Localizado no diretório inicial do usuário (~/.bash_history), esse arquivo registra os comandos digitados em sessões interativas do Bash. Ele é útil não apenas para tarefas cotidianas, mas também para consultar comandos complexos ou longos usados anteriormente. O histórico de comandos é carregado automaticamente pelo shell, e sua funcionalidade pode ser explorada de diversas formas.

Para acessar o histórico de comandos, o Bash oferece o comando history, que exibe uma lista numerada de entradas do histórico. Basta digitar history no terminal para ver os comandos mais recentes. Por exemplo, a saída pode ser algo como:

$ history
1  ls -lah
2  cd /var/www
3  grep 'error' logfile.txt
4  sudo apt update

Com base nessa lista, você pode executar novamente qualquer comando especificando seu número, com !n, onde "n" é o número correspondente. Por exemplo, !4 executará o comando sudo apt update. Também é possível executar novamente o último comando que começa com uma sequência específica de texto, como !sudo, que executará o último comando iniciado com "sudo". Outra funcionalidade prática é a busca interativa no histórico usando Ctrl + r, que permite encontrar rapidamente um comando digitando parte de seu conteúdo.

O .bash_history funciona armazenando o histórico de comandos temporariamente na memória durante a sessão ativa. Quando a sessão é encerrada (logout), os comandos são salvos no arquivo ~/.bash_history no disco, podendo ser acessados novamente em futuras sessões. Esse comportamento é configurável, e o funcionamento do histórico pode ser ajustado de acordo com as necessidades do usuário.

O comportamento do .bash_history é controlado por diversas variáveis de ambiente, que podem ser configuradas no arquivo ~/.bashrc. Por exemplo, a variável HISTSIZE define o número máximo de comandos que podem ser armazenados na memória durante uma sessão, enquanto HISTFILESIZE controla o número de comandos armazenados no arquivo no disco. Para ajustar esses valores, você pode adicionar as linhas a seguir ao arquivo ~/.bashrc:

HISTSIZE=1000        # 1000 comandos na memória
HISTFILESIZE=2000    # 2000 comandos no arquivo no disco

Outra configuração importante é a variável HISTCONTROL, que define regras para ignorar certos tipos de comandos no histórico. Por exemplo, você pode evitar que comandos duplicados consecutivos sejam registrados com HISTCONTROL=ignoredups, ou ignorar comandos iniciados com espaço usando HISTCONTROL=ignorespace. Para combinar ambas as opções, você pode usar HISTCONTROL=ignoreboth.

Para adicionar informações adicionais ao seu histórico, como a hora e a data em que os comandos foram executados, é possível configurar a variável HISTTIMEFORMAT. Por exemplo, adicionando a seguinte linha ao ~/.bashrc:

HISTTIMEFORMAT="%d/%m/%Y %H:%M:%S "

Com essa configuração, o comando history passará a exibir o histórico com data e hora, como no exemplo abaixo:

1  09/11/2025 10:37:45 ls -lah
2  09/11/2025 10:38:00 cd /var/www

Se você não deseja salvar comandos no .bash_history, pode desativar essa funcionalidade desconfigurando a variável HISTFILE, como em:

unset HISTFILE   # Impede que o histórico seja salvo no disco

Por padrão, o histórico no disco é salvo apenas ao final da sessão. No entanto, você pode forçar o salvamento imediato de cada comando no arquivo adicionando a seguinte linha ao ~/.bashrc:

PROMPT_COMMAND='history -a'

Isso é especialmente útil quando você utiliza múltiplas sessões ou terminais ao mesmo tempo, permitindo que o histórico seja sincronizado entre elas. Uma configuração recomendada para tal sincronização envolveria as linhas abaixo, que garantem que o histórico seja salvo e carregado de forma eficiente entre sessões:

shopt -s histappend
PROMPT_COMMAND='history -a; history -n'

Em casos onde você deseja limpar o histórico, seja temporariamente ou permanentemente, é possível usar history -c para limpar o histórico da memória da sessão atual, e history -c && > ~/.bash_history para apagar também o histórico salvo no disco. Caso queira evitar que comandos confidenciais ou senhas sejam armazenadas no histórico, um método simples é iniciar o comando com espaço, desde que HISTCONTROL=ignorespace esteja configurado.

O .bash_history é uma ferramenta poderosa, mas você deve usá-lo de forma consciente, especialmente em relação a comandos sensíveis. Configurá-lo apropriadamente, com base nas variáveis mencionadas, não só torna seu trabalho no terminal mais eficiente, como também pode prevenir eventuais problemas de segurança ou inconsistências. Ao entender e explorar bem esse recurso, você pode otimizar sua produtividade ao usar o shell Bash no Linux.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida