Як додати каталог $PATH
в Ubuntu і зробити зміни постійними?
Як додати каталог $PATH
в Ubuntu і зробити зміни постійними?
Відповіді:
Вказаний шлях .bash_profile
буде встановлений тільки в оболонці входу в bash ( bash -l
). Якщо ви помістите свій шлях, .profile
він буде доступний для вашого повного сеансу на робочому столі. Це означає, що навіть метацити будуть використовувати це.
Наприклад ~/.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/
щоб вплинути на сесію менеджерів.
PATH="$HOME/bin:$PATH"
Тож я до нього додаю?
Відредагуйте .bashrc
у своєму домашньому каталозі та додайте наступний рядок:
export PATH="/path/to/dir:$PATH"
Щоб .bashrc
зміни набули чинності, вам потрібно буде джерело або вихід / вхід (або перезапуск терміналу). Щоб отримати джерело .bashrc
, просто введіть
$ source ~/.bashrc
.bashrc
"? Як "перезапустити термінал"?
.bashrc
не є правильним місцем для встановлення змінних середовища. Вони повинні зайти .profile
або .pam_environment
. Дивіться mywiki.wooledge.org/DotFiles
. .bashrc
не .bashrc
:) або source .bashrc
з цього приводу
Рекомендоване місце для визначення постійних загальносистемних змінних середовища, що застосовуються до всіх користувачів, знаходиться в:
/etc/environment
(де визначено за замовчуванням PATH
)
Це буде працювати на робочому столі або консолі, gnome-терміналі або TTY, дощі або блиску;)
Щоб відредагувати, натисніть Alt+ F2та введіть:
gksudo gedit /etc/environment
(або відкрийте файл за допомогою sudo
улюбленого текстового редактора)
Щоб здійснити зміни, запустіть . /etc/environment
. Оскільки цей файл є просто простим сценарієм, він запуститься та призначить новий шлях до PATH
змінної середовища. Щоб перевірити запуск env і побачити PATH
значення в лістингу.
Пов'язані:
source /etc/environment
щоб перезавантажити зміни
Я думаю, що канонічним способом в Ubuntu є:
створити новий файл під /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
додати туди:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
і дати йому виконання дозволу
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Для повних новачків (таких як я), яким зручніше користуватися графічним інтерфейсом:
$HOME
папку..profile
та натисніть кнопку Відкрити за допомогою редактора тексту .PATH="$PATH:/my/path/foo"
..profile
).$PATH:
біт , який включає в себе існуюче визначення PATH
Для стійких змінних середовищ, доступних лише певним користувачам. Я настійно рекомендую офіційну документацію Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
Посилаючись на вищевказану документацію, я налаштував свої Android SDK-інструменти шляхом:
~/.pam_environment
файлу в домашньому каталозі.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.Покладіть цей рядок у свій ~/.bashrc
файл.
Його отримують щоразу, коли ви відкриваєте термінал
EDIT : На підставі коментарів нижче, для більш загальної настройки, яка стосуватиметься всіх оболонок (у тому числі при натисканні Alt- F2в Unity), додайте рядок у свій ~/.profile
файл. Але, ймовірно, не слід робити обох, оскільки шлях буде доданий у ваше PATH
середовище двічі, якщо ви відкриєте термінал.
$HOME/.profile
для особистих налаштувань, або /etc/profile
для всіх користувачів. Але якщо це буде потрібно лише для баш, я гадаю, що буде працювати.
~/.bashrc
, він буде доступний лише у розімкнених терміналах. Наприклад, якщо ви натиснете Alt + F2 і спробуєте запустити команду з цього dir, вона не знайде. Якщо ви встановите його в, ~/.profile
або ~/.pam_environment
сеанс gnome (або той, який ви використовуєте) буде успадковувати його. Додавання PATH в ~/.bashrc
також має недолік, що якщо відкрити / виконати bash інтерактивно з іншої інтерактивної оболонки bash, вона буде додана кілька разів.
~/.profile
це правильно для особистих шляхів; саме тут Ubuntu додає ~/bin
каталог. І зізнаюсь, я трохи перебільшував кількість способів - лише небагато.
~/.profile
цим в цьому випадку.
Щоб встановити систему на широкому рівні, додайте рядок export PATH=/path/you're/adding:$PATH
до кінця /etc/profile
.
Щоб додати каталог лише зареєстрованого користувача, додайте той самий рядок до ~/.bash_profile
.
Додавання його до .bashrc буде працювати, але я думаю, що більш традиційний спосіб налаштування змінних вашого шляху полягає в .bash_profile, додаючи наступні рядки.
PATH=$PATH:/my/path/foo
export PATH
Згідно з цією темою, схоже, поведінка Ubuntu трохи інша, ніж RedHat і клонує.
.bashrc
, вставте його .bashrc
замість цього. Термінали GUI в Ubuntu не є оболонками для входу, тому .bash_profile
не запускаються.
.bash_profile
. Якщо bash не знайде .bash_profile
(при інтерактивному вході), він буде шукати .profile
і використовувати це замість цього. За замовчуванням ви матимете .profile
і .bashrc
Ubuntu. І .profile
це правильне місце для встановлення змінних середовища, якщо ми нехтуємо пам’яткою pam_env.
У терміналі, cd
доthe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
Це була не моя ідея. У цьому блозі я знайшов такий спосіб експорту шляху .
sudo vi /etc/profile.d/SCRIPT_NAME.sh
додати туди
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.sh
легше для початківців.
gksu gedit /etc/profile.d/SCRIPT_NAME.sh
ще простіше.
Щоразу, коли я "встановлюю" свою папку сценаріїв BASH, я дотримуюся шаблону тесту для $HOME/bin
папки, яка є в більшості .profile файлів останніх версій Ubuntu. Я встановив тест, який виглядає так
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Він працює приблизно в 100% часу і дозволяє мені вільно змінити його в текстовому редакторі графічного інтерфейсу на швидке «Замінити все», якщо я коли-небудь вирішу переїхати /scripts
кудись ближче до своєї $HOME
папки. Я ще не робив цього в 6 установках Ubuntu, але "завжди завтра". S
BZT
Рекомендований спосіб редагування вашого файлу PATH
- з /etc/environment
файлу
Приклад виходу /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Наприклад, додати новий шлях /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Потім перезавантажте комп'ютер.
Загальносистемні змінні середовища
Підходящим файлом для параметрів змінної середовища, які впливають на систему в цілому (а не лише на конкретного користувача), є / etc / environment. Альтернативою є створення файлу за призначенням у каталозі /etc/profile.d.
/ тощо / навколишнє середовище
Цей файл призначений спеціально для системних параметрів змінної середовища. Це не файл скриптів, а складається з виразів призначення, по одному на рядок.
Примітка. Змінне розширення не працює в / etc / середовищі.
Докладнішу інформацію можна знайти тут: EnvironmentVariables
Відкрийте свій термінал, наберіть gedit .profile
і вставте наступне:
# 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"
Закрити і відкрити термінал, він повинен працювати.
Навіть якщо системні скрипти не використовують це, у будь-якому випадку, коли хочеться додати шлях (наприклад, $HOME/bin
) до змінної середовища PATH, слід використовувати
PATH="${PATH:+${PATH}:}$HOME/bin"
для додавання (замість PATH="$PATH:$HOME/bin"
) та
PATH="$HOME/bin${PATH:+:${PATH}}"
за попередньо (замість PATH="$HOME/bin:$PATH"
).
Це дозволяє уникнути помилкової провідної / відсталої кишки, коли $PATH
вона спочатку порожня, що може мати небажані наслідки.
Див., Наприклад, https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset
Для Ubuntu відредагуйте ~/.bashrc
та додайте наступний рядок.
. ~/.bash_profile
Потім відредагуйте .bash_profile так, як вам потрібно .....
.bash_profile
як вам потрібно". Що саме мені потрібно зробити .bash_profile
?
.profile
або .bash_profile
має джерело .bashrc
. Не навпаки.