Làm cách nào để thêm thư mục $PATHvào Ubuntu và thay đổi vĩnh viễn?
Làm cách nào để thêm thư mục $PATHvào Ubuntu và thay đổi vĩnh viễn?
Câu trả lời:
Một đường dẫn được đặt .bash_profilesẽ 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
bashnhư một vỏ đăng nhập không phân tích cú pháp .profilenếu một trong hai .bash_profilehoặc .bash_logintồ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_environmenthoặc .bashrcvề 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 .bashrctrong 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 .bashrchoặ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"?
.bashrckhô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 .profilehoặc .pam_environment. Xem mywiki.wooledge.org/DotFiles
. .bashrckhông .bashrc:) hoặc source .bashrccho 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 sudotrì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 PATHbiến môi trường. Để kiểm tra chạy env và xem PATHgiá 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:
$HOMEthư mục của bạn ..profilevà 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_environmenttập tin trong thư mục nhà.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.Đặt dòng đó trong ~/.bashrctậ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 ~/.profiletệ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 PATHmôi trường của bạn nếu bạn mở một thiết bị đầu cuối.
$HOME/.profilecài đặt cá nhân hoặc /etc/profilecho 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 ~/.profilehoặ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 ~/.bashrccũ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.
~/.profilelà chính xác cho con đường cá nhân, mặc dù; đó là nơi Ubuntu thêm ~/binthư 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.
~/.profiletrong 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 .bashrcthay thế. Thiết bị đầu cuối GUI trong Ubuntu không phải là vỏ đăng nhập, vì vậy .bash_profilesẽ 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 .profilevà sử dụng nó thay thế. Theo mặc định, bạn sẽ có một .profilevà .bashrctrong Ubuntu. Và .profilelà 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/binthư 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 /scriptsmột nơi nào đó gần hơn với $HOMEthư 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 PATHlà từ /etc/environmenttệ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 .profilevà 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 $PATHban đầu trống, có thể có tác dụng không mong muốn.
Đối với Ubuntu chỉnh sửa ~/.bashrcvà thêm dòng sau.
. ~/.bash_profile
Sau đó chỉnh sửa .bash_profile của bạn khi bạn cần .....
.bash_profilekhi bạn cần". Chính xác thì tôi cần phải làm .bash_profilegì?
.profilehoặc .bash_profilenên nguồn .bashrc. Không phải hướng ngược lại.