Làm cách nào để thêm thư mục $PATH
vào Ubuntu và thay đổi vĩnh viễn?
Làm cách nào để thêm thư mục $PATH
vào Ubuntu và thay đổi vĩnh viễn?
Câu trả lời:
Một đường dẫn được đặt .bash_profile
sẽ chỉ được đặt trong shell đăng nhập bash ( bash -l
). Nếu bạn đặt đường dẫn của mình 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à thậm chí sự khôn ngoan 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 xem xét môi trường của nó trong /proc/[pid]/environ
(thay thế [pid] bằng số từ ps axf
). Ví dụ: sử dụnggrep -z "^PATH" /proc/[pid]/environ
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 .bash_login
tồn tại. Từ man bash
:
nó tìm ~ / .bash_profile, ~ / .bash_login và ~ / .profile, theo thứ tự đó, đọc và thực thi 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 .bashrc
về các vỏ không đăng nhập tương tác hoặc đặt giá trị toàn cầu cho tất cả người dùng bằng cách đặt tập lệnh vào /etc/profile.d/
hoặc sử dụng /etc/X11/Xsession.d/
để ảnh hưởng đến phiên của trình quản lý hiển thị.
PATH="$HOME/bin:$PATH"
Vậy tôi có thêm nó vào không?
Chỉnh sửa .bashrc
trong thư mục nhà của bạn và thêm dòng sau:
export PATH="/path/to/dir:$PATH"
Bạn sẽ cần 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
.bashrc
"? Làm thế nào để bạn "khởi động lại thiết bị đầu cuối"?
.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 .pam_environment
. Xem mywiki.wooledge.org/DotFiles
. .bashrc
không .bashrc
:) hoặc source .bashrc
cho vấn đề đó
Vị trí được đề xuất để xác định các biến môi trường toàn hệ thống , vĩnh viễn áp dụng cho tất cả người dùng là:
/etc/environment
(đó là nơi mặc định PATH
được xác định)
Điều này sẽ hoạt động trong 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+ F2và gõ:
gksudo gedit /etc/environment
(hoặc mở tệp bằng sudo
trình soạn thảo văn bản yêu thích của bạn)
Để thay đổi hiệu ứng, 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 chạy env và xem PATH
giá trị trong danh sách.
Liên quan:
source /etc/environment
để tải lại các thay đổi
Tôi nghĩ rằng cách thức kinh điển trong Ubuntu là:
tạo một tập tin mới dưới /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 nó thực thi
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Đối với những người mới hoàn toàn (như tôi), người thoải mái hơn với GUI:
$HOME
thư mục của bạn ..profile
và nhấp vào Open With Text Editor .PATH="$PATH:/my/path/foo"
..profile
).$PATH:
chút trong đó bao gồm các định nghĩa PATH hiện
Đối với các biến môi trường liên tục chỉ có sẵn cho người dùng cụ thể. Tôi đánh giá cao tài liệu chính thức của Ubuntu.
https://help.ubfox.com/community/En MôiVariables
Tham khảo tài liệu ở trên, tôi đã thiết lập các công cụ đường dẫn SDK Android của mình bằng cách:
~/.pam_environment
tập tin trong thư mục nhà.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.Đặt dòng đó trong ~/.bashrc
tập tin của bạn .
Nó có nguồn gốc bất cứ khi nào bạn mở một thiết bị đầu cuối
EDIT : Dựa trên các nhận xét bên dưới, để có cài đặt chung hơn sẽ áp dụng cho tất cả các shell (bao gồm cả khi bạn nhấn Alt- F2trong Unity), hãy thêm dòng vào ~/.profile
tệp của bạn . Có lẽ không nên làm cả hai, tuy nhiên, đường dẫn sẽ được thêm hai lần vào PATH
môi trường của bạn nếu bạn mở một thiết bị đầu cuối.
$HOME/.profile
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 cho bash, tôi cho rằng một trong hai sẽ hoạt động.
~/.bashrc
, nó sẽ chỉ khả dụng 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ó trong ~/.profile
hoặc ~/.pam_environment
, phiên gnome (hoặc bất kỳ DE nào bạn sử dụng) sẽ kế thừa nó. Việc thêm PATH vào ~/.bashrc
cũng có một nhược điểm là nếu bạn mở / thực hiện bash tương tác từ một vỏ bash tương tác khác, nó sẽ được nối thêm nhiều lần.
~/.profile
là chính xác cho con đường cá nhân, mặc dù; đó là nơi Ubuntu thêm ~/bin
thư mục. Và tôi thú nhận rằng tôi đã phóng đại một chút về số cách - chỉ một chút thôi.
~/.profile
trong trường hợp này.
Thêm nó vào .bashrc sẽ hoạt động nhưng tôi nghĩ cách thiết lập các biến đường dẫn truyền thống hơn của bạn là trong .bash_profile bằng cách thêm các dòng sau.
PATH=$PATH:/my/path/foo
export PATH
Theo chủ đề này, có vẻ như hành vi của Ubuntu hơi khác so với RedHat và nhân bản.
.bashrc
, hãy gắn nó vào .bashrc
thay thế. Thiết bị đầu cuối GUI trong Ubuntu không phải là vỏ đăng nhập, vì vậy .bash_profile
sẽ không được chạy.
.bash_profile
. Nếu bash không tìm thấy .bash_profile
(khi bạn đăng nhập tương tác), nó sẽ tìm .profile
và sử dụng nó thay thế. Theo mặc định, bạn sẽ có một .profile
và .bashrc
trong Ubuntu. Và .profile
là nơi chính xác để đặt các biến môi trường nếu chúng ta bỏ qua pam_env.
Bất cứ khi nào tôi "cài đặt" thư mục tập lệnh BASH của mình, tôi sẽ làm theo mẫu thử nghiệm cho một $HOME/bin
thư mục có trong hầu hết các tệp .profile trong các phiên bản gần đây của Ubuntu. Tôi đặt một bài kiểm tra giống như
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Nó hoạt động chỉ khoảng 100% thời gian và để tôi tự do thay đổi nó trong trình soạn thảo văn bản GUI bằng một "Thay thế tất cả" nhanh chóng nếu tôi quyết định chuyển đến /scripts
một nơi nào đó gần hơn với $HOME
thư mục của mình . Tôi đã không làm như vậy trong 6 lần cài đặt Ubuntu, nhưng "luôn luôn là ngày mai". S
BZT
Cách chỉnh sửa được đề xuất PATH
là từ /etc/environment
tệp
Ví dụ đầu ra của /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Ví dụ: để thêm đường dẫn mới của /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Sau đó, khởi động lại PC của bạn.
Biến môi trường toàn hệ thống
Một tệp phù hợp cho các cài đặt biến môi trường có ảnh hưởng đến toàn bộ hệ thống (chứ không chỉ là một người dùng cụ thể) là / etc / môi trường. Một cách khác là tạo một tệp cho mục đích trong thư mục /etc/profile.d.
/ etc / môi trường
Tập tin này đặc biệt dành cho các cài đặt biến môi trường toàn hệ thống. Nó không phải là một tập lệnh, mà là bao gồm các biểu thức gán, mỗi biểu thức.
Lưu ý: Mở rộng biến không hoạt động trong / etc / môi trường.
Thông tin thêm có thể được tìm thấy ở đây: Biến môi trường
Mở thiết bị đầu cuối của bạn, nhập gedit .profile
và chèn như sau:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
Đóng và mở terminal, nó sẽ hoạt động.
Ngay cả khi các tập lệnh hệ thống không sử dụng điều này, trong bất kỳ trường hợp nào mà người ta muốn thêm một đường dẫn (ví dụ $HOME/bin
:) vào biến môi trường PATH, người ta nên sử dụng
PATH="${PATH:+${PATH}:}$HOME/bin"
để nối thêm (thay vì PATH="$PATH:$HOME/bin"
) và
PATH="$HOME/bin${PATH:+:${PATH}}"
để chuẩn bị (thay vì PATH="$HOME/bin:$PATH"
).
Điều này tránh được dấu hai chấm giả / dấu đầu dòng khi $PATH
ban đầu trống, có thể có tác dụng không mong muốn.
Đối với Ubuntu chỉnh sửa ~/.bashrc
và thêm dòng sau.
. ~/.bash_profile
Sau đó chỉnh sửa .bash_profile của bạn khi bạn cần .....
.bash_profile
khi bạn cần". Chính xác thì tôi cần phải làm .bash_profile
gì?
.profile
hoặc .bash_profile
nên nguồn .bashrc
. Không phải hướng ngược lại.