Localizando um comando antigo no histórico do shell [duplicado]

5

Como posso encontrar um comando antigo que executei no meu terminal?

Eu usei um comando appengine e desejo apenas encontrá-lo no meu histórico de comando local sem pesquisá-lo on-line novamente.

    
por saviour123 26.03.2017 / 17:55

3 respostas

9

Histórico é o que você procura para.

Execute history para obter uma lista dos últimos 1000 comandos ou execute:

history | grep command_to_search

para pesquisar algum padrão na lista gerada pelo histórico, por exemplo:

history | grep apt

Para pesquisar qualquer comando apt related, observe que grep não ancora seu padrão em nenhuma das extremidades da string, portanto, nenhum caractere curinga é necessário na maioria dos casos.

A lista history é gerada a partir de os últimos 1000 comandos (por padrão) armazenados em ~/.bash_history (que armazena o último 2000 por padrão), e O arquivo só é atualizado sempre que você sai da sua sessão do Bash de forma limpa. Isso significa que todos os comandos da sua sessão atual não estarão nesse arquivo até que você feche seu terminal. Eles também não serão escritos se você eliminar o processo de shell.

Portanto, o histórico de comando (2000 last commands) também pode ser encontrado em ~/.bash_history , por:

  • less ~/.bash_history ou, e. %código%
  • Abrindo o Nautilus, Ctrl + h e procurando pelo arquivo gedit ~/.bash_history .

O .bash_history e o history behavior podem ser alterados adicionando ou modificando as opções em ~/.bash_history , estes são alguns exemplos:

  • Anexe o ~/.bashrc ou modifique a linha export HISTCONTROL=ignoreboth:erasedups existente para remover comandos duplicados, ou seja, se um executar HISTCONTROL imediatamente após echo Hello , apenas um aparecerá em echo Hello .

  • Modifique bash_history para estender ou reduzir a quantidade de comandos mostrados com HISTSIZE=1000

  • Modifique history para estender ou reduzir a quantidade de comandos armazenados em HISTFILESIZE=2000 . Defina bash_history para ilimitado.

  • Anexe o HISTFILESIZE=-1 para salvar o histórico em outro lugar.

Fontes e outras leituras:

Man pages do Bash

Agradecemos os comentários do Byte Commander

    
por M. Becerra 26.03.2017 / 17:59
9

Existem várias maneiras de encontrar um comando executado recentemente.

  • O mais simples é simplesmente apertar a tecla e percorrer seu histórico de comando linha por linha até encontrar o que você está procurando.

  • Você também pode pressionar Ctrl + R para entrar no chamado modo (reverse-i-search) .

    É um prompt de pesquisa que completará automaticamente o que você começa a digitar com o comando de execução mais recente que contém essa sequência. Quando ele mostra o que você procurava, pressione Enter para executá-lo, ou Esc para sair do prompt de busca enquanto mantém o comando no prompt, para que você possa editá-lo. Para descartar o resultado e sair da busca, pressione Ctrl + C .

  • Você pode usar o history Bash incorporado para mostrar a lista completa de comandos gravados de seu histórico.

    Você pode filtrar essa lista para linhas que correspondam a um padrão específico usando, por exemplo, grep , como history | grep 'appengine' .

    Mais informações sobre o comando interno history do Bash podem ser encontradas digitando help history .

  • Use bang-expansion para executar diretamente o comando executado mais recentemente contendo uma string. Isso substituirá a linha que você digitou com a linha correspondente do histórico e a executará imediatamente, sem confirmação. Portanto, tenha cuidado.

    Basta digitar !string e isso será substituído pela linha de comando mais recente que começou com "string".

    Se você deseja executar o último comando que terminou com "string", digite !?string .

    Ou se você quiser a última linha de comando contendo "string" em qualquer lugar, digite !?string? .

    Mais informações sobre a expansão do histórico de expansão podem ser encontradas digitando man history .

por Byte Commander 26.03.2017 / 18:18
0

Se foi um pouco usado recentemente, pode ser fácil encontrá-lo abrindo um terminal e usando as setas para cima e para baixo do seu teclado para percorrer seus últimos comandos usados.

    
por cP4n 26.03.2017 / 17:59