Câu hỏi Làm thế nào để thêm một thư mục vào PATH?


Làm cách nào để thêm thư mục vào $PATH trong Ubuntu và thực hiện các thay đổi vĩnh viễn?


627
2017-07-22 20:42


gốc


help.ubuntu.com/community/EnvironmentVariables Có tất cả những gì bạn cần biết. Tôi phát hiện ra rằng rất nhiều đầu vào ở đây là không đúng hoặc ít nhất là phương pháp không được đề xuất. Đây là một thông tin tuyệt vời sẽ cho phép bạn tìm ra nơi để sửa đổi biến môi trường của bạn dựa trên lý do bạn đang làm nó và chính xác làm thế nào để làm điều đó mà không làm hỏng mọi thứ (như tôi đã làm theo một số lời khuyên xấu nói trên). Vì vậy, lâu dài và cảm ơn cho tất cả các cá! - Bus42


Các câu trả lời:


Sử dụng ~ / .profile để đặt $ PATH

Đường dẫn được đặt trong .bash_profile sẽ chỉ được đặt trong một shell đăng nhập bash (bash -l). Nếu bạn đặt đường vào .profile nó sẽ có sẵn cho phiên máy tính để bàn hoàn chỉnh của bạn. Điều đó có nghĩa là ngay cả metacity sẽ sử dụng nó.

Ví dụ ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw, bạn có thể kiểm tra biến PATH của một quá trình bằng cách nhìn vào môi trường của nó trong /proc/[pid]/environ (thay thế [pid] bằng số từ ps axf). Ví dụ. sử dụng grep -z "^PATH" /proc/[pid]/environ

Chú thích:

bash như một vỏ đăng nhập không phân tích cú pháp .profile nếu một trong hai .bash_profile hoặc là .bash_login tồn tại. Từ man bash :

nó tìm kiếm ~ / .bash_profile, ~ / .bash_login và ~ / .profile, trong đó   thứ tự, và đọc và thực hiện các lệnh từ lệnh đầu tiên tồn tại   và có thể đọc được.

Xem câu trả lời bên dưới để biết thông tin về .pam_environment, hoặc là .bashrc cho các shell không đăng nhập tương tác, hoặc thiết lập giá trị toàn cầu cho tất cả người dùng bằng cách đặt một kịch bản vào /etc/profile.d/ hoặc dùng /etc/X11/Xsession.d/ để ảnh hưởng đến phiên trình quản lý hiển thị.


397
2017-07-22 22:04



Cool, nó hoạt động. Tôi thấy nơi nó sẽ tự động thêm các thư mục bin nếu tôi làm cho nó vì vậy tôi chỉ sử dụng mà thay vì kịch bản. TY. - justingrif
Trên Xbunutu .profile không được thực thi nên tôi đặt nó vào .bashrc và nó hoạt động. - tekumara
Phần tài liệu này được thực hiện rất tốt: Tài liệu chính thức về biến môi trường. Hãy xem xét đọc nó (không phải để nói rằng được cập nhật lên phiên bản cuối cùng của các quy tắc để thêm giá trị cho biến môi trường). - Michele
Chúng tôi sẽ thêm đường dẫn ở đâu trong .profile? - Vineet Kaushik
Tôi vẫn không biết nên thêm phần đường dẫn của mình vào đâu. Tôi cần thêm SDK Android vào đường dẫn của mình ... PATH="$HOME/bin:$PATH" Vì vậy, tôi thêm nó vào nó? - Jamie Hutber


Chỉnh sửa .bashrc trong thư mục chính của bạn và thêm dòng sau:

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

Bạn sẽ cần tìm nguồn .bashrc hoặc đăng xuất / đăng nhập (hoặc khởi động lại thiết bị đầu cuối) để các thay đổi có hiệu lực. Để nguồn của bạn .bashrc, chỉ cần gõ

$ source ~/.bashrc

256
2017-07-22 20:45



Làm thế nào để bạn "nguồn của bạn .bashrc"Làm thế nào để bạn" khởi động lại thiết bị đầu cuối "? - isomorphismes
Trong bash nó chỉ đơn giản là '. .bashrc ' - Ophidian
Tôi đã giả định rằng bạn đang ở trong thư mục chính của bạn. vì đó là nơi .bashrc bạn muốn chỉnh sửa. - Ophidian
.bashrc không phải là nơi thích hợp để thiết lập các biến môi trường. Họ nên đi vào .profile hoặc là .pam_environment. Xem mywiki.wooledge.org/DotFiles - geirha
@Lão Tử . .bashrc không phải .bashrc :) hoặc là source .bashrc cho vẫn đề đó - Znarkus


Nơi được đề xuất để xác định vĩnh viễn, toàn hệ thống các biến môi trường áp dụng cho tất cả người dùng là:

/etc/environment

(là nơi mặc định PATH được định nghĩa)

Điều này sẽ hoạt động trên máy tính để bàn hoặc bàn điều khiển, gnome-terminal hoặc TTY, mưa hoặc nắng;)

  • Để chỉnh sửa, nhấn Alt+F2 và gõ:

    gksudo gedit /etc/environment
    

    (hoặc mở tệp bằng sudo trong trình soạn thảo văn bản yêu thích của bạn)

Để thực hiện thay đổi, hãy chạy . /etc/environment. Vì tệp này chỉ là một tập lệnh đơn giản, nó sẽ chạy và gán đường dẫn mới cho PATH biến môi trường. Để kiểm tra env chạy và xem PATH giá trị trong danh sách.

Liên quan:


101
2017-07-31 03:49



và sau đó bạn cần khởi động lại để các thay đổi có hiệu lực ... - Lee
Đây chính xác là những gì tôi cần. Cung cấp một hình ảnh vm vứt qua lang thang và cần thêm nút và npm vào đường dẫn. - Austin Pray
Để thực hiện thay đổi khi chạy có hiệu lực. / etc / environement (có, dấu chấm, dấu cách và / etc / môi trường). Vì tệp này chỉ là một tập lệnh đơn giản, nó sẽ chạy và gán đường dẫn mới cho biến môi trường PATH. Để kiểm tra env chạy và xem giá trị PATH trong danh sách. - WindRider
Tôi cần chạy source /etc/environment tải lại các thay đổi - JohnnyAW


Tôi nghĩ cách kinh điển trong Ubuntu là:

  • tạo một tệp mới trong /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • thêm vào đó:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • và cho phép thực thi nó

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    

54
2018-01-09 01:31



Nó thường an toàn hơn để thêm đường dẫn tùy chỉnh của bạn vào cuối PATH thay vì bắt đầu. Điều này tránh vô tình thay thế các lệnh hệ thống bằng các chương trình của bạn (hoặc các chương trình độc hại của người khác). Điều này cũng tránh được nhiều nhầm lẫn khi ai đó làm việc trên hệ thống của bạn (hoặc cung cấp cho bạn lời khuyên) và họ nhận được kết quả không mong muốn từ các lệnh bạn đã "thay thế". - Joe


Đối với những người mới hoàn thành (như tôi), những người cảm thấy thoải mái hơn với GUI:

  1. Mở của bạn $HOME thư mục.
  2. Đi đến Lượt xem → Hiển thị cac file bị ẩn hoặc nhấn Ctrl + H.
  3. Nhấp chuột phải vào .profile và nhấp vào Mở bằng trình chỉnh sửa văn bản.
  4. Cuộn xuống dưới cùng và thêm PATH="$PATH:/my/path/foo".
  5. Tiết kiệm.
  6. Đăng xuất và đăng nhập lại để áp dụng thay đổi (hãy để Ubuntu tải thực sự .profile).

44
2017-10-24 22:05



Bạn không thể chỉnh sửa tệp .profile nữa.Bạn vẫn có thể sử dụng phương pháp này để chỉnh sửa tệp .pam_environment xem: help.ubuntu.com/community/EnvironmentVariables - PulsarBlow
Cảm ơn @PulsarBlow! Tôi không thực sự chắc chắn những gì chính xác sự khác biệt và lợi ích mặc dù ... Đây là URL trực tiếp đến phần có liên quan: help.ubuntu.com/community/… - dain
Câu trả lời này khiến hệ thống của tôi ngừng đăng nhập do tất cả các đường dẫn bị ghi đè. Sử dụng Ubuntu 16.04. - Frisbetarian
@ Frikbetarian bạn phải chắc chắn để thêm $PATH: bit bao gồm định nghĩa PATH hiện có - dain
@dain: bình luận của bạn đã cứu mạng tôi! - Py-ser


Đối với các biến môi trường liên tục chỉ dành cho người dùng cụ thể. Tôi rất khuyên bạn nên dùng tài liệu chính thức của Ubuntu.

https://help.ubuntu.com/community/EnvironmentVariables

Đề cập đến tài liệu ở trên, tôi đã thiết lập Công cụ đường dẫn SDK Android bởi:

  1. đang tạo ~/.pam_environment tập tin trong thư mục chính.
  2. nội dung trong đó là PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.
  3. có thể thêm đường dẫn người dùng tùy chỉnh bổ sung bằng cách tách đường dẫn với dấu hai chấm (:).
  4. điều này đòi hỏi đăng nhập lại, có nghĩa là bạn cần phải đăng xuất và đăng nhập trở lại môi trường máy tính để bàn.

40
2017-12-08 23:07



Đây là câu trả lời hay nhất. - Paulo Coghi


Đặt dòng đó vào ~/.bashrc tập tin.

Nó có nguồn gốc bất cứ khi nào bạn mở một thiết bị đầu cuối

CHỈNH SỬA: Dựa trên các nhận xét bên dưới, để có cài đặt chung chung hơn sẽ áp dụng cho tất cả các trình bao (kể cả khi bạn nhấn Alt- -F2 trong Unity), thêm dòng vào ~/.profile tập tin. Có lẽ không nên thực hiện cả hai tuy nhiên, vì đường dẫn sẽ được thêm hai lần vào PATH môi trường nếu bạn mở một thiết bị đầu cuối.


25
2017-07-31 01:08



Trên thực tế, tôi nghĩ bạn thiết lập đường dẫn $HOME/.profile cho cài đặt cá nhân hoặc /etc/profile Cho tất cả người dùng. Nhưng nếu nó chỉ cần thiết cho bash, tôi giả sử hoặc là sẽ làm việc. - Marty Fried
Nếu bạn đặt nó vào ~/.bashrc, nó sẽ chỉ có sẵn trong các thiết bị đầu cuối bạn mở. Ví dụ. nếu bạn nhấn Alt + F2 và cố gắng chạy một lệnh từ thư mục đó, nó sẽ không tìm thấy nó. Nếu bạn đặt nó vào ~/.profile hoặc là ~/.pam_environment, phiên gnome (hoặc bất kỳ DE nào bạn sử dụng) sẽ kế thừa nó. Đang thêm PATH vào ~/.bashrc cũng có nhược điểm là nếu bạn mở / exec bash tương tác từ một bash tương tác khác, nó sẽ được nối thêm nhiều lần. - geirha
Tôi đã không thực sự nhìn vào điều này một thời gian, vì vậy tôi đã làm một tìm kiếm, và có vẻ như có ít nhất 95 cách khác nhau để thiết lập đường dẫn, hầu hết trong số đó được thảo luận đây. Tôi chưa bao giờ tìm ra cái nào là tốt nhất. Tôi nghĩ ~/.profile là đúng cho đường dẫn cá nhân, mặc dù; đó là nơi Ubuntu thêm ~/bin danh mục. Và tôi thú nhận rằng tôi đã phóng đại một chút về số lượng - chỉ một chút thôi. - Marty Fried
@MartyFried, vâng, để báo giá bot trong #bash trên freenode: «Phần lớn các tập lệnh bash, mã, hướng dẫn và hướng dẫn trên Internet đều là crap. Sturgeon là một người lạc quan. »Sử dụng google cho vấn đề bash, bạn thường sẽ tìm thấy rất nhiều giải pháp làm việc nửa trước khi bạn tìm thấy một tốt nhất. Oh và tôi sẽ đi với ~/.profile trong trường hợp này quá. - geirha
@geirha - Tôi đồng ý rằng hầu hết các hướng dẫn trên Internet nói chung có lẽ là crap, đặc biệt là bất cứ điều gì linux kể từ distro khác nhau, hoặc thậm chí các phiên bản khác nhau của cùng một, làm những việc khác nhau. Nó thường nắm bắt những gì có hiệu quả, nhưng hầu hết mọi người không nhận ra rằng những gì làm việc chỉ đơn giản là những gì làm việc, không nhất thiết những gì đúng hay thậm chí những gì sẽ luôn luôn làm việc. Tôi cố gắng tìm ra cách nào trong số nhiều cách thực sự chính xác, bởi vì tôi ghét làm nhiều thứ hơn một lần - nhưng không phải lúc nào cũng dễ dàng. :) - Marty Fried