¿Por qué no se encuentra un retraso prolongado después del comando?


18

A menudo, cuando escribo mal un comando como ls (p. Ej., Presiono ENTER antes de escribir 's'), hay un retraso largo (~ 2s) después de que el terminal muestra:

bash: l: command not found...

Puedo entender los motivos de un retraso similar después de ingresar una contraseña incorrecta, por ¿Por qué hay un gran retraso después de ingresar una contraseña incorrecta? . Pero, ¿por qué demorar después de un comando no reconocido? No FAIL_DELAYen /etc/login.defsafectará esto también?


8
¿Quizás Fedora ahora también está usando esa horrible característica incorrecta de Ubuntu que le dice "Este programa no está instalado, para instalarlo, escriba ..."? El retraso se debe a la búsqueda en la base de datos de todos los paquetes instalables. Intente llamar a psql (parte de PostgreSQL), que probablemente no esté instalado de manera predeterminada, pero es de esperar que esté en los repositorios.
Ulrich Schwarz

¿Qué da echo "$PROMPT_COMMAND"salida?
rozcietrzewiacz

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

¿Qué eco imprime $ PATH? su sistema se verifica allí cada vez que presiona la tecla de retorno.
Hanan N.

Respuestas:


19

Después de algunas investigaciones, he encontrado esto :

  • intente desinstalar el paquete de comando no encontrado y $>yum remove command-not-foundluego instálelo nuevamente >$yum install command-not-found(en caso de que tenga ese paquete instalado en su sistema).

si eso no ayuda, intente:

  • agregue esto a su ~/.bashrcarchivo:

    unset command_not_found_handle


2
La segunda sugerencia eliminó el retraso. No tengo instalado el paquete command-not-found. ¡Gracias!
paislee

Pongo en duda el juicio de quien pensó que era una buena idea para permitir esto por defecto
fostandy

16

Descubrí que la mejor solución, al menos en Fedora, es modificar el archivo de configuración
/etc/PackageKit/CommandNotFound.conf

ya que la mayor demora proviene de la búsqueda de paquetes para instalar, si modifica SoftwareSourceSearch=trueen SoftwareSourceSearch=false

el retraso es casi 0 y aún se le advierte sobre errores ortográficos, lo que puede ser útil.


3

Fedora usa algo similar.

Si solo desea eliminar esta función, use:

yum remove PackageKit-command-not-found

Seguimiento: Olvidé mencionar que si elimina este paquete, recibirá un mensaje de error: bash: /usr/libexec/pk-command-not-found: No such file or directory Para solucionar esto, cree el archivo después de eliminar el paquete, / usr / libexec / pk-command-not-found con lo siguiente: #!/bin/sh echo "Command not found: $1" Esto imprimirá: Comando no encontrado: fallo-comando

0

En mi caso, se debe a algún error proxy conocido en / 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]

Mi configuración de proxy es correcta porque la descarga de la misma URL exacta con un simple comando curl tiene éxito instantáneamente.

Verifiqué que el proceso pk-command-not-found no tiene la configuración de proxy:

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

Sin embargo, no lo usa por alguna razón desconocida.

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.