Sự khác biệt giữa lệnh which, whereis, whatis trong Linux

Sự khác biệt giữa lệnh which, whereis, whatis trong Linux

Chia sẻ kiến thức 01/07/2023

Với người mới sử dụng Linux, các lệnh which, whereis và whatis nghe có vẻ giống nhau, nhưng chúng khác biệt hơn là bạn nghĩ.

 

Bạn có thể đã sử dụng lệnh which, whereis và whatis trên Linux nhiều lần. Cả ba lệnh này đều giúp bạn tìm kiếm thông tin về các lệnh Linux khác. Các lệnh này trông giống nhau, nhưng chúng có một số khác biệt.
 

Bài viết dưới đây sẽ so sánh chi tiết về sự khác biệt giữa các lệnh which, whereis và whatis trên Linux.

Lệnh which

Một số lệnh có nhiều tệp thực thi nhị phân (binary executable) nằm trong các thư mục khác nhau. Khi bạn chạy một lệnh, shell sẽ tìm kiếm các tệp thực thi của nó trong các thư mục được chỉ định trong biến môi trường PATH.

Để tìm ra những thư mục nào trong biến môi trường PATH, hãy mở terminal trên Linux và chạy lệnh sau:

echo $PATH

Bạn cũng có thể thêm thư mục vào biến môi trường PATH theo cách thủ công .

Khi shell tìm thấy đường dẫn có thể thực thi (executable path) đầu tiên, shell sẽ thực thi nó. Sử dụng lệnh which trong Linux, bạn có thể xác định đường dẫn của tệp thực thi đó.

 

Điều này rất hữu ích nếu bạn có hai phiên bản khác nhau của cùng một chương trình hoặc hai chương trình khác nhau nhưng lại có cùng tên cài đặt trên hệ thống. Sử dụng lệnh which, bạn có thể tìm thấy lệnh nào sẽ được thực hiện trước.

Đây là cú pháp của lệnh which:

which [option] [command]

Chẳng hạn, để kiểm tra đường dẫn thực của lệnh tar, bạn sẽ gõ:

which tar
lệnh nào trong Linux

Lệnh này sẽ hiển thị đường dẫn thực thi đầu tiên, tức là /usr/bin được tìm thấy cho lệnh tar trong PATH. Điều này có nghĩa là bất cứ khi nào bạn chạy lệnh tar, shell sẽ thực thi tệp nhị phân nằm trong thư mục /usr/bin.

 

Để hiển thị tất cả các đường dẫn thực thi có sẵn cho một lệnh, hãy sử dụng lệnh which với tùy chọn -a :

which -a tar

Bạn cũng có thể hiển thị đường dẫn thực thi cho nhiều lệnh cùng lúc như sau:

which [command1] [command2] [command3]

Lệnh whereis

Lệnh whereis hiển thị đường dẫn của tệp nhị phân, nguồn và trang hướng dẫn (manual page) được liên kết với lệnh đã chỉ định. Không giống như lệnh which, nó không chỉ tìm kiếm tệp thực thi trong $PATH mà còn cả $MANPATH và các vị trí được xác định trước khác.

Lệnh whereis hiển thị các tệp trang nhị phân, nguồn và trang hướng dẫn cho một lệnh, nếu không có bất kỳ tùy chọn dòng lệnh nào:

whereis tar
lệnh whereis trong Linux

Để chỉ hiển thị đường dẫn tệp nhị phân, hãy sử dụng tùy chọn -b:

whereis -b tar

Để chỉ hiển thị tệp nguồn, hãy sử dụng tùy chọn -s:

whereis -s tar

Để chỉ hiển thị trang thủ công, hãy sử dụng tùy chọn -m:

whereis -m tar

Lệnh whatis

Lệnh whatis cung cấp mô tả về một lệnh Linux trong một dòng. Nó tìm thấy thông tin này từ trang hướng dẫn của lệnh.

 

Ví dụ, để tìm xem chức năng của lệnh tar, hãy chạy:

whatis tar
lệnh whatis trong Linux

Bạn cũng có thể tìm thông tin về nhiều lệnh cùng lúc bằng cách sử dụng:

whatis ls cp mkdir cat head

Sự khác biệt giữa lệnh which, whereis, whatis trong Linux

Sử dụng lệnh which nếu bạn đang tìm đường dẫn của tệp nhị phân được thực thi khi một lệnh được chạy trong shell. Trong khi đó, nếu bạn đang tìm kiếm nguồn, tệp nhị phân và trang hướng dẫn cho một lệnh, hãy sử dụng whereis.

Lệnh whereis liệt kê tất cả các tệp thực thi nhị phân còn lệnh which chỉ hiển thị tệp thực thi (executable) đầu tiên được thực thi khi bạn nhập lệnh đó trong shell.

Lệnh which thực hiện tìm kiếm trong biến PATH trong khi lệnh whereis tìm kiếm các thư mục Linux tiêu chuẩn, bao gồm $PATH và $MANPATH.

Cuối cùng, lệnh whatis chỉ hiển thị mô tả của lệnh trong một dòng.

Tìm thông tin về các lệnh Linux

Cả ba lệnh trên giúp bạn tìm thông tin về các lệnh Linux khác, chẳng hạn như đường dẫn đầy đủ của tệp thực thi, nhị phân, nguồn, trang hướng dẫn và chức năng của lệnh.

 

Cùng với whatis, bạn có thể sử dụng các lệnh khác như apropos, man, info và help để có được thông tin chi tiết cũng như hiểu rõ hơn về các lệnh Linux cũng như chức năng của chúng.

Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/which-vs-whereis-vs-whatis-in-linux/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại