Loại hành vi này được gây ra bởi một công cụ thường xuyên được cài đặt trên một số bản phân phối móc vào bash. Móc này làm cho nó để nếu bạn cố chạy một lệnh và lệnh không tồn tại, thì bash sẽ tìm kiếm các tệp có sẵn trong kho được cấu hình và cho bạn biết gói nào bạn cần cài đặt để nhận lệnh đó.
Nếu bạn không ở trong hệ thống Debian, bạn sẽ muốn xem xét các hồ sơ tệp khởi động bash của mình, v.v. và xem liệu có gì xác định chức năng được đặt tên không command_not_found_handle
. Nếu hàm bash đó được xác định, thì nó sẽ được gọi bất cứ khi nào bạn chạy lệnh và một chương trình thích hợp không thể tìm thấy trong đường dẫn tìm kiếm của bạn. Nếu bạn chạy typset | less
và duyệt qua đầu ra, bạn sẽ thấy command_not_found_handle()
chức năng nếu nó đã được xác định.
Trên Debian / Ubuntu gói cung cấp hành vi này là không tìm thấy lệnh . Nếu bạn thanh lọc điều đó, thì bạn sẽ vô hiệu hóa các tra cứu làm chậm mọi thứ.
Đây là một ví dụ
# 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
Thời gian chính xác tất nhiên sẽ khác nhau đối với bạn. Tôi đã chạy thử nghiệm của tôi trên một máy chủ khá khó khăn.