Cuando esté escribiendo un comando incorrecto, diga que desea hacer:
$ cd ..
$ ls
Pero en su lugar, escribe demasiado rápido y termina presionando enter entre ly s, por lo que obtiene:
$ cd ..
$ l
sbash: l: command not found...
Esto sucede todo el tiempo, por supuesto, cuando escribimos rápido. Lo que me interesa es la fuente de la pausa de 2.5 segundos (en mi sistema) después de que aparezca el texto de comando incorrecto en la pantalla. Me parece que reconoce el comando incorrecto al instante, imprime un mensaje de error al respecto, pero luego, solo por diversión, espera 2.5 segundos antes de regresarme a la línea de comando. ¿Qué causa esto? ¿Hay alguna forma de solucionar esto? Es una pequeña molestia, pero me gustaría deshacerme de ella. :)
Editar: Ejecutar el sistema Fedora 16
Respuestas:
Este tipo de comportamiento es causado por una herramienta frecuentemente instalada en algunas distribuciones que se conectan a bash. Este enlace hace que si intenta ejecutar un comando, y el comando no existe, bash buscará los archivos disponibles en los repositorios configurados y le dirá qué paquete necesitaría instalar para obtener ese comando.
Si no está en un sistema Debian, querrá ver los perfiles de los archivos de inicio de bash, etc., y ver si algo define la función nombrada
command_not_found_handle
. Si esa función bash está definida, se llamará siempre que ejecute un comando y no se encuentre un programa apropiado en su ruta de búsqueda. Si ejecutatypset | less
y navega por la salida, verá lacommand_not_found_handle()
función si se ha definido.En Debian / Ubuntu, el paquete que proporciona este comportamiento es el comando no encontrado . Si purga eso, deshabilitará las búsquedas, lo que ralentizará las cosas.
Aquí hay un ejemplo
La hora exacta, por supuesto, sería diferente para usted. Ejecuté mis pruebas en un servidor bastante robusto.
fuente
Parte de la pregunta era "¿hay alguna manera de arreglar esto (en Fedora)?" Hay: en la parte inferior de su archivo .bashrc agregue el comando
Probablemente desee hacerlo al final de su .bashrc (o cerca de él) porque podría estar ejecutando / etc / bashrc u otros scripts de bash en la parte superior de su .bashrc.
fuente
En fedora, este comportamiento se puede controlar cambiando el
/etc/PackageKit/CommandNotFound.conf
archivo de configuración.La configuración
SoftwareSourceSearch=false
eliminará el retraso ya que no intentará localizar un paquete con el comando que falta utilizando el administrador de paquetes.También puede cambiar la cantidad de tiempo que esperará una búsqueda de paquete cambiando la
MaxSearchTime=2000
opción para indicar la cantidad de milisegundos que está dispuesto a esperar para que la búsqueda de paquete devuelva una coincidencia. Creo que el valor predeterminado de 2 segundos no es lo suficientemente largo como para devolver coincidencias y solo causa un retraso no deseado cuando tiene un error tipográfico.O suba
MaxSearchTime
para proporcionar una salida útil o desactívelaSoftwareSourceSearch
para eliminar el retraso por completo.fuente