Como usar seu histórico de bash no terminal Linux ou macOS

Índice:

Como usar seu histórico de bash no terminal Linux ou macOS
Como usar seu histórico de bash no terminal Linux ou macOS

Vídeo: Como usar seu histórico de bash no terminal Linux ou macOS

Vídeo: Como usar seu histórico de bash no terminal Linux ou macOS
Vídeo: Eletrocardiograma - Como Ativar No Apple Watch - YouTube 2024, Maio
Anonim
O bash shell é o ambiente de terminal padrão incluído na maioria das distribuições do Linux, incluído no macOS, e disponível para instalação no Windows 10. Ele lembra os comandos digitados e os armazena em um arquivo de histórico. Você provavelmente conhece algumas noções básicas da história do bash, mas é muito mais poderoso do que você imagina.
O bash shell é o ambiente de terminal padrão incluído na maioria das distribuições do Linux, incluído no macOS, e disponível para instalação no Windows 10. Ele lembra os comandos digitados e os armazena em um arquivo de histórico. Você provavelmente conhece algumas noções básicas da história do bash, mas é muito mais poderoso do que você imagina.

Atalhos do teclado

Para percorrer seu histórico bash, você pode usar alguns dos muitos atalhos de teclado úteis do bash. Pressione estes atalhos e os comandos que você usou anteriormente aparecerão no prompt.

  • Seta para cima ou Ctrl + P: Vá para o comando anterior em seu histórico. Pressione a tecla várias vezes para percorrer os comandos que você usou.
  • Seta para baixo ou Ctrl + N: Ir para o próximo comando no seu histórico. Pressione a tecla várias vezes para percorrer os comandos que você usou.
  • Alt + R: Reverta as alterações em um comando que você extraiu do seu histórico, se você as editou na linha atual.

O Bash também tem um modo especial de "recall" que você pode usar para pesquisar os comandos que executou anteriormente, em vez de percorrê-los um a um.

  • Ctrl + R: Rechamar o último comando que corresponde aos caracteres que você fornece. Pressione este atalho e comece a digitar para pesquisar um histórico no bash.
  • Ctrl + O: Execute o comando que você encontrou com Ctrl + R.
  • Ctrl + G: Deixe o modo de pesquisa de histórico sem executar um comando.
Image
Image

Ver o seu histórico de bash

Você pode imprimir todo o histórico do bash na tela executando um único comando:

history

Você verá uma lista de todos os comandos em seu histórico bash, junto com um número à esquerda de cada um. O comando com um “1” próximo a ele é o comando mais antigo em seu histórico bash, enquanto o comando com o maior número é o mais recente.

Você pode fazer o que quiser com a saída. Por exemplo, você poderia canalizá-lo para o
Você pode fazer o que quiser com a saída. Por exemplo, você poderia canalizá-lo para o

grep

comando para pesquisar seu histórico de comandos.

history | grep your_search

Image
Image

Você também pode canalizá-lo para o

tail

comando para visualizar apenas um pequeno número dos comandos recentes que você executou. Por exemplo, o comando a seguir mostraria as últimas 5 entradas em seu histórico.

history | tail -5

Image
Image

Executar comandos do seu histórico

O Bash pode rapidamente “expandir” os comandos anteriores ou expandi-los e modificá-los. Esse recurso é conhecido como "expansão de histórico" e usa um ponto de exclamação, conhecido como "bang". Basta digitá-los no prompt e pressionar Enter para executá-los como se você tivesse executado outro comando.

Para executar um comando específico do seu histórico pelo seu número, use o seguinte comando:

!#

Por exemplo, digamos que você queira executar o 12º comando do seu histórico bash. Esse é o comando com um "12" à esquerda quando você executa o

history

comando. Você digitaria o seguinte comando.

!12

Para executar novamente o último comando executado, digite o seguinte. Isso tem o mesmo efeito de pressionar a seta para cima uma vez para exibir o comando anterior e pressionar Enter.
Para executar novamente o último comando executado, digite o seguinte. Isso tem o mesmo efeito de pressionar a seta para cima uma vez para exibir o comando anterior e pressionar Enter.

!!

Você também pode se referir a um comando de um certo número de linhas de volta. Por exemplo,

!-2

iria executar o segundo para o último comando que você correu.

!!

significa a mesma coisa que

!-1

This expansion works anywhere on the line. You can add anything you like before or after
This expansion works anywhere on the line. You can add anything you like before or after

!!

ou qualquer uma das outras expressões nesta seção. Por exemplo, você pode digitar o seguinte comando para executar novamente o último comando executado

sudo

dando-lhe privilégios de root. Isso é particularmente útil se você esquecer de adicionar

sudo

antes de executar um comando.

sudo !!

Ou, por exemplo, você poderia executar novamente o comando anterior e canalizar sua saída para o grep para pesquisar algum texto.

!! | grep text

Para procurar um comando no seu histórico e executá-lo, digite o seguinte. Isso executará o último comando que corresponde ao texto especificado:
Para procurar um comando no seu histórico e executá-lo, digite o seguinte. Isso executará o último comando que corresponde ao texto especificado:

!text

Então, se você executou recentemente um comando que começou com

ping

você pode executar o seguinte comando para procurá-lo. Isto irá procurar para trás através do seu histórico, localize o comando mais recente que começa com “

pi

“E imediatamente executá-lo:

!pi

Você pode acrescentar um
Você pode acrescentar um

:p

para qualquer uma das expansões acima e bash irá imprimir o comando para o terminal sem executá-lo. Isso é útil se você quiser confirmar que está selecionando o comando correto antes de executá-lo.

!12:p

!!:p

!text:p

Image
Image

Reutilizar argumentos da sua história

Bash também permite que você execute um novo comando, mas use argumentos de comandos anteriores em seu histórico. Isso pode ajudá-lo a reutilizar rapidamente argumentos longos ou complicados sem precisar redigitá-los.

command !$

Por exemplo, digamos que você tenha executado o comando

touch /home/chris/some_long_file_name_you_dont_want_to_type_again

. Você agora quer rodar o comando

nano /home/chris/some_long_file_name_you_dont_want_to_type_again

. Em vez de digitar tudo do zero, você pode executar:

nano !$

o

!$

faria bash preencher automaticamente o último argumento do seu comando anterior.

Isso só preenche o último argumento. Então, se você correr
Isso só preenche o último argumento. Então, se você correr

ping google.com -c 4

e então corra

ping !$

isso só se expandiu para"

ping 4

“.

Para corrigir essa situação, você pode usar o seguinte truque para expandir o primeiro argumento na linha, em vez do último:

command !^

Então, se você correu

ping google.com -c 4

e depois correu

ping !^

bash iria expandir isso para"

ping google.com'

Para preencher todos os argumentos usados no comando anterior, em vez de apenas um único argumento, você usaria o seguinte:
Para preencher todos os argumentos usados no comando anterior, em vez de apenas um único argumento, você usaria o seguinte:

command !*

Então, se você correu

ping !*

em vez disso, o bash preencheria automaticamente todos os argumentos usados no comando anterior.

Você pode usar o mesmo truque que você usa para executar comandos do seu histórico para obter argumentos deles. Basta usar o seguinte formulário.
Você pode usar o mesmo truque que você usa para executar comandos do seu histórico para obter argumentos deles. Basta usar o seguinte formulário.

command !abc:#

Por exemplo, nós rodamos o comando

sudo hostname ubuntu

mais cedo. Se executarmos o seguinte comando, o bash fará uma pesquisa ao longo do histórico para encontrar o último comando que começa com as letras que digitamos e preenche o argumento que especificamos. Então, se corrermos

echo !su:2

o bash irá procurar de volta para encontrar o último comando que começa com “

su

”E preencha seu segundo argumento, que é“

ubuntu

“.

Outros truques funcionam como você poderia esperar. Por exemplo, substituir o número por um asterisco, conhecido como curinga, faz com que o bash preencha todos os argumentos do comando:

command !abc:*

Image
Image

Execute novamente o comando anterior e modifique-o

O Bash também permite que você execute novamente o comando anterior e especifique algo que deve ser alterado. Isso pode ser útil para corrigir um erro de digitação em um comando. Por exemplo, o comando a seguir executará novamente o comando anterior, substituindo o texto “

abc

"Nele com o texto"

xyz

“.

^abc^xyz

Por exemplo, se você acidentalmente correu

ping gogle.com

você poderia então correr

^gog^goog

e o bash executaria o comando

ping google.com

em vez de.

Image
Image

Onde sua história é armazenada e como limpá-la

O bash shell armazena o histórico de comandos que você executou no arquivo histórico da sua conta de usuário em ~ /.bash_history por padrão. Por exemplo, se seu nome de usuário for bob, você encontrará esse arquivo em /home/bob/.bash_history.

Como seu histórico é armazenado em um arquivo, ele persiste entre as sessões. Você pode executar alguns comandos, sair, voltar no dia seguinte e esses comandos ainda estarão no seu arquivo de histórico prontos para serem visualizados e usados. Cada conta de usuário possui seu próprio arquivo de histórico com um histórico de comandos separado.

Para limpar seu histórico bash, você pode executar o seguinte comando. Isso apaga o conteúdo do arquivo.bash_history da sua conta de usuário:

history -c

O Bash apenas lembra um número limitado de comandos por padrão, impedindo que o arquivo de histórico fique muito grande. O número de entradas do histórico bash lembra é controlado pelo
O Bash apenas lembra um número limitado de comandos por padrão, impedindo que o arquivo de histórico fique muito grande. O número de entradas do histórico bash lembra é controlado pelo

HISTSIZE

variável. O padrão é geralmente 500 ou 1000 entradas. Você pode executar o seguinte comando para visualizar o tamanho do histórico bash em seu sistema.

echo $HISTSIZE

Para definir seu histórico como zero, execute o seguinte comando.

HISTSIZE=0

Para a sessão atual, o bash não armazenará nenhuma entrada do histórico, a menos que você execute um comando como

HISTSIZE=1000

para defini-lo de volta para um determinado número de entradas.

Image
Image

Como ignorar espaços e duplicados

O Bash permite ignorar as entradas do histórico que começam com um espaço se você definir o

HISTCONTROL

variável para

ignorespace.

HISTCONTROL=ignorespace

Digite um espaço antes de um comando antes de executá-lo no bash shell e o comando será executado normalmente, mas não aparecerá em seu histórico se você tiver essa variável ativada. Isso permite que você mantenha seu histórico um pouco mais limpo, optando por executar comandos sem que eles apareçam em seu histórico.

O Bash também permite que você ignore comandos duplicados que podem sobrecarregar seu histórico. Para fazer isso, defina
O Bash também permite que você ignore comandos duplicados que podem sobrecarregar seu histórico. Para fazer isso, defina

HISTCONTROL

para

ignoredups.

HISTCONTROL=ignoredups

Para usar tanto o
Para usar tanto o

ignorespace

e

ignoredups

recurso, defina

HISTCONTROL

variável para

ignoreboth.

HISTCONTROL=ignoreboth

Observe que as variáveis bash que você definiu persistirão apenas para a sessão atual. Você precisará adicioná-las ao arquivo.bashrc da sua conta de usuário para que esses valores sejam definidos automaticamente em todas as sessões do bash que você iniciar, se preferir.

Recomendado: