it-swarm-vi.com

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

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 terminal và bắt đầu một thể hiện terminal 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?

700
Click Upvote

Bạn cần thêm nó vào tệp ~/.profile hoặc ~/.bashrc 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ới 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
884
mpowered

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ừ tệp /etc/environment 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 bình thường root):

source /etc/environment && export PATH

CẬP NHẬT :

Nếu bạn sử dụng zsh (a.k.a Z Shell), hãy thêm dòng này ngay sau các 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 chính xác PATH, đây có thể là lý do

234
trve.fa7ad

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 phiên hệ thống hoặc người dùng. Trong trường hợp tập lệnh Shell, bạn phải sử dụng cú pháp Shell cụ thể.

Hệ thống rộng

  1. /etc/environment Danh sách các bài tập duy nhất. Hoàn hảo để thêm các thư mục toàn hệ thống như /usr/local/something/bin vào biến PATH hoặc xác định Java_HOME.
  2. /etc/xprofile Tập lệnh 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 các mục PATH hợp lệ cho mọi người dùng như /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 POSIX Shell chứ không phải cú pháp của Shell người dùng của bạn.
  3. /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ỉ Shell. Những tập tin này chỉ được đọc bởi shell.
  4. /etc/<Shell>.<Shell>rc. Kịch bản vỏ. Đây là một lựa chọn kém vì nó là Shell cụ thể.

Phiên người dùng

  1. ~/.pam_environment. Danh sách các bài tập duy nhất. Đượ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 X Window System hoặc Shell. Bạn không thể tham chiếu biến khác bao gồm HOME hoặc PATH để nó có hạn sử dụng.
  2. ~/.xprofile Kịch bản shell. Đ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. Lựa chọn hoàn hảo để mở rộng PATH với các giá trị như ~/bin hoặc ~/go/bin hoặc xác định cụ thể người dùng GOPATH hoặ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 POSIX Shell chứ không phải cú pháp của Shell người dùng của bạn. Trình chỉnh sửa văn bản đồ họa của bạn hoặc IDE được bắt đầu bằng phím tắt sẽ thấy các giá trị đó.
  3. ~/.profile Kịch bản shell. 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ỉ Shell.
  4. ~/.<Shell>rc. Kịch bản vỏ. Đây là một lựa chọn kém vì nó là Shell cụ thể.

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

132
Grzegorz Żur

Đặt khai báo export trong ~/.bashrc. .Bashrc của tôi chứa điều này:

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

Bạn có thể đặt $PATH vĩ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 thực hiện mục nhập trong .bash_profile trong thư 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
    
29
Mohit M

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 programs bình luận này có trong .bash_profile

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

6
aqua

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

1. thêm cái này trong tệp ~/.bashrc 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
Himanshu sharma

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 (cho người dùng hiện tại)

~/.bash_login (cho người dùng hiện tại)

~/.profile (cho 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

6
Delucaramos

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 tệp ~/.profile của riêng tôi (trên Linux Mint 18.1) đã chứa điều 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 ~/bin và đặt các tập lệnh của tôi ở đó.

5
RobertG

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
Dikinha

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
Joe D

Câu trả lời của tôi liên quan đến việc thiết lập go-lang trên Ubuntu linux/AMD64. Tôi đã gặp phải rắc rối tương tự khi đặt đườ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 nó bằng cách sử dụng source <file_name> mỗi lần. là đặt đường dẫn (GOPATHGOBIN) vào thư mục ~/.bash_profile. Sau khi lãng phí một vài giờ tốt, tôi thấy rằng giải pháp là đặt GOPATHGOBIN trong tệp ~/.bash_rc 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 vỏ không đăng nhập như thiết bị đầu cuối Ubuntu hoặc gnome-terminal nơi chúng tôi chạy mã đi được lấy từ tệp ~./bash_rc và các cài đặt cho vỏ đăng nhập được thực hiện từ tệp ~/.bash_profile và từ tệp ~/.profile nếu tệp ~/.bash_profile không thể truy cập được. 

3
Abhiroj Panwar

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

2
Iurii

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

Cho toàn cầu khởi động lại. Cho cục bộ relogin.

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

Hoặc 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! tiếng vang 'xuất PATH = $ PATH:/new/path/biến '... Và nhân tiện, từ khóa xuất rất có khả năng vô dụng vì biến PATH rất có thể đã xảy ra đánh dấu là xuất khẩu. - gniourf_gniourf

2
user3439968

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

1. thêm cái này trong ~./Bashrc file

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

2. nguồn ~/.bashrc

(Ubuntu)

1
Gimcuan Hui

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
Edward Torvalds

Để 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
onlyme

một cách để thêm đường dẫn vĩnh viễn, hoạt động với tôi, là: cd /etc/profile.d chạm tùy chỉnh.sh vi tùy chỉnh.sh xuất PATH = $ PATH:/đường dẫn theo cài đặt của bạn / khởi động lại máy tính của bạn và ở đây chúng tôi sẽ chuyển đường dẫn đến đó vĩnh viễn chúc mừng.

0
user6393373

Cài đặt nhanh bằng cách sử dụng Homebrew

kiểm tra cái này video

hoặc là

các bước dưới đây

Step 1:

Mở https://brew.sh/

enter image description here

Sao chép URL hiển thị trong ảnh chụp màn hình

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Dán đã sao chép URL trong thiết bị đầu cuối và nhấn phím return/enter

Khi bạn đã thực hiện với Cài đặt homebrew theo dõi Bước 2:

Step 2: Tải xuống terraform từ https://www.terraform.io/doads.html

giải nén đã tải xuống Tệp zip terraform

Bây giờ bạn sẽ có một tên tệp terraform trên thư mục đã tải xuống

Chẳng hạn

/Users/username/downloads/terraform

Step 3:

Mở một terminal

cd: thay đổi thư mục thành /Users/username/downloads/terraform

Step 4:

chạy brew install terraform trong thiết bị đầu cuối

0
Munish Kapoor

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 nhị phân thành /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.

0
Leo

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, 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 về tệp hồ sơ hoạt động 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"

0
Jia