Você pode saber o uso básico do comando history, mas ele pode fazer muito mais do que isso. O histórico do Bash é geralmente armazenado no arquivo ~ /.bash_history. Ele permite que você recupere e reutilize o registro armazenado de uma maneira eficiente para obter o melhor do recurso de salvar o histórico do bash. Além disso, você também pode personalizar e controlar a saída do comando bash da maneira que desejar.
Neste artigo, explicaremos como usar e personalizar efetivamente o histórico do comando bash para obter o máximo de seus recursos.
Usamos o Debian 10 para executar os comandos e procedimentos mencionados neste artigo.
Usando o histórico do comando bash
1. Visualizando o histórico do bash
Para visualizar todo o histórico dos comandos do shell, você pode executar o seguinte comando no Terminal:
$ históriaEle irá listar todo o histórico de um usuário específico a partir do arquivo de histórico armazenado especificamente para aquele usuário. Você verá todos os comandos começando com um número atribuído a cada um deles. Irá listar os comandos mais antigos no topo começando com o número 1 e os comandos mais recentes na parte inferior.
2. Pesquisando a saída do histórico
Você também pode pesquisar por uma palavra-chave específica na saída do histórico. Emparelhe o comando history com grep e uma palavra-chave específica para pesquisar comandos que correspondam à palavra-chave especificada da seguinte forma:
$ história | grep [palavra-chave]Por exemplo, para listar todos os comandos que incluem a palavra-chave “encontrar”, o comando seria:
$ história | grep find
3. Visualizando os últimos n comandos
O comando de histórico por padrão lista o último número 1000 de comandos executados por um usuário. No caso, você deseja listar apenas um número específico, digamos n número do último comando executado, execute o seguinte comando no Terminal:
$ história nPor exemplo, para listar os últimos 7 comandos executados, o comando seria:
$ história 7Para visualizar o número dos últimos n comandos executados que incluem uma palavra-chave específica, você pode usar a seguinte sintaxe:
$ história | grep palavra-chave | tail -nUm exemplo disso seria visualizar os últimos 4 comandos executados com a palavra-chave “java”.
$ história | grep java | tail -n
4. Visualizando os comandos mais antigos
Para visualizar o número n mais antigo de comandos, você pode usar a seguinte sintaxe no Terminal:
$ história | cabeça -nPara visualizar o número n mais antigo de comandos que incluem uma palavra-chave específica, use a seguinte sintaxe:
$ história | grep palavra-chave | head -nUm exemplo disso seria visualizar os 4 comandos mais antigos executados com a palavra-chave “java”.
$ história | grep java | head -4
5. Limpar o histórico do Bash completamente
Para remover todo o histórico do bash, execute o seguinte comando no Terminal:
$ history -cwPersonalizando o histórico do comando bash
Para personalizar o histórico do comando bash, teremos que fazer alterações no ~ /.arquivo bashrc. Para editar o ~ /.arquivo bashrc, use o seguinte comando:
$ nano ~ /.bashrcQuando terminar de modificar o arquivo, use Ctrl + O e Ctrl + X para salvar e fechar o editor nano.
Em seguida, execute o seguinte comando para aplicar as modificações:
$ source ~ /.bashrc1. Adicionar data e carimbo de data / hora ao histórico do Bash
Se você deseja exibir a data e o carimbo de data / hora junto com o histórico de comandos, você pode fazer isso adicionando a seguinte linha em ~ /.bashrc:
$ export HISTTIMEFORMAT = '% F,% T'Agora execute o história comando e irá mostrar o histórico do comando com os dados correspondentes e carimbo de data / hora.
2. Aumentando o tamanho do histórico do Bash
O Bash por padrão mantém 500 comandos na lista de histórico. No entanto, podemos alterar esse valor usando o valor HISTSIZE.
Para ver o tamanho atual do histórico do bash, execute o seguinte comando no Terminal:
$ echo $ HISTSIZEDa mesma forma, o tamanho padrão do arquivo de histórico do bash é 500. É o número máximo de entradas que estão contidas no arquivo de histórico.
Para aumentar o tamanho do histórico do bash, digamos 10000, adicione as seguintes linhas em ~ /.arquivo bashrc:
$ HISTSIZE = 10000$ HISTFILESIZE = 10000
Para verificar se o tamanho do histórico do bash foi alterado com sucesso, execute os seguintes comandos no Terminal:
$ echo $ HISTSIZE$ echo $ HISTFILESIZE
3. Anexar comandos Bash ao arquivo de histórico
Quando uma sessão bash é fechada, você pode escolher se deseja substituir ou anexar os comandos no arquivo de histórico usando a variável histappend. Para visualizar as configurações atuais, execute o seguinte comando no Terminal:
$ shopt histappendO “on” na saída mostra que a opção histappend está habilitada e os comandos serão anexados no arquivo de histórico em vez de sobrescrever. Enquanto “off” é exibido, a opção histappend está desabilitada e o arquivo será sobrescrito.
Abra o ~ /.arquivo bashrc e:
Adicione a seguinte linha, se desejar anexar os comandos ao arquivo de histórico em vez de substituí-los:
$ shopt -s histappendOu adicione a seguinte linha, se desejar desativar a opção anexar e substituir o arquivo ao sair:
$ shopt -u histappend4. Armazenar histórico do Bash imediatamente
O Bash por padrão só salva a sessão no arquivo de histórico do bash quando a sessão termina. Para alterar este comportamento padrão e salvá-lo instantaneamente cada comando executado, você pode usar PROMPT_COMMAND.
Edite o ~ /.arquivo bashrc e adicione a seguinte linha:
$ PROMPT_COMMAND = 'histórico -a'Agora, sempre que você executar qualquer comando, ele será imediatamente adicionado ao arquivo de histórico.
5. Controlar o histórico do Bash
Podemos controlar a forma como o bash salva nosso histórico de comandos através da variável HISTCONTROL. Podemos especificá-lo para ignorar entradas duplicadas e / ou ignorar entradas com espaços em branco à esquerda.
- ignorespace - elimina comandos que começam com uma lista de histórico de espaço.
- Ignorados - elimina comandos duplicados.
- ignoreboth - Habilita ignoreups e ignorespace
- apagados - elimina duplicados de toda a lista
Para aplicar essas funções, abra o ~ /.bashrc e adicione a seguinte linha com valores separados por dois pontos da seguinte maneira:
$ export HISTCONTROL = ignorespace: ignoreups6. Ignorar comandos específicos
Também podemos controlar quais comandos ignorar no histórico usando uma variável HISTIGNORE. É uma lista de padrões separados por dois pontos em que podemos especificar todos os comandos que queremos ignorar do histórico.
Por exemplo, se não quisermos listar os comandos básicos como history, ls, pwd na lista de histórico, adicionamos a seguinte linha no ~ /.arquivo bashrc:
$ export HISTIGNORE = "histórico: ls: pwd:"Com o histórico de comandos do bash do Linux, você pode fazer muito mais do que apenas repetir os comandos antigos. Neste artigo, aprendemos como usar o histórico do bash para ver os comandos que foram executados anteriormente e também aprendemos a controlar a maneira como o bash salva o histórico de comandos.