Как добавить каталог в PATH?
Как добавить каталог в $PATH
в Ubuntu и сделать изменения постоянными?
17 ответов
Использование ~/.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-терминале или TTY, в дождь или блеск;)
Для редактирования нажмите Alt+F2 и введите:
gksudo gedit /etc/environment
(или откройте файл, используя
sudo
в вашем любимом текстовом редакторе)
Чтобы внести изменения, запустите . /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
Для полных новичков (как я), которые более удобны с GUI:
- Открыть свой
$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
среда, если вы открываете терминал.
Добавление его в.bashrc будет работать, но я думаю, что более традиционный способ установки переменных пути - это.bash_profile, добавив следующие строки.
PATH=$PATH:/my/path/foo
export PATH
Согласно этой теме, похоже, что поведение Ubuntu немного отличается от поведения RedHat и клонов.
Для настройки всей системы добавьте строку export PATH=/path/you're/adding:$PATH
до конца /etc/profile
,
Чтобы добавить каталог только для вошедшего в систему пользователя, добавьте эту же строку в ~/.bash_profile
,
В терминале, 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
Рекомендуемый способ редактирования вашего 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 / environment.
Более подробную информацию можно найти здесь: EnvironmentVariables
Всякий раз, когда я "устанавливаю" свою папку скриптов BASH, я следую шаблону теста для $HOME/bin
папка, которая находится в большинстве файлов.profile в последних версиях Ubuntu. Я установил тест, который выглядит как
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Это работает примерно в 100% случаев, и я могу свободно менять его в текстовом редакторе с графическим интерфейсом пользователя с помощью быстрого "Заменить все", если я решу переместиться /scripts
где-то ближе к моему $HOME
папка. Я не делал этого в 6 установках Ubuntu, но "всегда завтра". S
BZT
Откройте свой терминал, введите 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
Поместите это в свой ~/.bashrc
или что бы вы ни использовали rc (или вышеупомянутый ~/.profile
) А ТАКЖЕ ~/.xsessionrc
поэтому он также будет работать в X (внешняя оболочка).
Для Ubuntu отредактируйте ~/.bashrc
и добавьте следующую строку.
. ~/.bash_profile
Затем отредактируйте ваш.bash_profile, как вам нужно.....