Qualquer maneira de listar comandos semelhantes?

6

Quando você escreve o nome do comando errado, o bash geralmente faz isso:

septi@norbert:~$ good
No command 'good' found, did you mean:
 Command 'gold' from package 'binutils' (main)
 Command 'gmod' from package 'gmod' (universe)
 Command 'goo' from package 'goo' (universe)
 Command 'god' from package 'god' (universe)
 Command 'geod' from package 'proj-bin' (universe)
 Command 'gord' from package 'scotch' (universe)
good: command not found

Ou às vezes isso acontece:

septi@norbert:~$ nftp
No command 'nftp' found, but there are 23 similar ones
nftp: command not found

Existe alguma maneira de pedir ao bash para mostrar esses 23 comandos semelhantes para mim? E existe uma maneira de mostrar comandos semelhantes, incluindo aqueles que ainda não estão instalados, em vez de executar o aplicativo, ftp , por exemplo?

    
por Septagram 08.10.2012 / 04:03

2 respostas

4

O Bash usa o comando /usr/lib/command-not-found para procurar comandos semelhantes. Por sua vez, isso usa o módulo CommandNotFound do Python.

A saída que você vê no terminal ( stderr neste caso) também é gerada a partir deste módulo. A localização deste módulo é /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py , no Ubuntu 14.04 e superior. Há um limite padrão definido no número de comandos semelhantes na função CommandNotFound.print_spelling_suggestion(self, word, min_len=3, max_len=15) na linha 138. Você pode modificar o valor max_len para dizer 30 (Use sudo nano ou gksudo gedit para editar este arquivo).

    
por ignite 08.10.2012 / 08:45
3

É bastante provável que os 23 comandos "similares" não sejam muito mais úteis para você do que "goo", "god" e "gord". O pequeno truque que a maioria dos bash'ers usa para encontrar as coisas é usar as man pages, já que a pesquisa é baseada em conteúdo e não apenas por nome. Por exemplo, tente

man -k ftp

Se você encontrar um comando provável ou insterestável, olhe a própria página man, soltando a opção -k:

man sftp

o homem tem sua própria página de manual:

man man

Agora você sabe por que, sempre que instala um novo programa ou aplicativo, muitas vezes ele também instala uma página de manual para você.

Ah, sim, para pesquisar em man pages que você ainda não instalou, você pode gostar de um dos muitos sites man online, como esse aqui .

    
por fabricator4 08.10.2012 / 06:25