Как мне добавить каталог в $PATH
в Ubuntu и сделать изменения постоянными?
Использование ~/.profile для установки $PATH
Путь, установленный в .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
Рекомендуемое место для определения постоянного, общесистемный переменные среды, применяемые ко всем пользователям, находятся в:
/etc/environment
(именно там по умолчанию PATH
определяется)
Это будет работать на рабочем столе или консоли, gnome-terminal или TTY, rain или shine ;)
-
Чтобы отредактировать, откройте терминал и введите:
sudoedit /etc/environment
(или откройте файл с помощью
sudo
в вашем любимом текстовом редакторе)
Чтобы заставить его работать без перезагрузки, запустите . /etc/environment
или source /etc/environment
. Поскольку этот файл представляет собой всего лишь простой скрипт, он будет запущен и назначит новый путь к PATH
переменная среды. Чтобы проверить запуск env
и увидеть, как PATH
значение в списке.
Связанный:
Я думаю, что канонический способ в 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
папка. - Идти к Смотреть → Показывать Скрытые Файлы или нажмите Ctrl + H.
- Щелкните правой кнопкой мыши на
.profile
и нажмите на Открыть С Помощью Текстового Редактора. - Прокрутите страницу вниз и добавьте
PATH="$PATH:/my/path/foo"
. - Сохранить.
- Выйдите из системы и снова войдите в систему, чтобы применить изменения (пусть Ubuntu действительно загрузится
.profile
).
Для постоянных переменных среды, доступных только определенным пользователям. Я настоятельно рекомендую официальную документацию Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
Ссылаясь на документацию выше, я настроил свой Путь к Android SDK-инструменты около:
- создание
~/.pam_environment
файл в домашнем каталоге. - содержание которого является
PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
. - дополнительный пользовательский пользовательский путь может быть добавлен путем разделения путей с помощью двоеточие (:).
- это требует повторный вход в систему, что означает, что вам нужно выйти из системы и снова войти в среду рабочего стола.
Поместите эту строку в свой ~/.bashrc
файл.
Он получает доступ всякий раз, когда вы открываете терминал
РЕДАКТИРОВАТЬ: Основываясь на приведенных ниже комментариях, для более общей настройки, которая будет применяться ко всем оболочкам (в том числе при нажатии Alt-F2 в Unity), добавьте строку в свой ~/.profile
файл. Однако, вероятно, не следует делать и то, и другое, так как путь будет добавлен дважды к вашему PATH
среда, если вы открываете терминал.
Чтобы установить его в масштабах всей системы, добавьте строку export PATH=/path/you're/adding:$PATH
до конца /etc/profile
.
Чтобы добавить каталог только для вошедшего в систему пользователя, добавьте ту же строку в ~/.bash_profile
.
Добавление его в .bashrc будет работать, но я думаю, что более традиционный способ настройки ваших переменных пути находится в .bash_profile, добавив следующие строки.
PATH=$PATH:/my/path/fooexport PATH
Согласно с этот поток похоже, что поведение Ubuntu немного отличается от RedHat и клонов.
В терминале, cd
к the_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
Это была не моя идея. Я нашел этот способ экспортировать путь по этому адресу ведите блог здесь.
EnvironmentVariables - Community Help Wiki Здесь есть все, что вам нужно знать. Я обнаружил, что большая часть введенных здесь данных была неверной или, по крайней мере, метод не был предложен. Это отличная информация, которая позволит вам выяснить, где изменить переменную среды, исходя из причины, по которой вы это делаете, и как именно это сделать, не испортив все (как я сделал, следуя некоторым из вышеупомянутых плохих советов). Пока, и спасибо за всю рыбу!