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!
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!
Câu trả lời:
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 $PATH
khô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)
Bạn có thể (vĩnh viễn) thêm một thư mục vào $PATH
bằng cách thêm dòng sau vào ~/.profile
tệ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
(chẳng hạn như $PATH
) có thể được tìm thấy ở đây (cảm ơn vì những gợi ý @Letizia)
$PATH
là 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 PATH
theo thứ tự được chỉ định.
Bạn có thể xem các thư mục được chỉ định bằng cách gõ echo $PATH
vào thiết bị đầu cuối.
Giả sử có một tệp thực thi foobar01.sh
hiện tại /home/user/foo1/foo2/foobar01.sh
mà 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 $PATH
biến và chúng tôi có thể thực hiện foobar.sh
trực tiếp mà không cần chỉ định đường dẫn.
Bạn có thể thêm nó vào $PATH
bằng cách gõ lệnh sau
export PATH=$PATH:/home/user/foo1/foo2
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