$ PATH có nghĩa là gì?


28

Tôi đang cố gắng cài đặt một cái gì đó và trong số các bước có cái này:

"Đặt nó trên $PATH"

Điều đó có nghĩa là gì? Đó là gì?

Tôi đã tìm kiếm cả trang web này và trên Google nhưng mọi người chỉ coi đó là điều hiển nhiên!



2
@muru Không tôi đã đọc câu hỏi đó và nó không có gì chung với tôi. Ngoài ra câu hỏi này không hữu ích chút nào.
Adam

4
@muru Tôi nghĩ rằng câu hỏi không phải là về cách thêm (hoặc tôi có thể hiểu nhầm ý nghĩa của "Đặt nó trên $ PATH của bạn").
Jacob Vlijm

1
@JacobVlijm bạn nói đúng không.
Adam

2
Tôi hiểu rồi. Ổn thỏa. Liên quan; Askubfox.com/q/141718/158442
muru

Câu trả lời:


24

Chạy trong một thiết bị đầu cuối:

echo $PATH

hoặc là

printf "%s\n" "$PATH"

những gì bạn thấy là một danh sách các thư mục, trông giống như:

/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Nếu bạn đặt một tệp thực thi trong một trong các thư mục này, bạn không cần đặt đường dẫn đến tệp thực thi / tập lệnh, nhưng bạn có thể chạy nó bằng tên của nó dưới dạng một lệnh.

Thực thi trong $PATHkhông nên có một phần mở rộng ngôn ngữ theo quy ước (mặc dù chúng sẽ hoạt động)

Chỉnh sửa biến $ PATH của bạn

Bạn có thể (vĩnh viễn) thêm một thư mục vào $PATHbằng cách thêm dòng sau vào ~/.profiletệp của mình (ẩn theo mặc định, nhấn Ctrl+ Htrong trình quản lý tệp để hiển thị)

export PATH=$PATH:/path/to/dir

Thêm thông tin hữu ích về các biến môi trường

(chẳng hạn như $PATH) có thể được tìm thấy ở đây (cảm ơn vì những gợi ý @Letizia)


chúng tôi có thể đề xuất cách thay đổi nó trong .bashrc PATH = $ PATH: / path / you / muốn hoặc trong .profile, bạn nghĩ gì?
Lety

và đây là một liên kết hữu ích cho người mới bắt đầu
Lety

@Letizia Tôi thích cái đầu tiên. Bạn đã loại bỏ câu trả lời của bạn? chúng tôi đã khá nhiều cùng một lúc. chúng ta có thể tạo ra một sự kết hợp lan truyền độc đáo :)
Jacob Vlijm

Vâng, tôi đã làm xong, câu trả lời của tôi đã bị xóa và tôi nghĩ đó là đóng góp tốt hơn cho bạn. Bạn nghĩ gì về nhận xét của tôi?
Lety

@Letizia bình luận = hoàn hảo, tôi sẽ chỉnh sửa. Cảm ơn!
Jacob Vlijm

6

$PATHlà một biến môi trường tập tin liên quan đến môi trường .

Khi một kiểu gõ lệnh để chạy, hệ thống sẽ tìm kiếm nó trong các thư mục được chỉ định bởi PATHtheo thứ tự được chỉ định.

Bạn có thể xem các thư mục được chỉ định bằng cách gõ echo $PATHvào thiết bị đầu cuối.

Giả sử có một tệp thực thi foobar01.shhiện tại /home/user/foo1/foo2/foobar01.shmà bạn muốn thực thi một cách thường xuyên. gõ toàn bộ "đường dẫn" sẽ tốn thời gian. Vì vậy, chúng tôi thêm thư mục vào $PATHbiến và chúng tôi có thể thực hiện foobar.shtrực tiếp mà không cần chỉ định đường dẫn.

Bạn có thể thêm nó vào $PATHbằng cách gõ lệnh sau

export PATH=$PATH:/home/user/foo1/foo2


2

Tôi giả sử bạn đến từ nền Windows (xin lỗi nếu điều đó không đúng). Theo thuật ngữ của cư sĩ, một đường dẫn (hoặc đường dẫn tìm kiếm) là danh sách các thư mục sẽ được tìm kiếm cho bất cứ thứ gì bạn gõ trên dòng lệnh. Nếu bạn gõ một lệnh tích hợp như ls, nó sẽ tìm danh sách các thư mục được chỉ định. Bạn có thể tra cứu đường dẫn của mình bằng cách gõ echo $ PATH. Đây là một điểm khác biệt giữa Windows và * nix: Theo mặc định, Windows luôn tìm tệp thực thi trong thư mục hiện tại. Ví dụ: nếu bạn có một tệp có tên uptime.bat trong c: \ myscripts và bạn cd c: \ myscripts và nhập thời gian hoạt động, nó sẽ chạy. Tuy nhiên, trong * nix, đường dẫn sẽ được tư vấn và tìm thấy tệp thực thi (nếu có).

Nếu bạn giữ các tập lệnh của mình trong một thư mục có tên / home / teresa / scripts, để thực thi các tập lệnh đó, bạn sẽ phải chỉ định đường dẫn đầy đủ đến thư mục đó. Ví dụ: / hone / teresa / checkhost. Một biến thể sẽ là cd / home / teresa và sau đó nhập ./checkhost (lưu ý ./ có nghĩa là bạn rõ ràng yêu cầu tệp chạy từ thư mục hiện tại.

Để tránh điều này, bạn chỉ cần gõ

xuất PATH = $ PATH: / home / teresa / scripts

có nghĩa là, ngoài đường dẫn đã tồn tại bây giờ, cũng tìm kiếm trong / hone / teresa / scripts. Tuy nhiên, vấn đề với điều này là một khi bạn đăng xuất, cài đặt này sẽ không còn nữa. Vì vậy, bạn nên chỉnh sửa tệp ẩn ~ / .bashrc, tìm dòng PATH ở đó và nối nó cho phù hợp. Tôi giả sử bạn sử dụng bash. Trong trường hợp các shell khác, cú pháp và tệp là khác nhau.

Là một người dùng mới, nó rất hấp dẫn để có. trong đường dẫn tìm kiếm, về cơ bản có nghĩa là cũng tìm kiếm trong thư mục hiện tại. Tuy nhiên, đó không được coi là một thực tiễn tốt vì những lý do được thảo luận ở nơi khác.

HTH

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.