Как добавить каталог в PATH?
Как добавить каталог в $PATH
в Ubuntu и сделать изменения постоянными?
18 ответов
Использование ~ /.profile для установки $ PATH
Путь, установленный в .bash_profile
, будет установлен только в командной строке bash (bash -l
).
Если вы поместите свой путь в .profile
, он будет доступен для вашего полного сеанса рабочего стола. Это означает, что даже metacity будет использовать его.
Например ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, вы можете проверить переменную 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
по умолчанию gksudo gedit /etc/environment
Это будет работать на рабочем столе или консоли, gnome-terminal или TTY, дождь или блеск;)
-
Чтобы изменить, нажмите Alt + F2 и введите:
sudo
(или откройте файл, используя
. /etc/environment
в вашем любимом текстовом редакторе)
Чтобы произвести изменения, запустите PATH
. Поскольку этот файл является просто простым скриптом, он будет запускаться и назначать новый путь к переменной окружения PATH
. Чтобы проверить запуск env и увидеть значение ----+:=7=:+----
в списке.
Связанный:
Я думаю, что канонический путь в 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
Ссылаясь на приведенную выше документацию, я установил мои инструменты для поиска SDK для Android :
- создание
~/.pam_environment
файла в домашнем каталоге. - , содержание которого
PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
. - дополнительный пользовательский путь пользователя может быть добавлен путем разделения путей с помощью двоеточия (:) .
- для этого требуется повторный вход в систему , что означает, что вам необходимо выйти из системы и вернуться к рабочему столу.
Поместите эту строку в ваш файл ~/.bashrc
.
Он получает источник, когда вы открываете терминал
EDIT . На основе приведенных ниже комментариев для более общей настройки, которая будет применяться ко всем оболочкам (в том числе при нажатии Alt - F2 ) > в Unity), добавьте строку в ваш файл ~/.profile
. Вероятно, не следует делать оба, но, если вы откроете терминал, путь будет добавлен дважды в среду PATH
.
Чтобы установить его по всей системе, добавьте строку export PATH=/path/you're/adding:$PATH
в конец /etc/profile
.
Чтобы добавить каталог только для входа в систему, добавьте одну строку в ~/.bash_profile
.
Добавление его в .bashrc будет работать, но я думаю, что более традиционный способ настройки ваших переменных пути находится в .bash_profile, добавив следующие строки.
PATH=$PATH:/my/path/foo
export PATH
Согласно этот поток кажется, что поведение Ubuntu немного отличается от RedHat и клонов.
В терминале cd
to the_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
Это была не моя идея. Я нашел способ экспортировать путь в блог здесь .
Всякий раз, когда я «устанавливаю» свою папку BASH-скриптов, я следую шаблону теста для папки $HOME/bin
, которая находится в большинстве файлов .profile в последних версиях Ubuntu. Я установил тест, который выглядит как
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Он работает примерно в 100% случаев и оставляет меня вправе изменять его в текстовом редакторе графического интерфейса с помощью быстрого «Заменить все», если я когда-либо решил переместить /scripts
где-то ближе к my $HOME
. Я не сделал этого в 6 установках Ubuntu, но есть «всегда завтра». S
БЗТ
Откройте терминал, введите 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"
Закройте и откройте терминал, он должен работать.
Рекомендуемый способ редактирования 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
Поместите его в свой ~/.bashrc
или whatevershell, которым вы пользуетесь rc (или для предыдущего ~/.profile
)) и ~/.xsessionrc
поэтому он также будет работать в X (внешняя оболочка).
https://help.ubuntu.com/community/EnvironmentVariables
Есть все, что вам нужно знать. Я узнал, что много ввода здесь было неправильным или, по крайней мере, метод не предлагался. Это отличная информация, которая позволит вам выяснить, где изменить переменную среды, исходя из причины, по которой вы это делаете, и как это сделать, не забивая все (как, например, я сделал некоторые из вышеупомянутых плохих советов).
Так долго, и спасибо за всю рыбу!
Даже если системные скрипты не используют это,
в любом из случаев, когда нужно добавить путь (например, $HOME/bin
) в переменную среды PATH, следует использовать
PATH="${PATH:+${PATH}:}$HOME/bin"
для добавления (вместо PATH="$PATH:$HOME/bin"
),
и
PATH="$HOME/bin${PATH:+:${PATH}}"
для добавления (вместо PATH="$HOME/bin:$PATH"
).
Это позволяет избежать ложного начального /конечного двоеточия, когда $PATH
изначально пуст, что может иметь нежелательные эффекты.