このタイプの動作は、bashにフックする一部のディストリビューションに頻繁にインストールされるツールが原因です。このフックにより、コマンドを実行しようとしてコマンドが存在しない場合、bashは構成されたリポジトリで使用可能なファイルを検索し、そのコマンドを取得するためにインストールする必要があるパッケージを通知します。
Debianシステムを使用していない場合は、bashスタートアップファイルのプロファイルなどを調べて、という名前の関数が定義されているかどうかを確認する必要がありますcommand_not_found_handle
。そのbash関数が定義されている場合、コマンドを実行するたびに呼び出され、検索パスに適切なプログラムが見つかりません。typset | less
出力を実行して参照すると、command_not_found_handle()
定義されている関数が表示されます。
Debian / Ubuntuでは、この動作を提供するパッケージはcommand-not-foundです。これを削除すると、ルックアップが無効になり、処理が遅くなります。
ここに例があります
# command-not-found installed
$ time pwgen
The program 'pwgen' is currently not installed. To run 'pwgen' please ask your administrator to install the package 'pwgen'
pwgen: command not found
real 0m0.074s
user 0m0.032s
sys 0m0.040s
# purge command-not-found and restart bash
$ time pwgen
-bash: pwgen: command not found
real 0m0.002s
user 0m0.000s
sys 0m0.000s
もちろん、正確な時間はあなたによって異なります。私はかなり頑丈なサーバーでテストを実行しました。