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?


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


2
La deuxième suggestion a supprimé le retard. Je n'ai pas installé le package command-not-found. Merci!
paislee


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.


3

Fedora utilise quelque chose de similaire.

Si vous souhaitez simplement supprimer cette fonctionnalité, utilisez:

yum remove PackageKit-command-not-found

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.