Как добавить каталог $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и .bashrcUbuntu. И .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. А не наоборот.