Lệnh which trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh which trong Linux để định vị đường dẫn của các file thực thi trên hệ thống của bạn. Lệnh which là một công cụ hữu ích để nhanh chóng xác định vị trí của các lệnh, script và các file thực thi khác. Bạn sẽ khám phá cách sử dụng cơ bản của lệnh which, cũng như một số kỹ thuật nâng cao để tìm các file thực thi, ngay cả khi chúng không nằm trong các thư mục hệ thống tiêu chuẩn.

Tìm hiểu Mục đích của Lệnh which

Trong bước này, bạn sẽ tìm hiểu về mục đích và cách sử dụng của lệnh which trong Linux. Lệnh which được sử dụng để định vị đường dẫn của các file thực thi trong hệ thống.

Đầu tiên, hãy thử chạy lệnh which để tìm vị trí của lệnh ls:

which ls

Ví dụ đầu ra:

/usr/bin/ls

Đầu ra cho thấy rằng lệnh ls nằm ở đường dẫn /usr/bin/ls. Lệnh which tìm kiếm trong các thư mục được chỉ định trong biến môi trường PATH để tìm file thực thi.

Bạn cũng có thể sử dụng lệnh which để tìm vị trí của các lệnh khác, chẳng hạn như python, git hoặc nano:

which python
which git
which nano

Ví dụ đầu ra:

/usr/bin/python3
/usr/bin/git
/usr/bin/nano

Lệnh which rất hữu ích khi bạn cần biết vị trí chính xác của một file thực thi, đặc biệt khi bạn có nhiều phiên bản của cùng một lệnh được cài đặt trên hệ thống của bạn.

Định vị Đường dẫn của File Thực thi Sử dụng Lệnh which

Trong bước này, bạn sẽ học cách sử dụng lệnh which để định vị đường dẫn của các file thực thi trên hệ thống của bạn.

Đầu tiên, hãy tạo một script đơn giản có tên là hello.sh trong thư mục ~/project:

cd ~/project
echo "#!/bin/bash" > hello.sh
echo "echo 'Hello, World!'" >> hello.sh
chmod +x hello.sh

Bây giờ, hãy sử dụng lệnh which để tìm đường dẫn của script hello.sh:

which hello.sh

Ví dụ đầu ra:

/home/labex/project/hello.sh

Đầu ra cho thấy rằng script hello.sh nằm ở đường dẫn /home/labex/project/hello.sh.

Bạn cũng có thể sử dụng lệnh which để tìm đường dẫn của các file thực thi khác, chẳng hạn như các lệnh hệ thống hoặc các ứng dụng đã cài đặt. Ví dụ:

which python
which git
which nano

Ví dụ đầu ra:

/usr/bin/python3
/usr/bin/git
/usr/bin/nano

Lệnh which là một công cụ hữu ích để nhanh chóng xác định vị trí của các file thực thi trên hệ thống của bạn.

Khám phá Cách sử dụng Nâng cao của Lệnh which

Trong bước cuối cùng này, bạn sẽ khám phá một số kịch bản sử dụng nâng cao của lệnh which.

Một trường hợp sử dụng nâng cao là sử dụng lệnh which để tìm sự xuất hiện đầu tiên của một file thực thi trong PATH của bạn. Ví dụ: giả sử bạn có nhiều phiên bản của Python được cài đặt trên hệ thống của bạn và bạn muốn tìm phiên bản đầu tiên trong PATH của bạn:

which python

Ví dụ đầu ra:

/usr/bin/python3

Lệnh which sẽ trả về phiên bản đầu tiên của file thực thi python mà nó tìm thấy trong PATH của bạn.

Bạn cũng có thể sử dụng lệnh which với tùy chọn -a để liệt kê tất cả các lần xuất hiện của một file thực thi trong PATH của bạn:

which -a python

Ví dụ đầu ra:

/usr/bin/python3
/usr/bin/python3.10
/usr/bin/python

Điều này có thể hữu ích khi bạn có nhiều phiên bản của cùng một lệnh được cài đặt và muốn xem tất cả các tùy chọn có sẵn.

Một cách sử dụng nâng cao khác là sử dụng lệnh which để kiểm tra xem một lệnh có tồn tại trong PATH của bạn hay không. Bạn có thể làm điều này bằng cách kiểm tra mã thoát của lệnh which:

which non_existent_command
echo $?

Ví dụ đầu ra:

echo $?
1

Nếu lệnh không được tìm thấy trong PATH của bạn, lệnh which sẽ trả về mã thoát khác không, cho biết rằng lệnh không tồn tại.

Các kỹ thuật nâng cao này có thể hữu ích khi làm việc với các môi trường hệ thống phức tạp hoặc khi bạn cần khắc phục các sự cố liên quan đến vị trí file thực thi.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích và cách sử dụng của lệnh which trong Linux. Lệnh which được sử dụng để định vị đường dẫn của các file thực thi trong hệ thống bằng cách tìm kiếm trong các thư mục được chỉ định trong biến môi trường PATH. Bạn đã khám phá cách sử dụng lệnh which để tìm vị trí của các lệnh khác nhau, chẳng hạn như ls, python, gitnano. Ngoài ra, bạn đã học cách sử dụng lệnh which để định vị đường dẫn của một script tùy chỉnh mà bạn đã tạo, chứng minh tính hữu ích của nó trong việc xác định vị trí của các file thực thi trên hệ thống của bạn.

400+ câu lệnh phổ biến trong Linux