Как навсегда установить $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. Это паста из моего :
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.к. A Z Shell), добавить эта строка сразу после комментариев в /etc/zsh/zshenv
:
source /etc/environment
я столкнулся с этой маленькой причудой на Ubuntu 15.10, но если ваш ЗШ не получает правильного путь, это может быть, почему
есть несколько способов сделать это. Реальное решение зависит от цели.
значения переменных обычно хранятся либо в списке назначений, либо в сценарии оболочки, который запускается в начале сеанса системы или пользователя. В случае сценария оболочки необходимо использовать определенный синтаксис оболочки.
системы
-
/etc/environment
список уникальных заданий. Идеально подходит для добавления общесистемных каталогов, таких как/usr/local/something/bin
toPATH
переменной или определениеJAVA_HOME
. -
/etc/xprofile
сценарий оболочки выполняется при запуске сеанса X Window System. Это выполняется для каждого пользователя, который входит в систему X Window. Это хороший выбор дляPATH
записи, которые действительны для каждого пользователя, как/usr/local/something/bin
. Файл включен другим скриптом, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки. -
/etc/profile
и/etc/profile.d/*
сценарий оболочки. Это хороший выбор для shell-only систем. Эти файлы читаются только ракушки. -
/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-only. -
~/.<shell>rc
. Сценарий оболочки. Это плохой выбор, потому что он специфичен для одной оболочки.
распространение конкретной документации
поставить export
декларация ~/.bashrc
. Мой. bashrc содержит следующее:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
вы можете установить $PATH
постоянно в 2 стороны.
-
настроить путь для конкретного пользователя : Возможно, Вам потребуется сделать запись в
.bash_profile
в домашнем каталоге пользователя.e.g в моем случае я установлю путь 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 и
добавьте свой путь внутри его
экспорт 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 имеет правильную идею. ОП не сказал:"как я могу взломать свой путь через это". OP хотел знать, как постоянно добавлять к $PATH:
sudo nano /etc/profile
здесь он установлен для всего и является лучшим местом для его изменения для всех вещей, нуждающихся в $PATH
мой ответ относится к настройке go-lang
on Ubuntu 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
файл и настройки для оболочек входа взяты из , и с ~/.profile
файл if ~/.bash_profile
файл недоступен.
постоянно добавлять переменную PATH
общие:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
Local (только для пользователя):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
на глобальные перезагрузка. Для местные перелогиниться.
пример
перед:
$ 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 и
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.источник ~/.bashrc и
(Ubuntu)
один из способов, чтобы добавить постоянный путь, который работал для меня: cd / etc / профиль.д сенсорный custom.sh vi custom.sh экспорт PATH=$PATH: / path в соответствии с вашими настройками/ перезагрузите компьютер и здесь мы идем путь будет там постоянно овации.
для дистрибутива debian необходимо:
- edit ~/.bashrc e.g: vim ~/.bashrc
- add export PATH=$PATH:/path/to/dir
- then restart your computer. Be aware that if you edit ~/.bashrc as root, your environment variable you added will work only for root
его можно напрямую добавить, используя следующую команду:
echo 'export PATH=$PATH: / new / directory' >>~/.zshrc источник./~ zshrc