Как добавить каталог в 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, как вам нужно.....