Как добавить каталог $PATH
в Ubuntu и сделать изменения постоянными?
Как добавить каталог $PATH
в Ubuntu и сделать изменения постоянными?
Ответы:
Заданный путь .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/
чтобы повлиять на сессию менеджеров.
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
Для полных новичков (как я), которые более удобны с GUI:
$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
файл.
Он получает каждый раз, когда вы открываете терминал
РЕДАКТИРОВАТЬ : Основываясь на комментариях ниже, для более общей настройки, которая будет применяться ко всем оболочкам (в том числе, когда вы нажмете Alt- F2в Unity), добавьте строку в ваш ~/.profile
файл. Однако, вероятно, не следует делать и то и другое, поскольку путь будет добавлен в вашу PATH
среду дважды, если вы откроете терминал.
$HOME/.profile
для личных настроек, либо /etc/profile
для всех пользователей. Но если это нужно только для bash, я думаю, что любой из них будет работать.
~/.bashrc
, он будет доступен только на открытых вами терминалах. Например, если вы нажмете Alt + F2 и попробуете выполнить команду из этого каталога, она не будет найдена. Если вы установите его в ~/.profile
или ~/.pam_environment
, сеанс gnome (или какой DE вы используете) унаследует его. Добавление 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 / environment.
Более подробную информацию можно найти здесь: 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
. А не наоборот.