Linux Commands for Beginners 15 - Bash History
Índice:
- Usando o comando
history
e as expansões do histórico - Salvando a lista de histórico
- Histórico de Compensação
- Modificando o comportamento do histórico
- Conclusão
, 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.
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:
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, incluindoignorespace
eignoredups
.
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.
A Dell busca expandir sua oferta no Linux Para expandir suas ofertas no Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações do sistema operacional Linux Em um esforço para expandir suas ofertas de Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações de netbooks para o Linux, disse uma autoridade da empresa na quarta-feira. A empresa está pesquisando a possibilidade de oferecer novos produtos Linux. bas

Smartbooks são dispositivos do tipo netbook que são alimentados por chips projetados pela Arm. Os dispositivos suportam principalmente o sistema operacional Linux e são projetados para aqueles que dependem da Web para a maior parte de sua computação. A Dell não pôde dizer se ofereceria um livro inteligente.
Aproveite a linha de comando com o comando Take

Integre o prompt de comando, a GUI e uma poderosa linguagem de lote com o potente kit de ferramentas Take Command. > Você não adora quando procura um programa que precisa para executar uma função, encontrá-la e depois descobrir que ela faz muito mais? Eu encontrei o Take Command ($ 100, 30 dias de teste gratuito) depois de ter sido frustrado com a linha de comando ruim no Windows. Eu descobri que isso me deu o que eu queria, e muitas coisas que eu não sabia que queria - mas agora eu definitivame
Como usar o comando linux sleep para pausar um script bash

O sono é um utilitário de linha de comando que permite suspender o processo de chamada por um tempo especificado. Neste tutorial, mostraremos como usar o comando sleep do Linux.