.profile hoặc .bash_profile


14

Tôi bối rối, tôi phải đặt biến môi trường ở đâu?

Trong .profile hoặc .bash_profile?

Tôi đang sử dụng cả mac osx và ubfox.

Bối rối về cái mà tôi sử dụng ở đây.

Câu trả lời:


21

đọc http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files :

 When Bash is invoked as an interactive login shell, or as a 
 non-interactive shell with the --login option, it first reads 
 and executes commands from the file /etc/profile, if that file
 exists. After reading that file, it looks for ~/.bash_profile, 
 ~/.bash_login, and ~/.profile, in that order, and reads and executes
 commands from the first one that exists and is readable. The 
 --noprofile option may be used when the shell is started to inhibit
 this behavior.

các shell khác cũng tải ~/.profile(zsh, tcsh) .. vì vậy, tôi sẽ đặt các công cụ môi trường vào ~/.profile.

cập nhật liên quan đến mac osx (cảm ơn @Matt B) :

đối với các chương trình gui, hãy đọc http://developer.apple.com/l Library / mac / # qa / qa2001 / qa1067.html và chỉnh sửa ~/.MacOSX/environment.plistcẩn thận.


1
Ngoài ra, ~ / .profile được đọc trước khi trình quản lý cửa sổ của bạn bắt đầu, do đó, các biến môi trường mà bạn muốn xem bởi trình quản lý cửa sổ hoặc các ứng dụng mà nó khởi chạy nên được đặt trong ~ / .profile của bạn.
garyjohn

@ÿjohn: Đó là trường hợp của Ubuntu hay Mac OS?
zneak

@zneak: Tôi khá chắc chắn về Ubuntu, ít hơn về Mac OS X, nhưng hiện tại tôi không có quyền truy cập vào một trong hai để xác minh.
garyjohn

1
@zneak: Nhận xét của @ garyjohn không áp dụng cho Mac OS X. Để thay đổi các biến môi trường cho các chương trình GUI, bạn phải đặt cài đặt của mình vào ~/.MacOSX/environment.plist. Xem thêm thông tin tại đây: astro.washington.edu/users/rowen/AquaEnvVar.html .
Matt B.

4

Nếu bạn sử dụng bash, trong ~/.bash_profile. Nếu bạn sử dụng các vỏ khác, trong~/.profile

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.