Я пытаюсь добавить каталог на свой путь, поэтому он всегда будет на моем пути Linux. Я пробовал:
export PATH=$PATH:/path/to/dir
Это работает, однако каждый раз, когда я выхожу из терминала и запускаю новый экземпляр терминала, этот путь теряется, и мне нужно снова запустить команду экспорта.
Как я могу сделать это, чтобы это было установлено постоянно?
Вам нужно добавить его в файл ~/.profile
или ~/.bashrc
.
export PATH="$PATH:/path/to/dir"
В зависимости от того, что вы делаете, вы также можете использовать символические ссылки на двоичные файлы:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
Обратите внимание, что это не будет автоматически обновлять ваш путь до конца сеанса. Для этого вам необходимо запустить:
source ~/.profile
or
source ~/.bashrc
В 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, это может быть почему
Существует несколько способов сделать это. Фактическое решение зависит от цели.
Значения переменных обычно хранятся либо в списке назначений, либо в оболочке 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. Это плохой выбор, потому что он является уникальным для каждой оболочки..bash_profile
следует добавить в список?
Поместите объявление export
в ~/.bashrc
. Мой .bashrc содержит следующее:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
.profile
', не нашел .bashrc
Вы можете установить $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
/etc/profiles
и символом s
? У меня нет s
. Я думаю, что у вас есть опечатка.
Вы можете использовать для Centos или RHEL для локального пользователя:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
Это добавит текущий каталог (или вы можете использовать другой каталог) в PATH, это сделает его постоянным, но вступит в силу при следующем входе в систему.
Если вы не хотите повторного входа в систему, можете использовать:
source ~/.bash_profile
Чтобы перезагрузить # User specific environment and startup programs
, этот комментарий присутствует в .bash_profile
Я думаю, что самый элегантный способ:
1.add this в файле ~/.bashrc Запустите эту команду
gedit ~/.bashrc
добавьте свой путь внутрь
export PATH = $ PATH: /opt/node/bin
2.source ~/.bashrc
(Ubuntu)
Вы также можете установить постоянное редактирование одного из этих файлов:
/etc/profile
(для всех пользователей)
~/.bash_profile
(для текущего пользователя)
~/.bash_login
(для текущего пользователя)
~/.profile
(для текущего пользователя)
Вы также можете использовать /etc/environment
для установки постоянной переменной среды PATH, но она не поддерживает расширение переменной.
Извлечено из: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Вы можете добавить эту строку в конфигурационный файл консоли (например,.bashrc) или в .profile
/home/(username)
ls -a
чтобы увидеть их.)
Я наткнулся на этот вопрос вчера, когда искал способ добавить папку, содержащую мои собственные скрипты, в 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
и поместить туда мои скрипты.
Мой ответ относится к настройке 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
недоступен.
Zues77 имеет правильную идею. ОП не сказал "как я могу взломать свой путь через это". OP хотел знать, как постоянно добавлять $PATH:
sudo nano /etc/profile
Здесь он установлен для всего и является лучшим местом для его изменения для всех вещей, требующих $PATH
файлы, в которые вы добавляете команду экспорта, зависят от того, находитесь ли вы в режиме входа в систему или не в режиме входа в систему.
если вы находитесь в режиме входа в систему, файлы, которые вы ищете, - это /etc/ bash или/etc/bash.bashrc
если вы находитесь в режиме без входа в систему, вы ищете файл /.profile или файлы в каталоге /.profiles.d
файлы, упомянутые выше, если существуют системные переменные.
Добавьте в /etc/profile.d
папку script [name_of_script].sh
с линией: export PATH=$PATH:/dir
. Каждый script в папке /etc/profile.d
автоматически запускается /etc/profile
при входе в систему.
Постоянно добавлять переменную 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
echo 'export PATH=$PATH:/new/path/variable'
... И, кстати, ключевое слово export
скорее всего, бесполезно, поскольку переменная PATH
скорее всего, уже помечена как экспортированная.
Homebrew
проверить это видео
или же
шаги ниже
Step 1:
Откройте https://brew.sh/
Скопируйте URL, который показан на скриншоте выше.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Вставьте скопированный URL в терминал и нажмите клавишу возврата/ввода
После завершения установки Homebrew выполните шаг 2:
Step 2:
Загрузите terraform с веб- сайта https://www.terraform.io/downloads.html.извлечь скачанный zip файл terraform
Теперь у вас будет одно имя файла terraform
в загруженной папке
Например
/Users/username/downloads/terraform
Step 3:
Откройте terminal
cd: изменить каталог на /Users/username/downloads/terraform
Step 4:
запустить brew install terraform
в терминале
Я думаю, самый элегантный способ:
1.add это в файле ~./bashrc
if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.source ~/.bashrc
(Ubuntu)
наилучшим простым способом является следующая строка: PATH="<directory you want to include>:$PATH"
в вашем .bashrc файле в домашнем каталоге.
Он не получит reset, даже если вы закроете терминал или перезагрузите компьютер. Его постоянный
1. измените файл "/etc/profile".
#vi /etc/profile
Нажмите клавишу "i", чтобы войти в статус редактирования и переместить курсор в конец файла, Дополнительные записи:
export PATH=$PATH:/path/to/dir;
Нажмите клавишу "Esc", чтобы выйти из режима редактирования, ": wq" сохранить файл.
2. сделать конфигурацию эффективной
source /etc/profile
Объясните: файл профиля работает для всех пользователей, если вы хотите быть действительным только для активного пользователя, установите файл ".bashrc"
Для распределения 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
Я только что столкнулся с той же проблемой и вставлю причину, по которой PATH всегда будет reset при переходе. После многих поисковых работ я, наконец, понимаю это пользовательская системная проблема, когда я вижу этот код в файле /etc/passwd:
root:x:0:0:root:/root:/usr/sbin/nologin
Это означает, что эта настраиваемая система отключает оболочку корня bash.
Если вы пробовали каждое решение, но ничего полезного не получали. И вы используете пользовательскую систему, вы можете взглянуть на мою возможную причину.
Один из способов добавить постоянный путь, который работал у меня, - это: cd/etc/profile.d touch custom.sh vi custom.sh export PATH = $PATH:/путь согласно вашей настройке/ перезагрузите компьютер, и здесь мы идем, путь будет постоянно веселит.
На Mac вы можете просто скопировать необходимый файл (исполняемый файл) в /usr/local/bin/
Его можно добавить напрямую, используя следующую команду:
echo 'export PATH = $PATH:/new/directory' → ~/.zshrc источник ~/.zshrc
bash
, так что это не очень полезно.
$PATH
и/usr/bin
. 2) Должен ли/usr/bin
быть там. 3) Разве вы не должны использовать/usr/local/bin
?