O comando history no Linux (histórico do Bash)
O comando history no Linux é uma ferramenta poderosa para usuários que trabalham com o shell Bash. Ele mantém o controle dos comandos executados anteriormente, permitindo que os usuários visualizem, recuperem e até reexecutem comandos sem precisar digitá-los novamente. Isso pode aumentar significativamente a produtividade, economizando tempo e reduzindo a chance de cometer erros ao redigitar comandos longos.
O que é o Bash History?
O Bash, como muitos outros shells, mantém um registro dos comandos digitados em um arquivo de histórico. Na maioria das distribuições Linux, esse histórico é armazenado em um arquivo chamado .bash_history no diretório inicial de cada usuário (~/.bash_history). Por padrão, cada comando inserido no shell é anexado a esse arquivo quando a sessão termina, permitindo que os usuários revisitem comandos de sessões anteriores.
Uso básico do comando history
O comando history é simples de usar e oferece várias maneiras de visualizar e interagir com seu histórico de comandos. Aqui estão alguns dos usos mais comuns:
- Exibir histórico de comandos:
A execução do comando history sem nenhum argumento exibirá uma lista dos comandos mais recentes que você digitou, juntamente com um número ao lado de cada comando.histórico
Isso exibe os últimos n comandos, em que n é geralmente em torno de 500 ou 1.000, dependendo da configuração do seu sistema.
- Especificar o número de comandos:
Você pode limitar o número de comandos exibidos especificando um número. Por exemplo, para ver os últimos 10 comandos:histórico 10
Recuperação de comandos do histórico
O comando history também permite que você recupere e reutilize facilmente comandos executados anteriormente:
- Usando a notação ! (ponto de exclamação):
Isso permite que você execute novamente comandos diretamente do histórico:- !! – Executa novamente o último comando que você executou.
!!
- !n – Executa o comando na posição n da lista de histórico.
!42
Isso executaria novamente o comando listado no número 42 do histórico.
- !string – Localiza o comando mais recente que começa com string e o executa.
!git
Isso executaria o comando mais recente que começa com git.
- !! – Executa novamente o último comando que você executou.
- Uso das teclas de seta:
Você pode usar as teclas de seta para cima e para baixo para percorrer os comandos anteriores diretamente no terminal. Isso é especialmente útil para encontrar rapidamente comandos recentes.
Edição e modificação do histórico
- Remover entradas específicas:
Você pode excluir um comando específico do histórico usando history -d seguido do número da linha:history -d 42
Isso excluiria o comando na linha 42 da lista de histórico.
- Limpar todo o histórico:
Para remover todos os comandos do arquivo de histórico, use:history -c
Isso limpa o histórico da sessão atual. Para limpar também o histórico salvo em ~/.bash_history, substitua o arquivo:
history -c && > ~/.bash_history
Configuração do histórico do Bash
O comportamento do histórico pode ser personalizado por meio de variáveis de ambiente e definições de configuração nos arquivos ~/.bashrc ou ~/.bash_profile:
- HISTSIZE:
Essa variável controla quantos comandos são mantidos na memória durante uma sessão. Por exemplo, para manter 1000 comandos:export HISTSIZE=1000
- HISTFILESIZE:
Essa variável define o número de linhas (comandos) que são salvas no arquivo ~/.bash_history. Por exemplo:export HISTFILESIZE=2000
Isso significa que 2000 comandos serão mantidos no arquivo de histórico mesmo após o logout.
- HISTCONTROL:
Essa variável determina como os comandos são armazenados. As opções comuns incluem:- ignoredups – Impede que comandos duplicados sejam adicionados ao histórico.
- ignorespace – Os comandos que começam com um espaço não são adicionados ao histórico.
- ignoreboth – Combina ignoredups e ignorespace.
Exemplo de configuração do HISTCONTROL para ignorar duplicatas:
export HISTCONTROL=ignoredups
- HISTTIMEFORMAT:
Para incluir um registro de data e hora em cada entrada do histórico, defina HISTTIMEFORMAT:export HISTTIMEFORMAT="%F %T "
Isso prefixará cada registro do histórico com a data (%F) e a hora (%T).
Pesquisa no histórico
- Pesquisa reversa com Ctrl r:
Uma das maneiras mais eficientes de pesquisar um comando no histórico é usar a tecla Ctrl r. Comece a digitar parte do comando e o Bash encontrará comandos correspondentes à medida que você digitar. Pressionar Ctrl r novamente percorrerá as correspondências anteriores. - Grep com histórico:
Você também pode usar o grep para pesquisar a saída do histórico:history | grep git
Isso mostrará todos os comandos que contêm a palavra git.
Conclusão
O comando history é uma parte fundamental do trabalho com o shell Bash, oferecendo uma maneira de manter o controle dos comandos anteriores e simplificar os fluxos de trabalho. Com sua capacidade de recuperar, pesquisar e personalizar o histórico de comandos, ele ajuda a tornar as operações de linha de comando mais eficientes e fáceis de usar. Ao dominar o histórico e seus recursos relacionados, os usuários podem acelerar significativamente seu trabalho em ambientes Linux.