Android

Comando history no linux (bash history)

Linux Commands for Beginners 15 - Bash History

Linux Commands for Beginners 15 - Bash History

Índice:

Anonim

, falaremos sobre o comando history , que permite exibir uma lista de comandos executados anteriormente, pesquisar na lista e manipular o arquivo de histórico.

Usando o comando history e as expansões do histórico

history é um shell embutido e seu comportamento pode diferir ligeiramente de shell para shell. Abordaremos a versão do history do Bash.

Em sua forma mais simples, quando chamado sem nenhuma opção ou argumento, o comando history exibe a lista inteira do histórico com números de linha.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Digitar !n executa o n-ésimo comando da lista de histórico e !-n o comando n é retornado. No exemplo a seguir, estamos executando o comando na linha 467 :

!467

Outra maneira de executar um comando é usar a expansão !word . word refere-se ao comando mais recente começando com 'word'.

Normalmente, o history exibe muitas linhas de saída que não cabem na tela. Para visualizar a saída, uma página de cada vez, canalize-a para um programa de pager como more comando more ou less :

history | less

Para exibir as últimas n linhas, passe o número como argumento ao comando Por exemplo, para exibir apenas as últimas cinco linhas da lista de histórico, digite:

history -5

Use as teclas de seta down up e down para navegar pelas entradas da lista. Quando o comando que você procurou for exibido, pressione Enter para executá-lo.

Type !! para executar o comando anterior:

!!

Isso é especialmente útil quando você esquece de acrescentar um comando ao sudo e, em vez de digitar novamente o comando, pode digitar:

sudo !!

!-1 é o mesmo que !! e executa o último comando da lista de histórico !-2 penúltimo ao final, e assim por diante.

^word1^word2^ permite executar novamente o último comando, substituindo "word1" por "word2". Se você digitou acidentalmente o sduo command vez do sudo command pode repetir o comando usando a palavra correta com:

^sduo^sudo^

Use o comando grep para filtrar a saída. Por exemplo, para visualizar todos os comandos, incluindo "nano", você executaria:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Agora, se você deseja executar novamente o comando nano setup.py digite:

!356

Outra maneira de pesquisar o histórico de comandos é pressionando Ctrl-R . O prompt será alterado para o seguinte, e você poderá começar a procurar um comando executado anteriormente.

(reverse-i-search)`':

O shell exibirá uma linha correspondente. Para passar para a próxima sugestão correspondente, pressione Ctrl-R novamente.

Consulte o manual do Bash para obter mais informações sobre expansão do histórico, modificadores e designadores.

Salvando a lista de histórico

Por padrão, ao iniciar uma nova sessão, o Bash lê a lista de .bash_history arquivo .bash_history . A lista de comandos executados na sessão atual é mantida na memória e salva no arquivo quando a sessão é fechada.

A opção -a permite salvar a lista atual do histórico de sessões no arquivo .bash_history :

history -a

A opção -w grava a lista completa do histórico no arquivo de histórico.

history -w

Histórico de Compensação

O comando history permite limpar a lista completa do histórico ou remover determinadas partes.

Para limpar a lista do histórico, use a opção -c :

history -c

Para excluir uma linha ou linhas específicas entre as posições inicial e final da lista de histórico, use a opção -d .

Por exemplo, para remover as linhas entre 365 e 375 (incluindo essas linhas), digite:

history -d 365 375

Quando um número inteiro negativo é usado, as linhas são contadas novamente no final da lista do histórico.

Os comandos acima limpam a lista de histórico, que é mantida na memória, mas não remove as entradas do arquivo .bash_history no disco. Para limpar o arquivo, você precisa escrever a lista de histórico no arquivo:

history -c history -w

Modificando o comportamento do histórico

O comportamento do histórico do Bash pode ser definido usando várias variáveis ​​de ambiente diferentes. Ao modificar o comportamento do histórico, defina as variáveis ​​em ~/.bashrc ou em qualquer outro arquivo de configuração carregado quando o usuário efetuar login.

Por padrão, o Bash mantém 500 linhas na lista do histórico de comandos. A variável HISTSIZE permite alterar esse valor. Para defini-lo como 10000, adicione a seguinte linha ao seu arquivo .bashrc :

HISTSIZE=10000

A variável HISTCONTROL aceita uma lista de valores separados por dois pontos que define como os comandos são salvos na lista de histórico:

  • ignorespace - comandos que começam com espaço não são salvos na lista de histórico. ignoredups - comandos duplicados não são salvos. ignoreboth - é uma abreviação, incluindo ignorespace e ignoredups .

HISTCONTROL=ignoreboth

Quando a variável HISTTIMEFORMAT é configurada, o Bash acrescenta um registro de data e hora de execução para o comando em cada linha.

Por exemplo, se você definir:

HISTTIMEFORMAT="%F %T: "

O histórico será exibido no seguinte formato:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Conclusão

O comando history exibe uma lista de comandos executados anteriormente. Por exemplo, você pode usar o histórico para visualizar um comando longo que você usou antes e que não se lembra.

terminal de história