Casca

Obtendo o melhor da história do Linux Bash

Obtendo o melhor da história do Linux Bash

Linha de comando do Linux - o Terminal, como todos os shells, mantém um histórico de comandos executados no passado por um usuário. Este histórico é persistente e permanece na memória mesmo quando reinicializamos nosso sistema. Esses comandos armazenados podem ser recuperados e reutilizados por nós da maneira mais ideal para usar com eficiência o recurso de salvamento de histórico da maioria dos shells.

O bash do Linux vem com um comando muito poderoso chamado “história”. Este comando é um comando bash embutido, usado para extrair as informações de histórico sobre comandos que foram executados por usuários Linux em todas as sessões anteriores. Neste tutorial, vamos permitir que você obtenha o melhor do seu histórico de shell, aprendendo o uso adequado do comando history. O Linux armazena o histórico de comandos para um determinado usuário em um arquivo ~ /.bash_history por padrão.

Usaremos o aplicativo Terminal do Linux para executar os comandos mencionados neste tutorial.

Visualizando todo o histórico

Um usuário pode visualizar todo o histórico de seus comandos shell a partir do arquivo de histórico salvo exclusivamente para esse usuário usando o seguinte comando simples:

$ história

O histórico será impresso na tela no seguinte formato padrão:

Na imagem acima, você pode ver uma lista de todos os comandos com um número atribuído a cada um deles. O comando número 1 corresponde ao primeiro comando que você executou e o último comando numerado representa o último comando que você executou.

Se você tiver executado muitos comandos desde o uso do bash, você observará que haverá centenas e até milhares desses comandos exibidos aqui. Para acessar alguns comandos relevantes, você pode filtrar os resultados exibidos pelo recurso de histórico. Você também pode personalizar o comando de histórico para mostrar um número específico de comandos para você.

Filtrando a saída do histórico

Se quiser filtrar a saída do histórico com base em uma palavra-chave específica que pode ter usado nos comandos anteriores, você pode usar o comando history da seguinte maneira:

$ história | grep [palavra-chave]

Exemplo: Neste exemplo, quero ver apenas os comandos ping que já executei no shell. Portanto, usarei o seguinte comando:

$ história | grep ping

Você pode ver que minha saída agora exibe apenas os comandos, incluindo minha palavra-chave de pesquisa “ping” Anúncio

Visualizando Vários Comandos Recentes

Você também pode visualizar um número específico de comandos, por exemplo:

OU

N Número de comandos recentes

Você pode visualizar um número específico de comandos executados recentemente por meio do seguinte comando:

$ história | cauda -n

Exemplo:

Neste exemplo, desejo visualizar os últimos 3 comandos que executei, com a palavra-chave 'ping':

$ história | grep ping | tail -3

A saída exibe apenas os 3 comandos de ping recentes em vez de todo o histórico

N Número de comandos mais antigos

Você pode visualizar um número específico dos comandos de execução mais antigos por meio do seguinte comando:

$ história | cabeça -n

Exemplo:

Neste exemplo, quero visualizar os 3 comandos mais antigos que executei, com a palavra-chave 'ping':

$ história | grep ping | head -3

A saída exibe apenas os 3 comandos de ping mais antigos em vez de todo o histórico

Listar todos os comandos com data e carimbo de data / hora

Se você deseja visualizar seu histórico de comandos junto com a data e o carimbo de data / hora, use o seguinte comando de exportação:

$ export HISTTIMEFORMAT = "% F,% T"

Agora, quando você deseja visualizar o histórico, basta executar o comando history para ver a saída no seguinte formato:

Por favor, note que esta mudança no formato é temporária e será restaurada ao padrão anterior quando você fechar a sessão.

Comandos de navegação da história

Enquanto estiver na linha de comando, você pode navegar pelos comandos executados anteriormente e também recuperar alguns comandos usados ​​recentemente, fornecendo uma palavra-chave.

Percorrer os comandos

Você pode usar os seguintes controles do teclado para navegar pelos comandos do histórico

Seta para cima / Ctrl + PUsando esses controles, você pode exibir o comando anterior usado. Você pode acertar esses controles várias vezes para voltar a um comando específico no histórico.
Seta para baixo / Ctrl + NUsando esses controles, você pode exibir o próximo comando que usou. Você pode acertar esses controles várias vezes para avançar para um comando específico no histórico.
Alt + RSe você editar um comando que retirou do histórico, em uma linha atual, você pode usar este controle para reverter para o comando original.

Comandos de Chamada

Você pode recuperar, executar ou optar por não executar um comando específico do histórico, usando os seguintes controles:

Ctrl + RUsando este controle, você pode chamar de volta um comando do histórico, especificando uma string de pesquisa.
Ctrl + OUsando este controle, você pode executar o comando recuperado por meio de Ctrl + R
Ctrl + GUsando este controle, você pode sair do histórico sem executar o comando que recuperou por meio de Ctrl + R

Exemplo:

Neste exemplo, pressionei ctrl + R e, em seguida, forneci a string de pesquisa 'ar'. O histórico exibiu o comando 'arch'.

Quando executei o comando 'arch' pressionando ctrl + O, ele exibiu a arquitetura da CPU do meu sistema:

Utilizando o histórico do Bash

A verdadeira magia do histórico do bash é usar vários comandos e personalizar o próprio comando de histórico para fazer o melhor uso do recurso de histórico:

Executando Comandos da História

$ !#

Exemplo:

Aqui estou executando o comando número 95 do meu histórico:

$ !95

A saída exibe o resultado de 'lscpu' que foi listado como o comando número 95 no meu histórico do bash. Este comando exibe minhas especificações de CPU e sistema operacional.

$ !!

Exemplo:

Aqui você pode ver que executei o comando 'arch'. Ao executar o comando mencionado acima, posso executar novamente o comando 'arch' para visualizar minha arquitetura de CPU da seguinte maneira:

$ ![palavra-chave]

Exemplo:

Usarei o seguinte comando para executar novamente o último comando com a palavra-chave 'dconf' nele:

$ !dconf

Você pode reconfirmar na imagem a seguir que foi o último comando dconf que executei.

Usando argumentos de comandos anteriores

O bash do Linux permite que você execute um novo comando usando argumentos do comando anterior. É especialmente útil quando você deseja evitar redigitar argumentos longos ou complicados. Você pode usar o seguinte comando para essa finalidade:

Usando o último argumento do comando anterior

$ [Command] !$

A variável !$ tem o último argumento do comando anterior armazenado nele.

Exemplo:

Neste exemplo, vou criar um arquivo com um nome longo.

Nano [longnameOfaFile]

Em seguida, copiarei para outro local, evitando digitar o nome longo novamente da seguinte forma:

Cp !$ [pasta de destino]

Você pode ver que consegui copiar um arquivo sem redigitar o nome do arquivo usando a variável !$

Usando o primeiro argumento do comando anterior

Às vezes, apenas o primeiro argumento do comando anterior é útil no atual.

Nesse caso, você pode usar o seguinte comando:

$ [comando] !^

Exemplo:

No exemplo a seguir, executei o comando ping especificando o nome do host e uma contagem como argumentos. Agora eu quero usar o nome do host (primeiro argumento) em vez de 2 (o último argumento) no meu novo comando. Usarei o seguinte comando para este propósito:

$ ping !^

Usando todos os argumentos do comando anterior

Você também pode usar todos os argumentos do comando anterior usando o seguinte comando:

$ !*

Usando um argumento de um comando de histórico

Você também pode usar comandos de seu histórico, reutilizando seus argumentos. Use o seguinte comando para este propósito:

$ [comando] ![palavra-chave]: #

Exemplo:

$ echo !cp: 2

Este comando terá os seguintes parâmetros:

comando: eco

Palavra-chave: cp

#: 2 (segundo argumento do comando)

A saída a seguir mostra o segundo argumento do último comando cp que executei:

Usando todos os argumentos de um comando de histórico

O comando a seguir armazenará todos os argumentos do comando de histórico pesquisado e os usará no comando atual:

$ comando ![palavra-chave]: *

Exemplo:

No comando a seguir, irei imprimir todos os argumentos do último comando cp usando o comando echo da seguinte maneira:

$ echo ![cp]: *

Modificando e executando comandos anteriores

Se você digitou incorretamente um comando ou deseja executá-lo novamente, alterando algum texto nele; a seguir está a maneira de fazer isso:

$ ^ [previoustext] ^ [newtext]

Exemplo:

Eu digitei incorretamente o comando 'grep' como 'gep' e agora quero executar o comando corrigindo o texto:

$ ^ gep ^ grep

Agora você pode ver que meu comando corrigido será executado corretamente da seguinte maneira:

Limpando o histórico

Para apagar o histórico de seu bash, use o seguinte comando:

$ history -c

Este comando irá limpar seu histórico e remover todo o conteúdo do arquivo ~ /.bash_history

Neste tutorial, aprendemos que, embora imprimir todo o conteúdo do histórico possa não ser tão útil, otimizar a saída por meio dos comandos que aprendemos é a verdadeira virada de jogo. Praticar junto com este artigo permitirá que você visualize os comandos exatos que deseja, reexecute e reutilize esses comandos e também use argumentos de comandos executados anteriormente para otimizar novos.

Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...
Como instalar o League Of Legends no Ubuntu 14.04
Se você é fã de League of Legends, esta é uma oportunidade para testar o funcionamento de League of Legends. Observe que LOL é suportado no PlayOnLinu...
Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...