Existem vários shells de linha de comando. Os principais para uso interativo são:
- Bash , que é o shell padrão na maioria das distribuições Linux. Seu principal ponto de venda é que é o padrão.
- O Zsh é extremamente poderoso e configurável.
- O Fish tem alguns recursos interessantes, mas com muito pouca capacidade de personalização.
É mais provável que você encontre esses recursos avançados incorporados ao fish ou fornecidos em zsh por meio de algum código de personalização (fornecido com o zsh ou por meio de um plug-in de terceiros). Infelizmente para você, eu não acho que fish tenha algo remotamente parecido com o que você está procurando, e eu não estou ciente de nada realmente legal para o zsh também.
Procurando por fox
No zsh, você pode ter conclusão com base na digitação de uma parte do nome. Como isso funciona depende da configuração. Com a seguinte configuração, você pode digitar *fox
e pressionar a tecla Tab para obter a conclusão firefox
:
autoload -U compinit; compinit
zstyle ':completion:*' completer _expand _complete _match _prefix
Você pode obter essa configuração a partir da tela de configuração exibida quando você inicia o zsh sem um arquivo de configuração. Você pode querer brincar um pouco com as opções de configuração relacionadas à conclusão.
Procurando por browser
A procura de browser
é um problema muito diferente porque as informações não são armazenadas no mesmo local. Obter firefox
de fox
requer apenas uma olhada nos nomes dos arquivos executáveis, enquanto a informação de que firefox
é browser
tem que vir de algum outro lugar.
Você pode usar o comando apropos para procurar programas com base na descrição de uma linha na parte superior de sua documentação .
apropos browser
De certa forma, esta é a resposta oficial à sua pergunta - é a forma de linha de comando para procurar um programa com base em sua descrição. Mas você provavelmente não achará conveniente por dois motivos:
-
Existem muito mais programas de linha de comando do que programas que podem ser executados com facilidade a partir de uma GUI, portanto, há muito mais ruído na saída
apropos
. O comandoapropos
também mostra interfaces de programação; você pode cortar isso comapropos -s 1,8 browser
ou
apropos -s 1 browser
para excluir comandos de administração do sistema. Os números são seções da página man . -
A descrição de uma linha no topo da página man é mantida pelos desenvolvedores de cada aplicação e eles nem sempre usam a mesma terminologia. Então, às vezes, você perderá um aplicativo porque o desenvolvedor usou uma maneira diferente de descrever o aplicativo. Por exemplo, se você quiser encontrar apenas o navegador web , poderá executar
apropos -a web browser
e você encontraria
lynx
efirefox
, mas nãolinks
porque é descrito como um "navegador da Web".
A interface GUI para procurar aplicativos é baseada em .desktop
files . Você pode explorar esses arquivos com comandos como
grep browser /usr/share/applications/*
Seria possível criar uma interface de usuário além disso, mas não tenho uma para oferecer.