Как навсегда установить $PATH на Linux / Unix?
Я пытаюсь добавить каталог в свой путь, чтобы он всегда был в моем пути Linux. Я пробовал:
export PATH=$PATH:/path/to/dir
это работает, однако каждый раз, когда я выхожу из терминала и запускаю новый экземпляр терминала, этот путь теряется, и мне нужно снова запустить команду экспорта.
Как я могу это сделать, чтобы это было установлено навсегда?
20 ответов:
вам нужно добавить его в свой
~/.profileили .export PATH="$PATH:/path/to/dir"в зависимости от того, что вы делаете, вы можете хотеть симлинк на файлы:
cd /usr/bin sudo ln -s /path/to/binary binary-nameобратите внимание, что это не будет автоматически обновлять ваш путь для остальной части сессии. для этого нужно запустить:
source ~/.profile or source ~/.bashrc
Я не могу поверить, что никто не упомянул . Это единственная цель-хранить переменные среды. Первоначально здесь определена переменная $PATH. Это паста из моего
/etc/environmentfile:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"так что вы можете просто открыть этот файл как root и добавить все, что вы хотите.
для немедленных результатов, Запустить (попробовать как обычный пользователь!--12-->и root):
source /etc/environment && export PATHобновление:
если вы используете
zsh(a.k.A Z Shell), добавить эта строка сразу после комментариев в/etc/zsh/zshenv:source /etc/environmentя столкнулся с этой маленькой причудой на Ubuntu 15.10, но если ваш zsh не получает правильного путь, это может быть, почему
есть несколько способов сделать это. Реальное решение зависит от цели.
значения переменных обычно хранятся либо в списке назначений, либо в сценарии оболочки, который запускается в начале системного или пользовательского сеанса. В случае сценария оболочки необходимо использовать определенный синтаксис оболочки.
системы
/etc/environmentсписок уникальных заданий. Идеально подходит для добавления общесистемных каталогов, таких как/usr/local/something/bintoPATHпеременной или определениеJAVA_HOME./etc/xprofileсценарий оболочки выполняется при запуске системного сеанса X Window. Это выполняется для каждого пользователя, который входит в систему X Window. Это хороший выбор дляPATHзаписи, которые действительны для каждого пользователя, как/usr/local/something/bin. Файл включен другим скриптом, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки./etc/profileи/etc/profile.d/*сценарий оболочки. Это хороший выбор для оболочечных систем. Эти файлы доступны только для чтения ракушки./etc/<shell>.<shell>rc. Сценарий оболочки. Это плохой выбор, потому что он специфичен для одной оболочки.сеанс пользователя
~/.pam_environment. Список уникальных заданий. Загружено Пэм в начале каждого сеанса пользователя не имеет значения, если это системный сеанс X Window или оболочка. Вы не можете ссылаться на другие переменные, включаяHOMEилиPATHтаким образом, он имеет ограниченное использование.~/.xprofileсценарий оболочки. Это выполняется когда пользователь входит в систему X Window System. Переменные, определенные здесь, видны для каждого приложения X. Идеальный выбор для расширенияPATHсо значениями, такими как~/binили~/go/binили определение конкретного пользователяGOPATHилиNPM_HOME. Файл включен другим скриптом, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки. Ваш графический текстовый редактор или IDE, запущенный ярлыком, увидит эти значения.~/.profileсценарий оболочки. Это будет видно только для программ запускается из терминала или эмулятора терминала. Это хороший выбор для оболочечных систем.~/.<shell>rc. Сценарий оболочки. Это плохой выбор, потому что он специфичен для одной оболочки.распространение конкретной документации
поставить
exportдекларация~/.bashrc. Мой. bashrc содержит следующее:export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
вы можете установить
$PATHпостоянно в 2 стороны.
настроить путь для конкретного пользователя : Возможно, вам придется сделать запись в
.bash_profileв домашнем каталоге пользователя.например, в моем случае я установлю путь java в профиле пользователя tomcat
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profileустановить общий путь для всех пользователей системы, вам может потребоваться указать путь такой :
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
вы можете использовать на Centos или RHEL для локального пользователя:
echo $"export PATH=$PATH:$(pwd)" >> ~/.bash_profileэто добавляет текущий каталог (или вы можете использовать другой каталог) к пути, это делает его постоянным, но вступает в силу при следующем входе пользователя в систему.
если вы не хотите делать повторный вход в систему, то можете использовать:
source ~/.bash_profileэтого перезагрузить
# User specific environment and startup programsэтот комментарий присутствует.bash_profile
Я думаю, что самый элегантный способ это:
1.добавить в ~/.файл bashrc Выполните эту команду
gedit ~/.bashrc
добавить свой путь внутри него
export PATH=$PATH:/opt / node / bin
2.источник./~ bashrc
(Ubuntu)
я наткнулся на этот вопрос вчера при поиске способа добавить папку, содержащую мои собственные скрипты в путь - и был удивлен, узнав, что мой собственный
~/.profileфайл (на Linux Mint 18.1) уже содержал это:# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fiтаким образом, все, что мне нужно было сделать, это создать папку
~/binи поставить там свои скрипты.
вы также можете установить постоянно, редактируя один из этих файлов:
/etc/profile(для всех пользователей)
~/.bash_profile(для текущего пользователя)
~/.bash_login(для текущего пользователя)
~/.profile(для текущего пользователя)вы также можете использовать
/etc/environmentдля установки постоянной переменной окружения PATH, но он не поддерживает переменное расширение.извлеченные из: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
файлы, в которые вы добавляете команду экспорта, зависят от того, находитесь ли вы в режиме входа или не в режиме входа.
Если вы находитесь в режиме входа в систему, файлы, которые вы ищете, либо /etc /bash, либо/etc / bash.bashrc
Если вы находитесь в режиме без входа в систему, вы ищете файл /.профиль или для файлов в каталоге /.профили.d
файлы, упомянутые выше, если где системные переменные.
Zues77 имеет правильную идею. ОП не сказал:"как я могу взломать свой путь через это". ОП хотел знать, как постоянно добавлять к $PATH:
sudo nano /etc/profileздесь он установлен для всего и является лучшим местом, чтобы изменить его для всех вещей, нуждающихся в $PATH
мой ответ относится к настройке
go-langonUbuntu linux/amd64.Я столкнулся с той же проблемой установки пути переменных окружения (GOPATHиGOBIN), теряя его на выходе из терминала и перестраивая его с помощьюsource <file_name>каждый раз.Ошибка заключалась в том, чтобы поставить путь (GOPATHиGOBIN) в . Потратив впустую несколько хороших часов, я обнаружил, что решение было поставитьGOPATHиGOBINна~/.bash_rcфайл таким образом:export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH:$GOBINи делаем так, установка go работала нормально, и не было никаких потерь пути.
редактировать 1: Причина, с которой эта проблема может быть связана, заключается в том, что настройки для оболочек без входа в систему, таких как ваш терминал ubuntu или gnome-terminal, где мы запускаем код go, взяты из
~./bash_rcфайл и настройки для оболочек входа берутся из , и с если~/.bash_profileфайл недоступен.
постоянно добавлять переменную PATH
Global:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profileлокальный (только для пользователя):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profileна глобальные перезагрузка. Ибо local перелогиниться.
пример
перед:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbinпосле:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbin export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variableв качестве альтернативы вы можете просто изменить профиль:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variableдругой способ(спасибо gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profileвы не должны использовать двойные кавычки здесь! Эхо ' экспорт PATH=$PATH:/new/path / variable'... И кстати, ключевое слово export очень вероятно бесполезно, так как переменная PATH, скорее всего, уже помечены как экспортируемые. - gniourf_gniourf
добавить
/etc/profile.dскрипт папку[name_of_script].shС строку:export PATH=$PATH:/dir. Каждый скрипт внутри/etc/profile.dпапка автоматически выполняется/etc/profileпри входе в систему.
лучший простой способ это следующую строку:
PATH="<directory you want to include>:$PATH"
в вашем .файл bashrc в домашнем каталоге.
Он не будет сброшен, даже если вы закроете терминал или перезагрузить компьютер. Его постоянный
Я думаю, что самый элегантный способ это:
1.добавьте это в ~./ bashrc file
if [ -d "new-path" ]; then PATH=$PATH:new-path fi2.источник ~/.bashrc
(Ubuntu)
один из способов, чтобы добавить постоянный путь, который работал для меня: cd / etc / профиль.д прикосновение custom.sh vi custom.sh экспорт PATH=$PATH: / path в соответствии с вашими настройками/ перезагрузите компьютер и здесь мы идем путь будет там постоянно овации.