Bạn có thể đã sử dụng các lệnh which, whereis và whatis trên Linux vài lần. Cả 3 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.
Dưới đây là so sánh chi tiết về các lệnh which, whereis và whatis trên Linux.
Lệnh which
Một số lệnh có nhiều file thực thi nhị phân 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 file thực thi của nó trong những 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
Mẹo: 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 thực thi đầ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 file thực thi đó.
Điều này hữu ích trong các trường hợp 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 có cùng tên được cài đặt trên hệ thống của bạn. Sử dụng lệnh which, bạn có thể tìm thấy lệnh nào sẽ được thực thi 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à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 file 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ị các đường dẫn thực thi cho nhiều lệnh cùng một lúc như sau:
which [command1] [command2] [command3]
Lệnh whereis
Lệnh whereis hiển thị đường dẫn của file nhị phân, nguồn và trang hướng dẫn đượ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 file thực thi trong $PATH mà còn cả $MANPATH và các vị trí được xác định trước khác.
Không có bất kỳ tùy chọn dòng lệnh nào, lệnh whereis hiển thị các file nhị phân, nguồn và trang hướng dẫn cho một lệnh:
whereis tar
Để chỉ hiển thị đường dẫn file nhị phân, hãy sử dụng tùy chọn -b:
whereis -b tar
Để chỉ hiển thị file nguồn, hãy sử dụng flag -s:
whereis -s tar
Để chỉ hiển thị trang hướng dẫn, hãy sử dụng tùy chọn -m:
whereis -m tar
Lệnh whatis
Lệnh whatis cung cấp mô tả một dòng về lệnh Linux đã cho. Nó tìm thấy thông tin này từ trang hướng dẫn của lệnh.
Chẳng hạn, để tìm xem lệnh tar làm gì, hãy chạy:
whatis tar
Bạn cũng có thể tìm thông tin về nhiều lệnh đồng thời bằng cách sử dụng:
whatis ls cp mkdir cat head
Sự khác biệt giữa which, whereis và whatis trong Linux
Nếu bạn đang tìm đường dẫn của file nhị phân được thực thi khi một lệnh được chạy trong shell, hãy sử dụng lệnh which. Còn nếu bạn đang tìm kiếm các nguồn, 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 file thực thi nhị phân trong khi lệnh which chỉ hiển thị file đầu tiên được thực thi khi bạn nhập lệnh đã nói trong shell.
Lệnh which thực hiện tìm kiếm trong biến PATH, còn 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ả một dòng của lệnh.