Lorsque vous tapez une mauvaise commande, dites que vous voulez faire:
$ cd ..
$ ls
Mais au lieu de cela, vous tapez trop vite et finissez par taper entre l et s, vous obtenez donc:
$ cd ..
$ l
sbash: l: command not found...
Cela arrive tout le temps bien sûr, lorsque nous tapons vite. Ce qui m'intéresse, c'est la source de la pause de 2,5 secondes (sur mon système) après l'affichage du mauvais texte de commande à l'écran. Il me semble qu'il reconnaît instantanément la mauvaise commande, affiche un message d'erreur à ce sujet, mais juste pour le plaisir, il attend 2,5 secondes avant de me renvoyer à la ligne de commande. Qu'est-ce qui cause cela? Y a-t-il un moyen de résoudre ce problème? C'est une petite gêne, mais j'aimerais m'en débarrasser. :)
Edit: Exécution du système Fedora 16
Réponses:
Ce type de comportement est dû à un outil fréquemment installé sur certaines distributions qui se connectent à bash. Ce crochet fait en sorte que si vous essayez d'exécuter une commande et que la commande n'existe pas, bash recherchera les fichiers disponibles dans les référentiels configurés et vous indiquera le package que vous devrez installer pour obtenir cette commande.
Si vous n'êtes pas sur un système Debian, vous voudrez regarder vos profils de fichiers de démarrage bash et ainsi de suite et voir si quelque chose définit la fonction nommée
command_not_found_handle
. Si cette fonction bash est définie, elle sera appelée chaque fois que vous exécuterez une commande et aucun programme approprié ne pourra être trouvé dans votre chemin de recherche. Si vous exécuteztypset | less
et parcourez la sortie, vous verrez lacommand_not_found_handle()
fonction si elle a été définie.Sur Debian / Ubuntu, le package qui fournit ce comportement est introuvable en commande . Si vous purgez cela, vous désactivez les recherches, ce qui ralentit les choses.
Voici un exemple
L'heure exacte serait bien sûr différente pour vous. J'ai effectué mes tests sur un serveur assez costaud.
la source
Une partie de la question était "y a-t-il un moyen de résoudre ce problème (dans Fedora)?" Il y a: au bas de votre fichier .bashrc ajoutez la commande
Vous voudrez probablement le faire à la fin de votre .bashrc (ou à proximité) car vous exécutez peut-être / etc / bashrc ou d'autres scripts bash en haut de votre .bashrc.
la source
Sur fedora, ce comportement peut être contrôlé en modifiant le
/etc/PackageKit/CommandNotFound.conf
fichier de configuration.Le paramètre
SoftwareSourceSearch=false
supprimera le délai car il n'essaiera pas de localiser un package avec la commande manquante à l'aide du gestionnaire de packages.Vous pouvez également modifier la durée d'attente d'une recherche de package à la place en modifiant l'
MaxSearchTime=2000
option pour indiquer le nombre de millisecondes que vous êtes prêt à attendre pour que la recherche de package renvoie une correspondance. Je trouve que la valeur par défaut de 2 secondes n'est pas assez longue pour renvoyer des correspondances et provoque juste un retard indésirable lorsque vous avez une faute de frappe.Augmentez le
MaxSearchTime
pour fournir une sortie utile ou désactivez-leSoftwareSourceSearch
pour éliminer complètement le retard.la source