Làm cách nào để đặt $ PATH vĩnh viễn trên Linux / Unix?


879

Tôi đang cố gắng thêm một thư mục vào đường dẫn của mình để nó sẽ luôn ở trong đường dẫn Linux của tôi. Tôi đã thử:

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

Điều này hoạt động, tuy nhiên mỗi lần tôi thoát khỏi thiết bị đầu cuối và bắt đầu một phiên bản thiết bị đầu cuối mới, đường dẫn này bị mất và tôi cần chạy lại lệnh xuất.

Làm thế nào tôi có thể làm điều đó để điều này sẽ được thiết lập vĩnh viễn?

Câu trả lời:


230

Có nhiều cách để làm điều đó. Các giải pháp thực tế phụ thuộc vào mục đích.

Các giá trị biến thường được lưu trữ trong danh sách các bài tập hoặc tập lệnh shell được chạy khi bắt đầu hệ thống hoặc phiên người dùng. Trong trường hợp tập lệnh shell, bạn phải sử dụng một cú pháp shell exporthoặc setcác lệnh cụ thể .

Hệ thống rộng

  1. /etc/environmentDanh sách các bài tập duy nhất, cho phép tài liệu tham khảo. Hoàn thiện để thêm thư mục system-wide như /usr/local/something/binđể PATHbiến hoặc xác định JAVA_HOME. Được sử dụng bởi PAM và SystemD.
  2. /etc/environment.d/*.confDanh sách các bài tập duy nhất, cho phép tài liệu tham khảo. Hoàn thiện để thêm thư mục system-wide như /usr/local/something/binđể PATHbiến hoặc xác định JAVA_HOME. Cấu hình có thể được chia thành nhiều tệp, thường là một tệp cho mỗi công cụ (Java, Go, NodeJS). Được sử dụng bởi SystemD mà theo thiết kế không chuyển các giá trị đó cho các vỏ đăng nhập của người dùng.
  3. /etc/xprofileKịch bản Shell được thực thi trong khi bắt đầu phiên X Window System. Điều này được chạy cho mọi người dùng đăng nhập vào X Window System. Đó là một lựa chọn tốt cho PATHcác mục có giá trị cho mọi người dùng thích /usr/local/something/bin. Tệp được bao gồm bởi tập lệnh khác, vì vậy hãy sử dụng cú pháp shell POSIX chứ không phải cú pháp của trình bao người dùng của bạn.
  4. /etc/profile/etc/profile.d/*kịch bản Shell. Đây là một lựa chọn tốt cho các hệ thống chỉ vỏ. Những tập tin này chỉ được đọc bởi shell trong chế độ đăng nhập.
  5. /etc/<shell>.<shell>rc. Kịch bản vỏ. Đây là một lựa chọn kém vì nó là vỏ đơn cụ thể. Được sử dụng trong chế độ không đăng nhập.

Phiên người dùng

  1. ~/.pam_environment. Danh sách các bài tập duy nhất, không cho phép tài liệu tham khảo. Được tải bởi PAM vào đầu mỗi phiên người dùng không liên quan nếu đó là phiên hoặc hệ thống X Window System. Bạn không thể tham chiếu các biến khác bao gồm HOMEhoặc PATHdo đó nó có hạn sử dụng. Được sử dụng bởi PAM.
  2. ~/.xprofileKịch bản vỏ. Điều này được thực thi khi người dùng đăng nhập vào hệ thống X Window System. Các biến được định nghĩa ở đây hiển thị cho mọi ứng dụng X. Sự lựa chọn hoàn hảo cho việc mở rộng PATHvới các giá trị như ~/binhoặc ~/go/binhoặc xác định người dùng cụ thể GOPATHhoặc NPM_HOME. Tệp được bao gồm bởi tập lệnh khác, vì vậy hãy sử dụng cú pháp shell POSIX chứ không phải cú pháp của vỏ người dùng của bạn. Trình soạn thảo văn bản đồ họa hoặc IDE của bạn bắt đầu bằng phím tắt sẽ thấy các giá trị đó.
  3. ~/.profile, ~/.<shell>_profile, ~/.<shell>_loginShell script. Nó sẽ chỉ hiển thị cho các chương trình bắt đầu từ trình mô phỏng đầu cuối hoặc đầu cuối. Nó là một lựa chọn tốt cho các hệ thống chỉ vỏ. Được sử dụng bởi shell trong chế độ đăng nhập.
  4. ~/.<shell>rc. Kịch bản vỏ. Đây là một lựa chọn kém vì nó là vỏ đơn cụ thể. Được sử dụng bởi shell trong chế độ không đăng nhập.

Ghi chú

Gnome trên Wayland bắt đầu trình đăng nhập người dùng để lấy môi trường. Nó có hiệu quả sử dụng cấu hình vỏ đăng nhập ~/.profile, ~/.<shell>_profile, ~/.<shell>_logintập tin.

Hướng dẫn sử dụng

  • Môi trường
  • môi trường.d
  • bash
  • dấu gạch ngang

Phân phối tài liệu cụ thể

Liên quan

Sự khác biệt giữa Shell đăng nhập và Shell không đăng nhập?


4
Cảm ơn bạn đã trả lời chi tiết, điều này nên được cao hơn. Có lẽ .bash_profilenên được thêm vào danh sách là tốt?
James Ko

2
@JamesKo đó là số 4
trve.fa7ad

1
Tôi nghĩ rằng câu trả lời tốt nhất được đề xuất /etc/environment. Nhưng tôi có thể làm mới nó mà không cần đăng xuất và đăng nhập không? Đôi khi tôi không sử dụng bash hoặc sh nên source /etc/environmentkhông hoạt động.
banan3'14

2
Tuyệt vời và theo tôi câu trả lời đầy đủ nhất. Nên cao hơn nhiều.
Peter Gloor

2
Lý do của tôi để tìm kiếm chủ đề này thực sự là Go. Vui mừng khi thấy tôi không phải là người duy nhất nhận ra rằng .bashrc không phải là nơi thích hợp. ;)
Peter Gloor

1039

Bạn cần thêm nó vào ~/.profilehoặc ~/.bashrctập tin của bạn . 

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

Tùy thuộc vào những gì bạn đang làm, bạn cũng có thể muốn liên kết tượng trưng đến nhị phân:

cd /usr/bin
sudo ln -s /path/to/binary binary-name

Lưu ý rằng điều này sẽ không tự động cập nhật đường dẫn của bạn cho phần còn lại của phiên. Để làm điều này, bạn nên chạy:

source ~/.profile 
or
source ~/.bashrc

11
Một vài câu hỏi. 1) Không nên có một dấu hai chấm giữa $PATH/usr/bin. 2) /usr/binThậm chí nên ở đó. 3) Bạn có nên sử dụng /usr/local/binkhông?
Batandwa

197
Xin lưu ý : nó thường được coi là một lỗ hổng bảo mật để lại dấu hai chấm ở cuối bash PATH của bạn bởi vì nó làm cho bash trông trong thư mục hiện tại nếu nó không thể tìm thấy tệp thực thi mà nó đang tìm kiếm. Người dùng tìm thấy bài đăng này đang tìm kiếm thêm thông tin nên được thông báo về điều này.
erewok

51
@AdamRobertson Không an toàn - hãy xem xét kịch bản khi bạn giải nén tarball, sau đó cdđến thư mục bạn giải nén nó, sau đó chạy ls--- và sau đó nhận ra rằng tarball có một chương trình độc hại được gọi lstrong đó.
Lily Chung

21
Đối với tôi đó là .bash_profile, không phải .profile. Có vẻ như điều này là khác nhau cho tất cả mọi người.
donquixote

9
Tôi nghĩ rằng tôi đã cải thiện đáng kể chất lượng của câu trả lời này và giải quyết một số vấn đề mà những người dùng khác đưa ra. Mỗi đường dẫn xuất hoặc mỗi lệnh điều chỉnh đường dẫn phải luôn đảm bảo tách một đường dẫn hiện có bằng dấu hai chấm. Không nên sử dụng dấu hai chấm hoặc dấu đầu dòng và thư mục hiện tại không bao giờ nằm ​​trong đường dẫn.
Erick Robertson

243

Trong Ubuntu, chỉnh sửa /etc/environment. Mục đích duy nhất của nó là lưu trữ Biến môi trường. Ban đầu biến $ PATH được định nghĩa ở đây. Đây là một dán từ /etc/environmenttập tin của tôi :

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Vì vậy, bạn có thể chỉ cần mở tập tin này dưới dạng root và thêm bất cứ điều gì bạn muốn.

Để có kết quả ngay lập tức, hãy chạy (thử như người dùng root bình thường ):

source /etc/environment && export PATH

CẬP NHẬT:

Nếu bạn sử dụng zsh(còn gọi là Z Shell), hãy thêm dòng này ngay sau khi nhận xét trong /etc/zsh/zshenv:

source /etc/environment

Tôi đã gặp phải vấn đề nhỏ này trên Ubuntu 15.10, nhưng nếu zsh của bạn không nhận được đúng PATH , đây có thể là lý do


13
Không phải tất cả hệ thống đều có / etc / môi trường
user3439968

9
FWIW $PATHcũng được định nghĩa /etc/profiletrong Arch Linux.
Sparhawk

3
@ e-sushi Tôi thực sự bị sốc về điều đó. Tôi đang sử dụng Ubuntu 14.04.1. và tôi có thể hứa với bạn rằng tập tin đã được tích hợp sẵn.
trve.fa7ad

2
Sau khi thử mọi lời đề nghị dưới ánh mặt trời nhưng / etc / môi trường, và có tất cả chúng KHÔNG hoạt động, cuối cùng tôi cũng tình cờ thấy điều này. Tôi cũng đang dùng Ubuntu 14.04 và đây là người duy nhất thực sự thay đổi biến PATH sau khi khởi động lại.
Chockomonkey

4
Người dùng nên khởi động lại PC sau khi cập nhật tệp môi trường.
Harish_N

70

Đặt exporttờ khai vào ~/.bashrc. .Bashrc của tôi chứa điều này:

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH

7
cần khởi động lại?
Nhấp vào Upvote

2
Hoạt động khi tôi đặt cái này vào .profile', không tìm thấy.bashrc
Nhấp vào Upvote

Nó có thể phụ thuộc vào hệ thống chính xác; Tôi không chắc chắn chính xác những điều kiện xác định tập tin nào được thực thi. Vui mừng vấn đề đã được giải quyết, mặc dù.
Fraxtil

12
@Click Upvote Bạn cần làm source ~/.bashrcđể tải lại .bashrccấu hình. Sau đó, nó sẽ hoạt động
BigSack

4
Các exporttừ khóa được chỉ cần thiết nếu PATHchưa được gắn cờ là một biến môi trường - mà nó gần như vô điều kiện sẽ được. Đơn giản là PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATHsẽ có tác dụng tương tự.
Charles Duffy

30

Bạn có thể đặt $PATHvĩnh viễn theo 2 cách.

  1. Để đặt đường dẫn cho người dùng cụ thể: Bạn có thể cần phải thực hiện mục trong .bash_profilethư mục chính trong người dùng.

    ví dụ trong trường hợp của tôi, tôi sẽ đặt đường dẫn java trong hồ sơ người dùng tomcat

    [tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
  2. Để đặt đường dẫn chung cho TẤT CẢ người dùng hệ thống, bạn có thể cần đặt đường dẫn như sau:

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile

3
Là tập tin có tên trên /etc/profilesmột sbản phân phối của bạn? Của tôi không có s. Tôi nghĩ rằng bạn có một lỗi đánh máy.
Chris Johnson

3
Bạn có thể muốn thoát $ bạn đang ghi vào tệp hồ sơ. ví dụ: echo "export PATH = \ $ PATH: / path / to / dir" >> / etc / profile, theo cách đó bạn thực sự nối vào biến khi tập lệnh đó chạy thay vì đặt nó thành giá trị bằng chữ thời gian thực hiện lệnh ban đầu này.
BuvinJ

15

Bạn có thể sử dụng trên Centos hoặc RHEL cho người dùng cục bộ:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

Điều này thêm thư mục hiện tại (hoặc bạn có thể sử dụng thư mục khác) vào PATH, điều này làm cho nó vĩnh viễn nhưng có hiệu lực ở lần đăng nhập người dùng tiếp theo.

Nếu bạn không muốn đăng nhập lại, thì có thể sử dụng:

source ~/.bash_profile

Điều đó tải lại # User specific environment and startup programsnhận xét này có mặt trong.bash_profile


12

Bạn cũng có thể đặt vĩnh viễn, chỉnh sửa một trong các tệp sau:

/etc/profile (Cho tất cả người dùng)

~/.bash_profile (đối với người dùng hiện tại)

~/.bash_login (đối với người dùng hiện tại)

~/.profile (đối với người dùng hiện tại)

Bạn cũng có thể sử dụng /etc/environmentđể đặt biến môi trường PATH vĩnh viễn, nhưng nó không hỗ trợ mở rộng biến .

Trích xuất từ: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html


7

Tôi tình cờ gặp câu hỏi này ngày hôm qua khi tìm cách thêm thư mục chứa tập lệnh của riêng tôi vào PATH - và rất ngạc nhiên khi biết rằng ~/.profiletệp của riêng tôi (trên Linux Mint 18.1) đã chứa tệp này:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Vì vậy, tất cả những gì tôi phải làm là tạo thư mục ~/binvà đặt các tập lệnh của tôi ở đó.


7

Tôi nghĩ rằng cách thanh lịch nhất là:

1.add this in ~ / .bashrc file Chạy lệnh này

gedit ~ / .bashrc

thêm đường dẫn của bạn vào bên trong nó

xuất PATH = $ PATH: / opt / nút / bin

2. nguồn ~ / .bashrc

(Ubuntu)


6

Bạn có thể thêm dòng đó vào tệp cấu hình bảng điều khiển của mình (ví dụ: .bashrc) hoặc .profile


2
Tôi không có tệp nào trong số đó/home/(username)
Nhấp vào Upvote

3
@ClickUpvote: Bạn dùng vỏ gì? (Và các tệp bắt đầu bằng dấu chấm bị ẩn, bạn cần một cái gì đó ls -ađể xem chúng.)
David Schwartz

Trong trường hợp bạn không có bất kỳ tệp nào trong số đó (bashrc hoặc hồ sơ), bạn có thể tự tạo chúng và chúng sẽ tự động được sử dụng
trve.fa7ad

4

Thêm vĩnh viễn biến PATH

Toàn cầu:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

Địa phương (chỉ dành cho người dùng):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

Để khởi động lại toàn cầu . Đối với relogin địa phương .

Thí dụ

Trước:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

Sau:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Ngoài ra, bạn chỉ có thể chỉnh sửa hồ sơ:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Một cách khác (cảm ơn gniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

Bạn không nên sử dụng dấu ngoặc kép ở đây! echo 'export PATH = $ PATH: / new / path / biến' ... Và nhân tiện, từ khóa xuất khẩu rất có thể vô dụng vì biến PATH rất có thể đã được đánh dấu là đã xuất. - gniourf_gniourf


1
Không. Bạn không nên sử dụng dấu ngoặc kép ở đây! echo 'export PATH=$PATH:/new/path/variable'... Và nhân tiện, exporttừ khóa rất có thể vô dụng vì PATHbiến rất có thể đã được đánh dấu là đã xuất.
gniourf_gniourf

Không, bạn nên sử dụng dấu ngoặc kép vì $ PATH trong dấu ngoặc đơn không được nội suy. Và xuất khẩu BTW cũng hữu ích.
dùng3439968

Tôi hiểu rồi. Bạn có thể sử dụng dấu ngoặc kép hoặc sử dụng dấu ngoặc đơn, vì $ PATH được nội suy khi tiếng vang được thực thi hoặc nội suy khi / etc / profile thực thi.
dùng3439968

1
@ user3439968 thực sự, Dấu ngoặc kép sẽ gây ra nhiều vấn đề nếu bạn thêm vào $ PATH từ nhiều tệp. Hãy xem xét: khi bạn sử dụng dấu ngoặc kép, $ PATH được dịch sang một chuỗi tĩnh với tất cả các thư mục PATH được xác định trước đó. nói rằng bạn nối /usr/localnó với nó bằng cách sử dụng ~/.bashrc. bây giờ nếu bạn có ý định nối /opt/binvào cùng một biến bằng cách sử dụng /etc/bash.bashrc; $ PATH sẽ dịch sang cùng một chuỗi tĩnh, do đó, $ PATH sẽ được thay thế thay vì được thêm vào ... Đây sẽ là vấn đề ưu tiên của hệ thống đối với một tệp so với tệp khác
trve.fa7ad

4

1.modify tập tin "/ etc / profile".

#vi /etc/profile

Nhấn phím "i" để vào trạng thái chỉnh sửa và di chuyển con trỏ đến cuối tập tin, Các mục nhập bổ sung

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

Nhấn phím "Esc" thoát trạng thái chỉnh sửa, ': wq' lưu tệp.

2.Hãy cấu hình hiệu quả

source /etc/profile

Giải thích tệp hồ sơ làm việc cho tất cả người dùng, nếu bạn muốn chỉ hợp lệ cho người dùng đang hoạt động, hãy đặt tệp ".bashrc"


4

Sau rất nhiều nghiên cứu, tôi đã tìm thấy một giải pháp đơn giản cho việc này (tôi đang sử dụng HĐH sơ cấp ), lấy cảm hứng từ liên kết sau .

Chạy lệnh sau để mở tệp .bashrc trong chế độ chỉnh sửa . [Bạn cũng có thể sử dụng vi hoặc bất kỳ trình soạn thảo nào khác].

~$ sudo nano ~/.bashrc

Thêm dòng sau vào cuối tập tin và lưu lại.

export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"

Ví dụ :

export PATH="/home/rageshl/dev/flutter/bin:$PATH"

nhập mô tả hình ảnh ở đây

Tôi tin rằng đây là giải pháp lâu dài để thiết lập đường dẫn trong rung trong phân phối Ubuntu

Hy vọng điều này sẽ hữu ích.


3

các tệp nơi bạn thêm lệnh xuất tùy thuộc vào chế độ đăng nhập hay chế độ không đăng nhập.

nếu bạn đang ở chế độ đăng nhập, các tệp bạn đang tìm kiếm là / etc / bash hoặc /etc/bash.bashrc

nếu bạn ở chế độ không đăng nhập, bạn đang tìm tệp /.profile hoặc tìm các tệp trong thư mục /.profiles.d

các tập tin được đề cập ở trên nếu các biến hệ thống ở đâu.


3

Thêm vào /etc/profile.dtập lệnh thư mục [name_of_script].shvới dòng : export PATH=$PATH:/dir. Mỗi tập lệnh trong /etc/profile.dthư mục được tự động thực hiện bằng cách /etc/profileđăng nhập.


Đó là cách được đề xuất về cách tùy chỉnh môi trường của bạn
Yuriy

1
Điều này chỉ khi bạn muốn các cài đặt trên toàn hệ thống, có lẽ không phải là trường hợp sử dụng phổ biến nhất. Hầu hết mọi người muốn (hoặc nên muốn) đường dẫn được đặt cục bộ, bởi vì hầu hết người dùng / vai trò đang thực hiện các hoạt động khác nhau theo ngữ cảnh và bạn càng thực hiện ít giả định thì càng tốt.
bắt đầu từ

@mpowered, yeah, cái này chỉ dành cho toàn hệ thống. Nếu bạn muốn thay đổi cục bộ PATH, bạn nên thêm cùng một bản xuất trong ~ / .profile hoặc ~ / .bashrc. Ở đây bạn nên xem xét các shell đăng nhập đọc ~ / .profile và các shell tương tác đọc ~ / .bashrc. Điều này rất quan trọng vì ví dụ ssh không thực hiện đăng nhập, do đó ~ / .profile sẽ không được đọc. Một số phân biệt như nguồn suse ~ / .bashrc trong / etc / profile. Nhưng nó không phổ biến cho tất cả các linux '
Yuriy

3

Zues77 có ý tưởng đúng. OP đã không nói "làm thế nào tôi có thể hack theo cách này". OP muốn biết làm thế nào để thêm vĩnh viễn vào $ PATH:

sudo nano /etc/profile

Đây là nơi nó được đặt cho mọi thứ và là nơi tốt nhất để thay đổi nó cho tất cả những thứ cần $ PATH


3

Câu trả lời của tôi liên quan đến việc thiết lập go-langbật. Ubuntu linux/amd64Tôi đã gặp phải rắc rối tương tự khi thiết lập đường dẫn của các biến môi trường ( GOPATHGOBIN), mất nó khi thoát khỏi thiết bị đầu cuối và xây dựng lại bằng cách sử dụng source <file_name>mọi lúc. Lỗi là đặt đường dẫn ( GOPATHGOBIN) trong ~/.bash_profilethư mục. Sau khi lãng phí một vài giờ tốt, tôi thấy rằng giải pháp là đưa GOPATHGOBINvào ~/.bash_rchồ sơ theo cách:

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

và làm như vậy, cài đặt go hoạt động tốt và không có tổn thất đường dẫn.

EDIT 1: Lý do mà vấn đề này có thể liên quan là các cài đặt cho các shell không đăng nhập như thiết bị đầu cuối Ubuntu của bạn hoặc thiết bị đầu cuối gnome nơi chúng tôi chạy mã đi được lấy từ ~./bash_rctệp và cài đặt cho vỏ đăng nhập được lấy từ ~/.bash_profiletệp và từ ~/.profiletập tin nếu ~/.bash_profiletập tin là không thể truy cập.


3

Giả sử bạn đang chạy MacOS và bạn có một tệp nhị phân mà bạn tin tưởng và muốn cung cấp trên toàn hệ thống của mình nhưng không nhất thiết muốn thư mục chứa nhị phân được thêm vào PATH của bạn, bạn có thể chọn sao chép / di chuyển hệ nhị phân /usr/local/bin, vốn đã có trong ĐƯỜNG của bạn. Điều này sẽ làm cho tệp nhị phân thực thi giống như bất kỳ nhị phân nào khác mà bạn có thể đã có quyền truy cập trong thiết bị đầu cuối của mình.


3

Nó có thể được thêm trực tiếp bằng cách sử dụng lệnh sau:

echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc

2
Câu hỏi được dán nhãn bash, vì vậy nó không hữu ích lắm.
Laurenz Albe

2
Đây là một câu trả lời hợp lệ -> tiêu đề chỉ đề cập đến Linux, vì vậy bash và CŨNG zsh sẽ làm ... nếu gắn thẻ duy nhất là "bash" chúng ta cần phải thêm "zsh" để các thẻ quá
Carlos Saltos

2

cách đơn giản tốt nhất là dòng sau:
PATH="<directory you want to include>:$PATH"
trong tệp .bashrc của bạn trong thư mục chính.
Nó sẽ không được thiết lập lại ngay cả khi bạn đóng thiết bị đầu cuối hoặc khởi động lại PC. Nó vĩnh viễn


1
@quant nếu bạn làm những gì được nói, nó sẽ thiết lập cài đặt của bạn vĩnh viễn. nó sẽ hoạt động ngay cả khi bạn đóng thiết bị đầu cuối.
Edward Torvalds

1

Tôi nghĩ rằng cách thanh lịch nhất là:

1. thêm cái này trong tập tin ~. / Bashrc

if [ -d "new-path" ]; then
  PATH=$PATH:new-path
fi

2. nguồn ~ / .bashrc

(Ubuntu)


Và để hiển thị đường dẫn sau ở trên: printf "% s \ n" $ PATH
Robot70

1

một cách để thêm đường dẫn vĩnh viễn, hoạt động cho tôi, là:

    cd /etc/profile.d
    touch custom.sh
    vi custom.sh 
    export PATH=$PATH:/path according to your setting/

khởi động lại máy tính của bạn và ở đây chúng tôi đi con đường sẽ có cổ vũ vĩnh viễn.


Bạn thực sự không cần phải khởi động lại máy tính của bạn. Đăng xuất và đăng nhập lại là đủ. Đây là một giải pháp khá thanh lịch vì nó rất dễ dàng sao lưu mọi thay đổi mà không cần chỉnh sửa tệp. Bạn cũng dễ dàng chỉ định một câu lệnh if để nếu một thư mục không tồn tại trên hệ thống, nó không được thêm vào biến PATH.
Warwick

0

Để phân phối debian, bạn phải:

    - edit ~/.bashrc  e.g: vim ~/.bashrc 
    - add export PATH=$PATH:/path/to/dir
    - then restart your computer. Be aware that if you edit ~/.bashrc  as root, your environment variable you added will work only for root

0

Đây là một lót . Nó thêm một dòng vào .bashrc. Dòng Tha sẽ kiểm tra xem thư mục đã được thêm vào đường dẫn chưa và nối thêm nếu không. Điều này sẽ ngăn việc sao chép thư mục của bạn trong đường dẫn mỗi khi bạn lấy nguồn .bashrc.

echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc

source ~/.bashrc
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.