which Trình tạo lệnh
Tạo các lệnh which để tìm các tập lệnh trong PATH
Bắt đầu sử dụng which
## Thứ gì là gì?
`which` nhận tên một lệnh và trả về đường dẫn đầy đủ của tập tin thực thi mà shell sẽ chạy thực tế. Nó sẽ duyệt theo thứ tự các mục trong `$PATH`, nhờ đó cho biết phiên bản lệnh nào sẽ được sử dụng khi có nhiều phiên bản được cài đặt. Đây là công cụ lý tưởng để chẩn đoán các vấn đề như “lệnh không tìm thấy”, các sự cố liên quan đến alias/shadowing, và lỗi cấu hình PATH.
## Cách sử dụng
1. **Đặt tùy chọn**: Bật/tắt chế độ `-a` (tìm tất cả các kết quả) hoặc chế độ `-s` (im lặng/khởi động với mã trạng thái). 2. **Nhập tên**: Gõ tên tập tin thực thi cần tìm kiếm. 3. **Sao chép và chạy**: Dán lệnh được tạo ra vào terminal của bạn.
Trạng thái khởi động sẽ là `0` nếu lệnh được tìm thấy, ngược lại sẽ là giá trị khác 0; vì vậy `which` rất hữu ích trong các script shell.
Các tùy chọn phổ biến
### Tên (theo vị trí) Tên tệp thực thi cần được xác định, ví dụ: `python`, `docker`, `node`. `which` sẽ hiển thị kết quả trùng khớp đầu tiên trong `$PATH`.
### `-a` Tất cả các kết quả trùng khớp Danh sách tất cả các tệp thực thi trùng khớp trong `$PATH`, chứ không chỉ kết quả đầu tiên. Hãy sử dụng mục này để phát hiện các phiên bản cài đặt trùng lặp hoặc bị che khuất (ví dụ: hai tệp nhị phân `python` nằm ở các thư mục khác nhau).
### `-s` Chế độ im lặng Không in ra bất cứ gì — chỉ dựa vào trạng thái thoát (0 = tìm thấy, khác 0 = chưa tìm thấy). Rất phù hợp để sử dụng trong các điều kiện trong script: `if which docker -s; then ...`.
▶Sự khác biệt giữa which, whereis và locate là gì?
▶Làm thế nào để tìm tất cả các bản cài đặt của một lệnh?
▶Tại sao `which` lại không tìm thấy lệnh mà tôi có thể chạy?
Nếu công cụ này đã giúp ích cho bạn, hãy nghĩ đến việc mua một cốc cà phê cho tôi.
Hãy mua cho tôi một cốc cà phê nhé.