Як додати каталог в $PATH
в Ubuntu і зробити зміни постійними?
Шлях, заданий у файлі .bash_profile
, буде задано тільки в командній оболонці bash (bash -l
).
Якщо ви вкажете шлях у файлі .profile
, він буде доступний для всього сеансу роботи на робочому столі. Це означає, що навіть metacity буде використовувати його.
Наприклад, ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
До речі, ви можете перевірити змінну PATH процесу, подивившись його оточення в /proc/[pid]/environ
(замініть [pid] на число з ps axf
). Наприклад, використовуйте grep -z "^PATH" /proc/[pid]/environ
.
bash
як оболонка для входу в систему не розбирає .profile
, якщо існує або .bash_profile
, або .bash_login
. Від man bash
:
шукає ~/.bash_profile, ~/.bash_login і ~/.profile в такому порядку порядку, і читає і виконує команди з першого, який існує і є доступним для читання.
Дивіться відповіді нижче для отримання інформації про .pam_environment
, або .bashrc
для інтерактивних оболонок без входу в систему, або встановіть значення глобально для всіх користувачів, помістивши скрипт в /etc/profile.d/
або використовуйте /etc/X11/Xsession.d/
для впливу на сеанс менеджерів дисплея.
Відредагуйте файл .bashrc
у вашому домашньому каталозі та додайте наступний рядок:
export PATH="/path/to/dir:$PATH"
Щоб зміни набули чинності, вам потрібно буде отримати джерело вашого .bashrc
або вийти/ввійти в систему (або перезапустити термінал). Щоб вказати джерело вашого .bashrc
, просто введіть
$ source ~/.bashrc
Додавання його в .bashrc буде працювати, але я думаю, що більш традиційним способом налаштування змінних шляху є .bash_profile, додавши наступні рядки.
PATH=$PATH:/my/path/foo
export PATH
Відповідно до цієї теми здається, що поведінка Ubuntu дещо відрізняється від поведінки RedHat і клонів.