Nessun comando "bla" trovato, intendevi forse?


7

Quindi, quando non viene trovato un comando, in che modo viene popolata la lista "intendevi:"? Quale programma trova questi comandi alternativi? Qual è il significato di: "(principale), (universo) ..."? Posso cambiare quale programma li trova?


1
Stai chiedendo quali programmi offrono questa funzionalità o quale lo fa nel tuo caso? In quest'ultimo caso, hai fornito poche informazioni. Quale shell usi, per iniziare?
techraf,

Sto usando bash ma intendo davvero solo nel caso più generale. Quali programmi forniscono questo e c'è un modo abbastanza coerente per determinare il programma nella maggior parte delle shell?

Dipende anche molto dal tipo / distribuzione di Unix / Linux che stai usando su come viene implementata la funzione.
Randall,

Risposte:


2

Se guardi il contenuto di /etc/apt/sources.listesso avrà il formato

#Archive type  Repository URL                   Distribution Component
 deb           http://archive.ubuntu.com/ubuntu precise      main

Tipo di archivio

La prima parola su ogni riga, deb o deb-src, indica il tipo di archivio. Deb indica che l'archivio contiene pacchetti binari (deb) e così via.

URL del repository

La voce successiva sulla riga è un URL per il repository da cui si desidera scaricare i pacchetti.

Distribuzione

La 'distribuzione' può essere rispettivamente il nome / alias del codice di rilascio (wheezy, jessie, stretch, sid) o la classe di rilascio (oldstable, stable, testing, unstable) rispettivamente.

Qual è il significato di: "(principale), (universo) ..."?

Componente

main è costituito da pacchetti conformi a DFSG, i pacchetti contrib contengono software conforme a DFSG, ma hanno dipendenze non principali, non contengono software non conforme a DFSG e così via. Un consiglio: controlla uno degli URL del repository, dovrebbe avere una cartella con il nome del componente.

I gestori di pacchetti sostengono aptche avrà un database che contiene un elenco di tutti i pacchetti nei repository ed è abbastanza intelligente da darti suggerimenti.

Il gestore dei pacchetti potrebbe essere su eof dpkg (ad es. Debian, Ubuntu ecc.), Apt (ad es. Debian, Ubuntu ecc.), Ora rpm obsoleto (ad es. Le versioni precedenti di Redhat e quelle nuove non danno il via per ragioni di compatibilità), yum (ad es. Fedora, CentOS), dnf - yum dentificato (es. Nuove versioni di Fedora) e così via. Per un elenco più completo controlla questo . Potresti anche vedere più gestori di pacchetti in una distribuzione. Ad esempio in Ubuntu, potresti vedere dpkg che alimenta / etc / apt / sources / list.

Quindi quando digiti

cleaq

Si può dire

cleaq: no command found. Did you mean clean.

in che modo viene popolata la lista "volevi dire:"?

Ciò comporta una corrispondenza del modello con i pacchetti nel database del gestore pacchetti.

Questo database viene aggiornato quando lo si esegue apt-get update

Non sono sicuro

Posso cambiare quale programma li trova?

anche se. Credo che questa sia una funzionalità che non può essere modificata. Non sono così sicuro però

Riferimento : Debian SourceList


1
@vondirac: Sì sources.list è all'interno di /etc/apt. Vedi la modifica .. Beh, in generale puoi dire che il tuo gestore di pacchetti mantiene questo elenco per te e il tuo gestore di pacchetti può essere apt (nel caso di Debian, Ubuntu ecc.), Rpm (Redhat e i suoi cloni), yum (es. Fedora , CentOS) e dnf (Nuove versioni di Fedora)
sjsam,

Puoi migliorare questa risposta facendo riferimento ad alcuni documenti di Ubuntu .
JdeBP,

4

Per bash, il suo comportamento è governato dalla funzione shell command_not_found_handle(Vedi man bash).

Per vedere quale comportamento è definito da quella funzione, puoi emettere:

declare -p -f command_not_found_handle

È possibile modificare il programma utilizzato ridefinendo la command_not_found_handlefunzione.

Nelle distribuzioni basate su Debian (incluso Ubuntu), il pacchettocommand-not-found è comunemente installato e disponibile come /usr/lib/command-not-found Dal link:

Suggerisci l'installazione di pacchetti in sessioni bash interattive

Questo pacchetto installa il gestore per command_not_found che cerca i programmi non attualmente installati ma disponibili dai repository.

Guarda anche:


0

Questa non è una funzionalità standard delle shell Linux. Vi sono almeno due possibilità:

  • zsh sta mantenendo il proprio elenco di suggerimenti
  • il progetto thefuckoffre un altro
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.