web-dev-qa-db-ja.com

コマンドが見つからないのになぜ長い遅延があるのですか?

多くの場合、lsなどのコマンドを誤って入力すると(たとえば、「s」を入力する前にEnterキーを押します)、端末が表示されてから長い遅延(〜2秒)があります。

bash: l: command not found...

間違ったパスワードを入力した後に大きな遅延があるのはなぜですか? に従って、誤ったパスワードが入力された後の同様の遅延の理由を理解できます。しかし、なぜ認識されないコマンドの後で遅延するのですか?しますFAIL_DELAY in /etc/login.defsこれにも影響しますか?

19
paislee

いくつかの調査の後、私は発見しました this

  • コマンドが見つからないパッケージを$>yum remove command-not-foundでアンインストールしてから、>$yum install command-not-foundで再度インストールしてください(システムにパッケージがインストールされている場合に備えて)。

それでも解決しない場合:

  • これを~/.bashrcファイルに追加します。

    unset command_not_found_handle

19
Hanan N.

少なくともFedoraでは、構成ファイルを変更することが最善の解決策であることがわかりました
/etc/PackageKit/CommandNotFound.conf

最大の遅延は、SoftwareSourceSearch=trueSoftwareSourceSearch=falseを変更した場合、インストールするパッケージの検索に起因します。

遅延はほぼ0であり、スペルミスについて警告が表示されます。これは便利な場合があります。

18
GiP

Fedoraも同様のものを使用します。

この機能を削除したい場合は、以下を使用します。

yum remove PackageKit-command-not-found
3
user16852

私の場合、それは/ 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

0
MarcH