Linux whereis command

Lệnh whereis trong Linux: Tìm kiếm nhanh chóng các tệp nhị phân, mã nguồn và trang thủ công

Trong thế giới Linux rộng lớn, việc tìm kiếm một tệp cụ thể có thể giống như mò kim đáy bể. May mắn thay, Linux cung cấp nhiều công cụ mạnh mẽ để giúp bạn định vị các tệp một cách nhanh chóng và hiệu quả. Một trong số đó là lệnh whereis, một công cụ dòng lệnh đơn giản nhưng vô cùng hữu ích để tìm kiếm vị trí của các tệp nhị phân, mã nguồn và trang thủ công liên quan đến một lệnh hoặc chương trình cụ thể.

Bài viết này sẽ đi sâu vào lệnh whereis, khám phá cú pháp, các tùy chọn và cách sử dụng thực tế của nó. Chúng ta cũng sẽ so sánh whereis với các lệnh tìm kiếm khác như which và locate để giúp bạn lựa chọn công cụ phù hợp nhất cho nhu cầu của mình.

whereis là gì và hoạt động như thế nào?

Lệnh whereis là một tiện ích dòng lệnh trong Linux được sử dụng để xác định vị trí của các tệp nhị phân, mã nguồn và trang thủ công (manual pages) của một lệnh hoặc chương trình cụ thể. Nó hoạt động bằng cách tìm kiếm trong một tập hợp các thư mục tiêu chuẩn được xác định trước, thường bao gồm /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin và /usr/local/sbin. whereis sử dụng cơ sở dữ liệu được lập chỉ mục để tăng tốc quá trình tìm kiếm, giúp nó nhanh hơn so với việc tìm kiếm toàn bộ hệ thống tệp.

Khi bạn chạy whereis , lệnh sẽ tìm kiếm trong các thư mục được chỉ định và trả về đường dẫn đầy đủ đến các tệp phù hợp. Ví dụ, nếu bạn chạy whereis ls, nó sẽ hiển thị vị trí của tệp thực thi ls, tệp mã nguồn (nếu có) và trang thủ công của ls.

Cú pháp và các tùy chọn thường dùng

Cú pháp cơ bản của lệnh whereis như sau:

whereis [tùy_chọn] tên_lệnh...

Dưới đây là một số tùy chọn phổ biến của lệnh whereis:

  • -b: Chỉ tìm kiếm các tệp nhị phân.
  • -m: Chỉ tìm kiếm các trang thủ công.
  • -s: Chỉ tìm kiếm các tệp mã nguồn.
  • -u: Tìm kiếm các tệp không có tài liệu kèm theo.
  • -B : Chỉ định một hoặc nhiều thư mục để tìm kiếm các tệp nhị phân.
  • -M : Chỉ định một hoặc nhiều thư mục để tìm kiếm các trang thủ công.
  • -S : Chỉ định một hoặc nhiều thư mục để tìm kiếm các tệp mã nguồn.

Ví dụ:

  • whereis -b ls: Tìm vị trí của tệp nhị phân ls.
  • whereis -m ls: Tìm vị trí của trang thủ công ls.
  • whereis -u python: Tìm kiếm các tệp python không có tài liệu kèm theo.
  • whereis -B /opt/bin myprogram: Tìm tệp nhị phân myprogram trong thư mục /opt/bin.

Ví dụ thực tế về việc sử dụng whereis

Hãy cùng xem xét một vài ví dụ về cách sử dụng lệnh whereis trong thực tế:

  1. Tìm vị trí của tệp thực thi gcc và trang thủ công của nó:
    whereis gcc
    Kết quả có thể như sau:
    gcc: /usr/bin/gcc /usr/share/man/man1/gcc.1.gz
    Điều này cho biết tệp thực thi gcc nằm ở /usr/bin/gcc và trang thủ công của nó nằm ở /usr/share/man/man1/gcc.1.gz.
  2. Tìm vị trí của tệp nhị phân python3:
    whereis -b python3
    Kết quả có thể như sau:
    python3: /usr/bin/python3
    Điều này cho biết tệp nhị phân python3 nằm ở /usr/bin/python3.
  3. Tìm kiếm các tệp không có trang thủ công:
    whereis -u myprogram
    Nếu myprogram không có trang thủ công, whereis sẽ hiển thị tên của nó. Điều này hữu ích để xác định các chương trình thiếu tài liệu.

So sánh whereis, which và locate

Linux cung cấp nhiều lệnh để tìm kiếm tệp. Dưới đây là so sánh giữa whereis, which và locate:

Lệnh Mô tả Ưu điểm Nhược điểm
whereis Tìm kiếm các tệp nhị phân, mã nguồn và trang thủ công trong các thư mục tiêu chuẩn. Nhanh chóng, tìm kiếm các loại tệp khác nhau (binary, source, man page). Chỉ tìm kiếm trong các thư mục tiêu chuẩn, có thể không tìm thấy các tệp được cài đặt ở vị trí khác.
which Tìm kiếm tệp thực thi trong các thư mục được chỉ định trong biến môi trường PATH. Đơn giản, tập trung vào tìm kiếm tệp thực thi, tuân theo biến PATH. Chỉ tìm kiếm tệp thực thi, không tìm kiếm mã nguồn hoặc trang thủ công.
locate Tìm kiếm tệp dựa trên cơ sở dữ liệu được lập chỉ mục. Rất nhanh, có thể tìm kiếm bất kỳ tệp nào trên hệ thống. Cơ sở dữ liệu cần được cập nhật thường xuyên (thường là hàng ngày) để đảm bảo kết quả chính xác. Kết quả có thể không chính xác nếu cơ sở dữ liệu chưa được cập nhật sau khi tệp được tạo hoặc di chuyển.

Khi nào nên sử dụng lệnh nào?

  • Sử dụng whereis khi bạn muốn tìm vị trí của tệp nhị phân, mã nguồn và trang thủ công của một lệnh cụ thể và bạn biết rằng các tệp này có khả năng nằm trong các thư mục tiêu chuẩn.
  • Sử dụng which khi bạn chỉ muốn tìm vị trí của tệp thực thi của một lệnh và bạn muốn đảm bảo rằng lệnh đó có thể được thực thi từ dòng lệnh.
  • Sử dụng locate khi bạn muốn tìm bất kỳ tệp nào trên hệ thống và bạn không quan tâm đến việc cơ sở dữ liệu có thể không hoàn toàn cập nhật. Hãy nhớ chạy sudo updatedb để cập nhật cơ sở dữ liệu trước khi sử dụng locate để có kết quả chính xác nhất.

Mẹo và thủ thuật khi sử dụng whereis

  • Sử dụng -b, -m hoặc -s để giới hạn phạm vi tìm kiếm: Điều này có thể giúp bạn tìm thấy kết quả nhanh hơn và chính xác hơn.
  • Sử dụng -u để tìm kiếm các tệp không có tài liệu: Điều này có thể hữu ích để xác định các chương trình cần được ghi lại.
  • Sử dụng -B, -M hoặc -S để chỉ định các thư mục tìm kiếm cụ thể: Điều này có thể hữu ích nếu bạn biết rằng tệp bạn đang tìm kiếm nằm trong một thư mục không phải là tiêu chuẩn.
  • Cập nhật cơ sở dữ liệu locate thường xuyên: Nếu bạn sử dụng locate, hãy đảm bảo rằng bạn cập nhật cơ sở dữ liệu thường xuyên bằng lệnh sudo updatedb để có kết quả chính xác nhất.

Câu hỏi thường gặp (FAQ)

  1. Lệnh whereis có tìm kiếm các tệp trong tất cả các thư mục không?

    Không, whereis chỉ tìm kiếm trong một tập hợp các thư mục tiêu chuẩn được xác định trước.

  2. Tôi có thể tùy chỉnh các thư mục mà whereis tìm kiếm không?

    Có, bạn có thể sử dụng các tùy chọn -B, -M và -S để chỉ định các thư mục tìm kiếm cụ thể.

  3. Tại sao whereis không tìm thấy tệp của tôi?

    Có một vài lý do khiến whereis có thể không tìm thấy tệp của bạn: tệp có thể không nằm trong một trong các thư mục tiêu chuẩn mà whereis tìm kiếm, hoặc tệp có thể không phải là tệp nhị phân, mã nguồn hoặc trang thủ công.

  4. whereis có phân biệt chữ hoa chữ thường không?

    Không, whereis không phân biệt chữ hoa chữ thường.

Kết luận

Lệnh whereis là một công cụ hữu ích để nhanh chóng tìm kiếm vị trí của các tệp nhị phân, mã nguồn và trang thủ công trong Linux. Bằng cách hiểu cú pháp, các tùy chọn và cách sử dụng thực tế của nó, bạn có thể tận dụng tối đa công cụ này để quản lý hệ thống Linux của mình hiệu quả hơn. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để sử dụng whereis một cách tự tin và hiệu quả. Chúc bạn thành công!

Last Updated : 22/08/2025