Pourquoi un long délai après la commande introuvable?

18

Souvent, lorsque je tape une commande telle que ls (par exemple, j'appuie sur ENTREE avant de taper 's'), il y a un long délai (~ 2s) après l'affichage du terminal:

bash: l: command not found...

Je peux comprendre les raisons d'un retard similaire après la saisie d'un mot de passe incorrect, par Pourquoi y a-t-il un gros retard après la saisie d'un mot de passe incorrect? . Mais pourquoi attendre après une commande non reconnue? Ne FAIL_DELAYen /etc/login.defsaffecter cela aussi?

paislee
la source
8
Peut-être que Fedora utilise également cette horrible anomalie Ubuntu qui vous dit "Ce programme n'est pas installé, pour l'installer, tapez ..."? Le retard est ensuite provoqué par la recherche dans la base de données de tous les packages installables. Essayez d'appeler psql (qui fait partie de PostgreSQL), qui n'est probablement pas installé par défaut, mais qui, espérons-le, se trouve dans les référentiels.
Ulrich Schwarz
Qu'est-ce que la echo "$PROMPT_COMMAND"sortie?
rozcietrzewiacz
echo "$ PROMPT_COMMAND": printf "\ 033] 0;% s @% s:% s \ 007" "$ {USER}" "$ {HOSTNAME %%. *}" "$ {PWD / # $ HOME / ~ } "
paislee
qu'est-ce que l'écho $ PATH imprime? votre système y est vérifié chaque fois que vous appuyez sur la touche retour.
Hanan N.

Réponses:

19

après quelques recherches, j'ai trouvé ceci :

  • essayez de désinstaller le package de commande introuvable avec $>yum remove command-not-foundpuis réinstallez-le avec >$yum install command-not-found(juste au cas où vous avez installé ce package sur votre système).

si cela ne vous aide pas, essayez:

  • ajoutez ceci à votre ~/.bashrcfichier:

    unset command_not_found_handle

Hanan N.
la source
2
La deuxième suggestion a supprimé le retard. Je n'ai pas installé le package command-not-found. Merci!
paislee
Je
remets en
16

J'ai trouvé que la meilleure solution, au moins sur Fedora, est de modifier le fichier de configuration
/etc/PackageKit/CommandNotFound.conf

comme le plus grand retard vient de la recherche de packages à installer, si vous modifiez SoftwareSourceSearch=truedans SoftwareSourceSearch=false

le délai est presque nul et vous êtes toujours averti des fautes d'orthographe, ce qui peut être utile.

GiP
la source
3

Fedora utilise quelque chose de similaire.

Si vous souhaitez simplement supprimer cette fonctionnalité, utilisez:

yum remove PackageKit-command-not-found

la source
Suivi: J'ai oublié de mentionner que si vous supprimez ce package, vous obtiendrez un message d'erreur: bash: /usr/libexec/pk-command-not-found: No such file or directory Pour résoudre ce problème, créez le fichier après avoir supprimé le package, / usr / libexec / pk-command-not-found avec ce qui suit: #!/bin/sh echo "Command not found: $1" Cela imprimera: Commande introuvable: fail-command
0

Dans mon cas, c'est à cause d'un bug de proxy connu dans / 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]

Ma configuration de proxy est correcte car le téléchargement de la même URL exacte avec une commande nue curl réussit instantanément.

J'ai vérifié que le processus pk-command-not-found a la configuration proxy:

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

Cependant, il ne l'utilise pas pour une raison inconnue.

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

Mars
la source