Localizar comandos por nome parcial

0

Existe uma maneira de obter uma lista de todos os comandos que correspondam a um padrão específico (sem distinção entre maiúsculas e minúsculas)? Então, por exemplo, eu sei que o comando (que pode ser um alias) eu estou procurando contém "diag" ou "Diag", mas não tenho certeza do comando real.

Atualmente estou no Ubuntu com Bash, mas estou perguntando especificamente sobre este site porque eu adoraria aprender de uma forma que seja utilizável em vários tipos de distros (por exemplo, eu precisarei dessa habilidade no CentOS e Manjaro mais tarde também ).

Eu tentei man iag esperando que funcionasse da mesma forma que o help iag do Powershell, mas isso não funciona.

Já experimentei meu Google-fu , mas isso só parece levar a explicações sobre como encontrar arquivos pelo nome parcial do texto dentro dos arquivos.

Eu tentei pesquisar este site do SE de várias maneiras (por exemplo, 1 , 2 ) mas não encontrou uma cópia da minha pergunta .

Como você encontra o nome exato de um comando se consegue lembrar apenas uma parte dele?

    
por Jeroen 23.07.2017 / 14:44

1 resposta

2

Use compgen -c para obter uma lista de todos os comandos, você também pode usá-lo como:

compgen -c dif

para obter uma lista de todos os comandos iniciados com "dif".

Combine-o com grep para obter exatamente o que você está procurando:

compgen -c | grep -i diag

que procura por qualquer comando contendo "diag". use regex para pesquisas mais flexíveis:

compgen -c | grep -i ^diag   # started with diag
compgen -c | grep -i diag$   # ended to diag

Você também pode usar apropos para encontrar comandos, pesquisar nos nomes e nas descrições das páginas de manual.

    
por 23.07.2017 / 15:01