Voglio un modo per avviare rapidamente i programmi mentre sono in un terminale SSH. Ma non voglio dover ricordare il comando esatto. Ad esempio, se digito "fox" in kupfer/synapse/quicksilver o unity search, verrà visualizzato Firefox. Allo stesso modo, se digito "browser", verrà visualizzato Firefox.
Qual è la riga di comando equivalente a questo? In modo tale da poter digitare browser
ed elenca firefox
nel terminale
Ovviamente ho familiarità con la scheda premendo, ma ciò presuppone che le prime lettere siano corrette e non mi consente di digitare "browser". Ho familiarità con findutils locate
comando, ma ancora, stesso problema. Voglio un'esperienza desktop fluida tramite testo, proprio come lynx
browser offre un'esperienza web tramite console.
Risposta accettata:
Esistono diverse shell della riga di comando. I principali per uso interattivo sono:
- Bash, che è la shell predefinita sulla maggior parte delle distribuzioni Linux. Il suo principale punto di forza è che è l'impostazione predefinita.
- Zsh è estremamente potente e configurabile.
- Il pesce ha alcune caratteristiche interessanti, ma è molto poco personalizzabile.
È più probabile che tu trovi funzionalità così avanzate integrate in fish o fornite in zsh tramite un codice di personalizzazione (fornito con zsh o tramite un plug-in di terze parti). Sfortunatamente per te, non penso che il pesce abbia nulla di lontanamente simile a quello che stai cercando, e non sono nemmeno a conoscenza di nulla di veramente carino per zsh.
Cerco fox
In zsh, puoi avere il completamento in base alla digitazione di una parte del nome. Come funziona dipende dalla configurazione. Con la seguente configurazione, puoi digitare *fox
e premi Tab per ottenere il completamento firefox
:
autoload -U compinit; compinit
zstyle ':completion:*' completer _expand _complete _match _prefix
Puoi ottenere questa configurazione dalla schermata di configurazione visualizzata all'avvio di zsh senza un file di configurazione. Potresti voler giocare un po' con le opzioni di configurazione relative al completamento.
Cerco browser
Cerco browser
è un problema molto diverso perché le informazioni non vengono memorizzate nello stesso posto. Ottenere firefox
da fox
richiede solo di guardare i nomi dei file eseguibili, mentre le informazioni che firefox
è un browser
deve venire da qualche altra parte.
Puoi usare il comando apropos per cercare i programmi in base alla descrizione di una riga all'inizio della loro documentazione.
apropos browser
In un certo senso questa è la risposta ufficiale alla tua domanda: è il modo da riga di comando per cercare un programma in base alla sua descrizione. Ma probabilmente non lo troverai così conveniente per due motivi:
-
Ci sono molti più programmi a riga di comando rispetto ai programmi che possono essere utilmente eseguiti da una GUI, quindi c'è molto più rumore in
apropos
produzione. Ilapropos
il comando mostra anche le interfacce di programmazione; puoi ritagliarlo conapropos -s 1,8 browser
o
apropos -s 1 browser
per escludere i comandi di amministrazione del sistema. I numeri sono sezioni della pagina man. -
La descrizione di una riga nella parte superiore della pagina man è gestita dagli sviluppatori di ciascuna applicazione e non sempre usano la stessa terminologia. Quindi a volte ti perderai un'applicazione perché il suo sviluppatore ha utilizzato un modo diverso per descrivere l'applicazione. Ad esempio, se volessi trovare solo web browser, potresti eseguire
apropos -a web browser
e troverai
lynx
efirefox
, ma nonlinks
perché è descritto come un "browser WWW".
L'interfaccia GUI per cercare le applicazioni è basata su .desktop
File. Puoi esplorare questi file con comandi come
grep browser /usr/share/applications/*
Sarebbe possibile creare un'interfaccia utente su questo, ma non ne ho una da offrire.