Chci způsob, jak rychle spouštět programy, když jsem v terminálu SSH. Ale nechci si pamatovat přesný příkaz. Pokud například do vyhledávání kupfer/synapse/quicksilver nebo unity napíšu „liška“, zobrazí se firefox. Podobně, když napíšu „prohlížeč“, zobrazí se firefox.
Co tomu odpovídá příkazový řádek? Tak, abych mohl napsat browser
a uvádí firefox
v terminálu
Samozřejmě jsem obeznámen s klepáním na tabulátor, ale to předpokládá, že mám prvních pár písmen správných, a nedovolí mi napsat „prohlížeč“. Jsem obeznámen s findutils locate
příkaz, ale opět stejný problém. Chci hladký desktopový zážitek prostřednictvím textu, podobně jako lynx
prohlížeč poskytuje webový zážitek prostřednictvím konzole.
Přijatá odpověď:
Existuje několik shellů příkazového řádku. Hlavní pro interaktivní použití jsou:
- Bash, což je výchozí prostředí ve většině distribucí Linuxu. Jeho hlavním prodejním argumentem je, že je výchozí.
- Zsh je extrémně výkonný a konfigurovatelný.
- Ryba má několik úhledných funkcí hned po vybalení, ale velmi malou přizpůsobitelnost.
Je pravděpodobnější, že takové pokročilé funkce najdete buď zabudované do ryb, nebo poskytované v zsh prostřednictvím nějakého kódu přizpůsobení (buď dodávaného se zsh nebo prostřednictvím pluginu třetí strany). Naneštěstí pro vás si nemyslím, že ryba má něco podobného, co hledáte, a já si také nejsem vědom ničeho, co by pro zsh bylo opravdu pěkné.
Hledám fox
V zsh můžete mít dokončení založené na zadání části názvu. Jak to funguje, závisí na konfiguraci. S následující konfigurací můžete zadat *fox
a stiskněte Tab získat dokončení firefox
:
autoload -U compinit; compinit
zstyle ':completion:*' completer _expand _complete _match _prefix
Toto nastavení můžete získat z konfigurační obrazovky, která se zobrazí, když spustíte zsh bez konfiguračního souboru. Možná si budete chtít pohrát s možnostmi konfigurace související s dokončením.
Hledám browser
Hledám browser
je velmi odlišný problém, protože informace nejsou uloženy na stejném místě. Získávání firefox
od fox
vyžaduje pouze prohlížení názvů spustitelných souborů, zatímco informace, které firefox
je browser
musí pocházet odjinud.
Příkaz apropos můžete použít k vyhledání programů na základě jednořádkového popisu v horní části jejich dokumentace.
apropos browser
Toto je svým způsobem oficiální odpověď na vaši otázku – je to způsob, jak pomocí příkazového řádku vyhledat program na základě jeho popisu. Pravděpodobně vám to ale nepřijde tak pohodlné ze dvou důvodů:
-
Existuje mnohem více programů příkazového řádku než programů, které lze užitečně spouštět z GUI, takže v
apropos
je mnohem více šumu výstup.apropos
příkaz také zobrazí programovací rozhraní; můžete to vystřihnout pomocíapropos -s 1,8 browser
nebo
apropos -s 1 browser
k vyloučení příkazů správy systému. Čísla jsou sekce manuálové stránky. -
Jednořádkový popis v horní části manuálové stránky udržují vývojáři každé aplikace a ne vždy používají stejnou terminologii. Někdy vám tedy nějaká aplikace bude chybět, protože její vývojář použil jiný způsob popisu aplikace. Pokud jste například chtěli najít pouze web prohlížeč, můžete spustit
apropos -a web browser
a našli byste
lynx
afirefox
, ale nelinks
protože je popsán jako „WWW prohlížeč“.
Rozhraní GUI pro vyhledávání aplikací je založeno na .desktop
soubory. Tyto soubory můžete prozkoumat pomocí příkazů jako
grep browser /usr/share/applications/*
Bylo by možné nad tím vytvořit uživatelské rozhraní, ale nemám žádné, které bych vám nabídl.