Как навсегда установить $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/environment
file: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/bin
toPATH
переменной или определение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-lang
onUbuntu 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 fi
2.источник ~/.bashrc
(Ubuntu)
один из способов, чтобы добавить постоянный путь, который работал для меня: cd / etc / профиль.д прикосновение custom.sh vi custom.sh экспорт PATH=$PATH: / path в соответствии с вашими настройками/ перезагрузите компьютер и здесь мы идем путь будет там постоянно овации.