Perché Ubuntu impiega così tanto tempo a dire "comando non trovato"


24

Per qualche motivo, con la mia configurazione, Ubuntu può richiedere alcuni secondi per rispondere con "comando non trovato" quando digito per errore un comando. Perchè ci mette tanto? C'è un modo per abbreviare il periodo di tempo che devo aspettare?

Ho 13 directory nel mio PERCORSO, ma anche così (la maggior parte di esse contiene solo pochi file), non dovrebbero essere necessari alcuni secondi per cercare un comando in 13 directory?

Risposte:


34

La shell fa molto di più che guardare $PATH. Se non viene trovato un comando, command_not_found_handleviene eseguita la funzione bash che a sua volta chiama lo script python /usr/lib/command-not-found. Questo cerca nell'elenco dei pacchetti i programmi che dovrebbero essere installati affinché il comando funzioni. Nel caso di un refuso che sai risolvere, basta premere Ctrl+ Cper interrompere il processo di ricerca.

Esempio di un messaggio utile per un refuso:

$ aptget update
No command 'aptget' found, did you mean:
 Command 'apt-get' from package 'apt' (main)
aptget: command not found

Esempio di un messaggio utile per un pacchetto mancante:

$ deja-dup
The program 'deja-dup' is currently not installed.  You can install it by typing:
sudo apt-get install deja-dup

Vedi anche la logica alla base di questo, https://wiki.ubuntu.com/CommandNotFoundMagic


5
Linus ha pubblicato qualcosa in merito: plus.google.com/u/0/102150693225130002912/posts/iz7zR9B1Prv
bcbc

E considero questa una caratteristica davvero sorprendente! Se usi un comando che ti aspetti di essere presente ma non è presente, ti viene detto direttamente cosa digitare per installarlo.
Thorbjørn Ravn Andersen,

8

È a causa di un pacchetto chiamato "comando non trovato". Puoi disinstallarlo per ridurre i tempi di risposta.

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.