Biến PATH luôn được đặt lại. Làm thế nào để khắc phục điều đó?


9

Cách đây ít lâu, tôi phát hiện ra rằng tôi có thể tạo các lệnh lệnh tùy chỉnh bằng cách mở rộng biến PATH. Thật không may, nó luôn được đặt lại, khi tôi đóng thiết bị đầu cuối và mở lại.

Bạn có biết làm thế nào để khắc phục vấn đề này?

Bởi vì khi tôi muốn bắt đầu một vài tập lệnh với terminalcommands, tôi không muốn mở rộng biến PATH mỗi lần trước khi ...


1
Đặt nó trong của bạn .bashrc?
gniourf_gniourf

Làm thế nào để làm điều đó? Tôi mới dùng Linux;)
Jenne

2
mở .bashrctệp của bạn như vậy: gedit ~/.bashrcvà đặt bất cứ thứ gì bạn muốn vào đó (ở dưới cùng của tệp là tốt hơn), ví dụ PATH="~/my/cool/path/:$PATH"và xuất biến này: sau dòng bạn vừa nhập, đặt export PATHrồi lưu tệp, sau đó đóng thiết bị đầu cuối của bạn và mở lại nó và bây giờ thực thi của bạn trong ~/my/cool/pathsẽ được tìm thấy.
gniourf_gniourf

Tôi đã viết nó như một câu trả lời đầy đủ cho bạn ...:)
gniourf_gniourf

Câu trả lời:


15

Tôi hiểu rằng bạn có một số thực thi trong một trong các thư mục nhà của bạn, ví dụ, trong ~/binvà bạn muốn có thể thực thi chúng mà không phải luôn luôn nhập đường dẫn đầy đủ ~/bin/my_cool_executable.

Bạn đã quan sát thấy rằng việc nhập vào PATH=~/bin:$PATHthiết bị đầu cuối của bạn làm cho mọi thứ hoạt động ... nhưng chỉ cho đến khi bạn đóng thiết bị đầu cuối. Khi bạn mở một cái mới, PATHbiến cũ của bạn sẽ được đặt lại về giá trị ban đầu. Nhân tiện, tôi đoán bạn biết cách, bất cứ lúc nào, kiểm tra giá trị của PATHbiến: như vậy:

echo "$PATH"

Làm thế nào để thay đổi vĩnh viễn để bạn PATHvẫn như cũ khi mở lại thiết bị đầu cuối mới? Rất dễ dàng, bạn chỉ cần chỉnh sửa .bashrctệp của mình . Hãy sử dụng gedittrình chỉnh sửa: Trong một thiết bị đầu cuối, gõ này:

gedit ~/.bashrc

Điều này mở ra gedittrình soạn thảo. Cuộn đến cuối tập tin và thêm vào đây:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

và lưu tập tin và thoát gedit. Sau đó đóng thiết bị đầu cuối của bạn và mở một cái mới. Bây giờ PATHbiến của bạn nên có ~/bintrước nó để các lệnh của bạn ~/bincó thể truy cập được mà không cần nhập đường dẫn đầy đủ của chúng. Và bạn biết làm thế nào để kiểm tra rằng : echo "$PATH".

Thưởng thức!

Cảnh báo . Nó được coi là thực tiễn xấu và một lỗ hổng bảo mật để đưa .vào PATHbiến của bạn .


Vì vậy, điều đó thực sự tốt, nhưng bây giờ tôi không thể bắt đầu các chương trình, khi tôi đã root. Bạn có biết tại sao và làm thế nào để khắc phục điều đó? :)
Jenne

Trong trường hợp này, một tùy chọn là đưa các chương trình của bạn vào /usr/local/binthay vì thay đổi với PATHbiến ... hoặc /usr/local/sbinnếu chúng chỉ phải được truy cập bằng root.
gniourf_gniourf

Một số phải được chạy như root và một số thì không. Vì vậy, nó sẽ rất tuyệt, nếu nó không quan trọng và chúng có thể nằm trong một thư mục tùy chỉnh. Vì vậy, ist nó có thể làm điều đó? :)
Jenne
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.