Я пытаюсь добавить каталог на свой путь, поэтому он всегда будет на моем пути Linux. Я пробовал:
export PATH=$PATH:/path/to/dir
Это работает, однако каждый раз, когда я выхожу из терминала и запускаю новый экземпляр терминала, этот путь теряется, и мне нужно снова запустить команду экспорта.
Как я могу сделать это, чтобы это было установлено постоянно?
Ответ 1
Вам нужно добавить его в файл ~/.profile
или ~/.bashrc
.
export PATH="$PATH:/path/to/dir"
В зависимости от того, что вы делаете, вы также можете использовать символические ссылки на двоичные файлы:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
Обратите внимание, что это не будет автоматически обновлять ваш путь до конца сеанса. Для этого вам необходимо запустить:
source ~/.profile
or
source ~/.bashrc
Ответ 2
В Ubuntu отредактируйте /etc/environment
. Его единственная цель - хранить переменные среды. Первоначально здесь определяется переменная $ PATH. Это вставка из файла /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Таким образом, вы можете просто открыть этот файл с правами root и добавить все, что захотите.
Для немедленных результатов запустите (попробуйте как обычный пользователь и root):
source /etc/environment && export PATH
ОБНОВИТЬ:
Если вы используете zsh
(aka Z Shell), добавьте эту строку сразу после комментариев в /etc/zsh/zshenv
:
source /etc/environment
Я столкнулся с этой маленькой причудой на Ubuntu 15.10, но если ваш zsh не получит правильную PATH, это может быть почему
Ответ 3
Существует несколько способов сделать это. Фактическое решение зависит от цели.
Значения переменных обычно хранятся либо в списке назначений, либо в оболочке script, которая запускается в начале сеанса системы или пользователя. В случае оболочки script вы должны использовать специальный синтаксис оболочки.
Системная ширина
-
/etc/environment
Список уникальных заданий. Идеально подходит для добавления общесистемных каталогов, таких как переменная /usr/local/something/bin
to PATH
или определение JAVA_HOME
.
-
/etc/xprofile
Shell script выполняется при запуске сеанса системы X Window. Это выполняется для каждого пользователя, который входит в систему X Window. Это хороший выбор для записей PATH
, которые действительны для каждого пользователя, такого как /usr/local/something/bin
. Файл включен другим script, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки.
-
/etc/profile
и /etc/profile.d/*
Shell script. Это хороший выбор для систем с оболочкой. Эти файлы читаются только оболочками.
-
/etc/<shell>.<shell>rc
. Shell script. Это плохой выбор, потому что он является уникальным для каждой оболочки.
Сеанс пользователя
-
~/.pam_environment
. Список уникальных заданий. Loaded by PAM в начале каждого сеанса пользователя не имеет значения, если это сеанс или оболочка системы X Window. Вы не можете ссылаться на другую переменную, включая HOME
или PATH
, поэтому она имеет ограниченное использование.
-
~/.xprofile
Shell script. Это выполняется, когда пользователь входит в систему X Window System. Переменные, определенные здесь, видны для каждого приложения X. Идеальный выбор для расширения PATH
со значениями, такими как ~/bin
или ~/go/bin
, или определение пользовательских GOPATH
или NPM_HOME
. Файл включен другим script, поэтому используйте синтаксис оболочки POSIX, а не синтаксис вашей пользовательской оболочки. Ваши графические текстовые редакторы или IDE, запущенные ярлыком, будут видеть эти значения.
-
~/.profile
Shell script. Он будет виден только для программ, запущенных с терминала или эмулятора терминала. Это хороший выбор для систем с оболочкой.
-
~/.<shell>rc
. Shell script. Это плохой выбор, потому что он является уникальным для каждой оболочки.
Спецификация для распространения
Ответ 4
Поместите объявление export
в ~/.bashrc
. Мой .bashrc содержит следующее:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
Ответ 5
Вы можете установить $PATH
навсегда двумя способами.
-
Чтобы установить путь для конкретного пользователя:
Возможно, вам понадобится сделать запись в .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
Ответ 6
Вы можете использовать для Centos или RHEL для локального пользователя:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
Это добавит текущий каталог (или вы можете использовать другой каталог) в PATH, это сделает его постоянным, но вступит в силу при следующем входе в систему.
Если вы не хотите повторного входа в систему, можете использовать:
source ~/.bash_profile
Чтобы перезагрузить # User specific environment and startup programs
, этот комментарий присутствует в .bash_profile
Ответ 7
Вы также можете установить навсегда, отредактировав один из этих файлов:
/etc/profile
(для всех пользователей)
~/.bash_profile
(для текущего пользователя)
~/.bash_login
(для текущего пользователя)
~/.profile
(для текущего пользователя)
Вы также можете использовать /etc/environment
для установки постоянной переменной среды PATH, но она не поддерживает расширение переменных.
Извлечено из: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Ответ 8
Я наткнулся на этот вопрос вчера, когда искал способ добавить папку, содержащую мои собственные скрипты, в PATH - и был удивлен, узнав, что мой собственный ~/.profile
файл (на Linux Mint 18.1) уже содержал это:
# set PATH so it includes user private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Таким образом, все, что мне нужно было сделать, это создать папку ~/bin
и поместить туда мои скрипты.
Ответ 9
Я думаю, что самый элегантный способ:
1.add this в файле ~/.bashrc Запустите эту команду
gedit ~/.bashrc
добавьте свой путь внутрь
export PATH = $ PATH: /opt/node/bin
2.source ~/.bashrc
(Ubuntu)
Ответ 10
Вы можете добавить эту строку в конфигурационный файл консоли (например,.bashrc) или в .profile
Ответ 11
1. измените файл "/etc/profile".
#vi /etc/profile
Нажмите клавишу "i", чтобы войти в статус редактирования и переместить курсор в конец файла, Дополнительные записи:
export PATH=$PATH:/path/to/dir;
Нажмите клавишу "Esc", чтобы выйти из режима редактирования, ": wq" сохранить файл.
2. сделать конфигурацию эффективной
source /etc/profile
Объясните: файл профиля работает для всех пользователей, если вы хотите быть действительным только для активного пользователя, установите файл ".bashrc"
Ответ 12
файлы, в которые вы добавляете команду экспорта, зависят от того, находитесь ли вы в режиме входа в систему или не в режиме входа в систему.
если вы находитесь в режиме входа в систему, файлы, которые вы ищете, - это /etc/ bash или/etc/bash.bashrc
если вы находитесь в режиме без входа в систему, вы ищете файл /.profile или файлы в каталоге /.profiles.d
файлы, упомянутые выше, если существуют системные переменные.
Ответ 13
Постоянно добавлять переменную PATH
Global:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
Локальный (только для пользователя):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
Для перезапуска глобальной. Для локального relogin.
Пример
До:
$ 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
Ответ 14
Zues77 имеет правильную идею. ОП не сказал "как я могу взломать свой путь через это". OP хотел знать, как постоянно добавлять $PATH:
sudo nano /etc/profile
Здесь он установлен для всего и является лучшим местом для его изменения для всех вещей, требующих $PATH
Ответ 15
Мой ответ относится к настройке go-lang
на Ubuntu linux/amd64
. Я столкнулся с такой же проблемой при настройке пути переменных окружения (GOPATH
и GOBIN
), потеряв его при выходе из терминала и перестраивая его с помощью source <file_name>
каждый раз. Ошибка заключалась в том, чтобы поместить путь (GOPATH
и GOBIN
) в папку ~/.bash_profile
. Потеряв несколько хороших часов, я обнаружил, что решение заключалось в том, чтобы положить 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
файла и из файла ~/.profile
, если файл ~/.bash_profile
недоступен.
Ответ 16
наилучшим простым способом является следующая строка:
PATH="<directory you want to include>:$PATH"
в вашем .bashrc файле в домашнем каталоге.
Он не получит reset, даже если вы закроете терминал или перезагрузите компьютер. Его постоянный
Ответ 17
Добавьте в /etc/profile.d
папку script [name_of_script].sh
с линией: export PATH=$PATH:/dir
. Каждый script в папке /etc/profile.d
автоматически запускается /etc/profile
при входе в систему.
Ответ 18
Один способ добавить постоянный путь, который работал для меня, это:
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
перезагрузите компьютер, и здесь мы идем путь будет там постоянно ура.
Ответ 19
Я думаю, самый элегантный способ:
1.add это в файле ~./bashrc
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.source ~/.bashrc
(Ubuntu)
Ответ 20
Быстрая установка с помощью Homebrew
проверить это видео
или же
шаги ниже
Step 1:
Откройте https://brew.sh/
![enter image description here]()
Скопируйте URL, который показан на скриншоте выше.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Вставьте скопированный URL в терминал и нажмите клавишу возврата/ввода
После завершения установки Homebrew выполните шаг 2:
извлечь скачанный zip файл terraform
Теперь у вас будет одно имя файла terraform
в загруженной папке
Например
/Users/username/downloads/terraform
Step 3:
Откройте terminal
cd: изменить каталог на /Users/username/downloads/terraform
Step 4:
запустить brew install terraform
в терминале
Ответ 21
Допустим, вы работаете в MacOS, и у вас есть бинарный файл, которому вы доверяете и который хотите сделать доступным в вашей системе, но не обязательно хотите, чтобы каталог, в который бинарный файл добавлялся в вашу PATH, вы можете выбрать для копирования/перемещения двоичный файл в /usr/local/bin
, который уже должен быть в вашем PATH. Это сделает двоичный файл исполняемым, как и любой другой двоичный файл, к которому у вас уже есть доступ в вашем терминале.
Ответ 22
Его можно напрямую добавить с помощью следующей команды:
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
Ответ 23
Я только что столкнулся с той же проблемой и вставлю причину, по которой PATH всегда будет reset при переходе. После многих поисковых работ я, наконец, понимаю это
пользовательская системная проблема, когда я вижу этот код в файле /etc/passwd:
root:x:0:0:root:/root:/usr/sbin/nologin
Это означает, что эта настраиваемая система отключает оболочку корня bash.
Если вы пробовали каждое решение, но ничего полезного не получали. И вы используете пользовательскую систему, вы можете взглянуть на мою возможную причину.
Ответ 24
Для распределения 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
Ответ 25
На Mac вы можете просто скопировать необходимый файл (исполняемый файл) в /usr/local/bin/