कमांड नहीं मिलने के बाद देर क्यों?


18

अक्सर जब मैं एक कमांड टाइप करता हूं जैसे कि ls (जैसे I टाइप करने से पहले एंटर दबाता है) टर्मिनल डिस्प्ले के बाद एक लंबी (~ 2s) देरी होती है:

bash: l: command not found...

मैं एक गलत पासवर्ड दर्ज करने के बाद एक समान देरी के कारणों को समझ सकता हूं, प्रति गलत पासवर्ड दर्ज करने के बाद एक बड़ी देरी क्यों है? । लेकिन बिना मान्यता के आदेश के बाद देरी क्यों? क्या यह भी प्रभावित करता FAIL_DELAYहै /etc/login.defs?


8
हो सकता है कि फेडोरा अब उस भयानक उबंटू मिसफ्यूरेट का भी उपयोग कर रहा है जो आपको बताता है कि "यह प्रोग्राम स्थापित नहीं है, इसे स्थापित करने के लिए, टाइप करें ..."? देरी तब सभी संस्थापित पैकेजों के डेटाबेस को खोजने के कारण होती है। Psql (PostgreSQL का हिस्सा) को कॉल करने का प्रयास करें, जो संभवतः डिफ़ॉल्ट रूप से स्थापित नहीं है, लेकिन उम्मीद है कि रिपॉजिटरी में होगा।
उलरिच श्वार्ज़

echo "$PROMPT_COMMAND"आउटपुट क्या करता है?
रोजीसट्रेजियाविज़

इको "$ PROMPT_COMMAND": प्रिंटफ "\ 033] 0;% s @% s:% s \ 007" "$ {USER}" "$ {HOSTNAME %%। *}" "$" PWD / # $ HOME / ~। } "
paislee

$ PATH प्रिंट क्या प्रतिध्वनित करता है? जब भी आप वापसी कुंजी मारते हैं तो आपका सिस्टम हर बार जाँच करता है।
हनन एन।

जवाबों:


19

कुछ शोध के बाद मैं ने पाया है यह :

  • इसके साथ कमांड-न-पाए पैकेज को अनइंस्टॉल करने का प्रयास करें, $>yum remove command-not-foundफिर से इसे स्थापित करें >$yum install command-not-found(बस आपके सिस्टम में उस पैकेज को स्थापित करने की स्थिति में)।

यदि वह कोशिश में मदद नहीं करता है:

  • इसे अपनी ~/.bashrcफ़ाइल में जोड़ें :

    unset command_not_found_handle


2
दूसरे सुझाव ने देरी को दूर किया। मेरे पास पैकेज कमांड नहीं है-पाया नहीं गया है। धन्यवाद!
paislee

मैं सवाल करता हूं कि किसके विचार से यह तय करना एक अच्छा विचार था कि इसे डिफ़ॉल्ट रूप से सक्षम किया जाए
fostandy

16

मैंने पाया कि कम से कम फेडोरा पर सबसे अच्छा समाधान, कॉन्फ़िगरेशन फ़ाइल को संशोधित करना है
/etc/PackageKit/CommandNotFound.conf

संकुल को खोजने के लिए सबसे बड़ी देरी के रूप में स्थापित करने के लिए, यदि आप में संशोधित SoftwareSourceSearch=trueकरते हैं SoftwareSourceSearch=false

देरी लगभग 0 है और आप अभी भी गलत वर्तनी के बारे में चेतावनी देते हैं, जो उपयोगी हो सकता है।


3

फेडोरा कुछ इसी तरह का उपयोग करता है।

यदि आप इस सुविधा का उपयोग करना चाहते हैं, तो:

yum remove PackageKit-command-not-found

अनुसरण करें: यदि आप इस पैकेज को हटाते हैं तो आप यह उल्लेख करना भूल गए हैं कि आपको एक त्रुटि संदेश मिलेगा: bash: /usr/libexec/pk-command-not-found: No such file or directory इसे ठीक करने के लिए पैकेज को हटाने के बाद फ़ाइल बनाएँ, / usr / libexec / pk-command-not-not-found with the following: #!/bin/sh echo "Command not found: $1" यह प्रिंट करेगा: कमांड नहीं मिली: असफल-कमांड

0

मेरे मामले में यह कुछ ज्ञात प्रॉक्सी बग के कारण / 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]

मेरा प्रॉक्सी कॉन्फ़िगरेशन सही है क्योंकि नंगे कर्ल कमांड वाले सटीक URL को डाउनलोड करने पर यह तुरंत सफल हो जाता है।

मैंने जांच की कि pk-command-not-found प्रक्रिया में प्रॉक्सी कॉन्फ़िगरेशन है:

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

हालाँकि यह किसी अज्ञात कारण से इसका उपयोग नहीं करता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.