Perché un lungo ritardo dopo il comando non è stato trovato?


18

Spesso quando digito male un comando come ls (es. Premo ENTER prima di digitare 's') c'è un lungo ritardo (~ 2s) dopo la visualizzazione del terminale:

bash: l: command not found...

Riesco a capire i motivi di un ritardo simile dopo aver inserito una password errata , per Perché c'è un grande ritardo dopo aver inserito una password errata? . Ma perché ritardare dopo un comando non riconosciuto? Fa FAIL_DELAYin /etc/login.defsinfluisce anche questo?


8
Forse Fedora ora sta usando anche quell'orribile disfunzione di Ubuntu che ti dice "Questo programma non è installato, per installarlo, digitare ..."? Il ritardo è quindi causato dalla ricerca nel database di tutti i pacchetti installabili. Prova a chiamare psql (parte di PostgreSQL), che probabilmente non è installato di default, ma si spera nei repository.
Ulrich Schwarz,

Cosa produce echo "$PROMPT_COMMAND"?
rozcietrzewiacz,

echo "$ PROMPT_COMMAND": printf "\ 033] 0;% s @% s:% s \ 007" "$ {USER}" "$ {HOSTNAME %%. *}" "$ {PWD / # $ HOME / ~ } "
paislee,

quale eco $ PATH stampa? il tuo sistema viene controllato lì ogni volta che premi il tasto Invio.
Hanan N.

Risposte:


19

dopo alcune ricerche ho trovato questo :

  • prova a disinstallare il pacchetto command-not-found con $>yum remove command-not-foundquindi installalo di nuovo con >$yum install command-not-found(nel caso in cui tu abbia installato quel pacchetto sul tuo sistema).

se ciò non aiuta a provare:

  • aggiungi questo al tuo ~/.bashrcfile:

    unset command_not_found_handle


2
Il secondo suggerimento ha rimosso il ritardo. Non ho installato il pacchetto comando non trovato. Grazie!
Paislee,


16

Ho scoperto che la soluzione migliore, almeno su Fedora, è quella di modificare il file di configurazione
/etc/PackageKit/CommandNotFound.conf

poiché il ritardo maggiore deriva dalla ricerca di pacchetti da installare, se si modifica SoftwareSourceSearch=truein SoftwareSourceSearch=false

il ritardo è quasi 0 e si viene comunque avvisati degli errori di ortografia, il che può essere utile.


3

Fedora usa qualcosa di simile.

Se vuoi semplicemente rimuovere questa funzione usa:

yum remove PackageKit-command-not-found

Seguito: Ho dimenticato di menzionare se rimuovi questo pacchetto riceverai un messaggio di errore: bash: /usr/libexec/pk-command-not-found: No such file or directory Per risolvere questo problema crea il file dopo aver rimosso il pacchetto, / usr / libexec / pk-command-non-found con il seguente: #!/bin/sh echo "Command not found: $1" Questo stamperà: Comando non trovato: fail-command

0

Nel mio caso è a causa di alcuni bug proxy noti in / usr / libexec / pk-command-not-found

Failed to search for file: cannot update repo 'updates':
Cannot prepare internal mirrorlist:
Curl error (28): Timeout was reached for https://mirrors.fedoraproject.org/metalink?repo=updates-released-f28&arch=x86_64 
[Connection timed out after 30002 milliseconds]

La mia configurazione proxy è corretta perché il download dello stesso URL esatto con un comando di curl nudo ha successo all'istante.

Ho verificato che il processo pk-command-not-found abbia la configurazione proxy:

tr  '\0' '\n' < /proc/$(pgrep -f pk-command-not-found)/environ | grep -i proxy

Tuttavia non lo utilizza per qualche motivo sconosciuto.

https://bugzilla.redhat.com/show_bug.cgi?id=1553368

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.