Come posso cercare un comando di cui non conosco il nome completo?


10

Ogni volta che provo ad usare un programma dal terminale, non riesco a trovarlo perché non corrisponde al vero nome. Ad esempio, scrivo il disksterminale, ma il vero nome è gnome-disks.

Ho provato ad usare:

sudo dpkg -l | grep disks 

per trovarlo, ma per quanto riguarda i programmi che non corrispondono affatto? Qual è il modo più semplice per trovare tutti i nomi dei programmi installati nel terminale?

Risposte:


4

Questo elencherà tutti i nomi di pagina man e le brevi descrizioni contenenti il ​​testo "dischi". Nota che questo non restituirà nulla per script o programmi che non hanno una manpage ma ogni programma fornito con la distribuzione Ubuntu dovrebbe avere uno ...

man -k disks

O...

apropos disks

Per esempio...

 root@LX02:~  apropos disks
cryptdisks_start (8) - wrapper around cryptsetup which parses /etc/crypttab.
cryptdisks_stop (8)  - wrapper around cryptsetup which parses /etc/crypttab.
mtools (1)           - utilities to access DOS disks in Unix.
smartctl (8)         - Control and Monitor Utility for SMART Disks
udisks (1)           - udisks command line tool
udisks (7)           - Storage Management
udisks-daemon (8)    - udisks Daemon

3

Il modo più semplice è ispezionare il "programma di avvio" utilizzando l'editor di menu:

  • fare clic con il tasto destro del mouse sul pulsante menu nella barra delle applicazioni;
  • seleziona Edit Menu- questo aprirà l'editor di menu.

Ora puoi scegliere la categoria a sinistra e l'applicazione a destra ( Entries). Basta selezionare l'applicazione con un solo clic sinistro, aprire il menu contestuale con un clic destro e selezionare Properties. Apparirà una piccola finestra, che mostra (tra le altre informazioni) la riga di comando.

Questi file di avvio del programma di solito risiedono in /usr/share/applications, quindi un altro approccio sarebbe quello di controllare i *.desktopfile in quella directory. Se non sei sicuro del nome *.desktopda cercare, esegui un grep all'interno della /usr/share/applicationsdirectory:

grep gThumb * | grep 'Name='

ti darà qualcosa di simile

gthumb.desktop:Name=gThumb
gthumb.desktop:X-GNOME-FullName=gThumb Image Viewer
gthumb-import.desktop:Name=Import with gThumb
gthumb-import.desktop:X-GNOME-FullName=gThumb Photo Import Tool

Ora, puoi semplicemente usare less gthumb.desktopper ispezionare i dettagli di quel programma di partenza.

Un altro modo sarebbe usare il aproposcomando per cercare una determinata parola chiave nelle pagine man.


1

for bin in $(for path in $(tr ':' '\n' <<<"$PATH"); do echo $path; done); do ls $bin; done |grep 'disk'

Il ciclo sopra enumera ogni file in ogni directory del tuo $PATHe mostra qualsiasi file corrispondente al regex ('disco' in questo caso) passato a grep alla fine della pipeline.

Se hai file non eseguibili nel tuo, $PATHquesto mostrerà anche quelli.


0

Forse non quello che vuoi sentire, ma zsh (zshell) fa un ottimo lavoro nel completamento dei comandi. È (indietro) compatibile con bash, quindi non devi imparare qualcosa di completamente nuovo.
Con oh-my-zsh c'è un buon punto di partenza per le impostazioni, che possono essere facilmente modificate a proprio piacimento.

Se digito "disk" nel mio terminale, questo suggerisce automagicamente il seguente elenco, che può essere attraversato.
cfdisk fdisk lvmdiskscan mkdiskimage sgdisk udisks udisks-tcp-bridge umount.udisks2
cgdisk gdisk memdiskfind sfdisk testdisk udisksctl umount.udisks

Come avrai notato, non eseguo gnome, quindi quindi nessun disco gnome, ma avrebbe sicuramente trovato quello se fosse presente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.