tl; dr версия: использовать ~/.zshrc
И прочитайте справочную страницу, чтобы понять различия между:
~/.zshrc
, ~/.zshenv
и ~/.zprofile
.
Что касается моего комментария
В моем комментарии, приложенном к ответу Кева , я сказал:
Это кажется неправильным - / etc / profile не указан ни в какой документации по zsh, которую я могу найти.
Это частично неверно: /etc/profile
может быть получен от zsh
. Однако это происходит, только если zsh
"вызывается как sh
или ksh
"; в этих режимах совместимости:
Обычные сценарии запуска / завершения работы zsh не выполняются. Источник оболочки входа / etc / profile, за которым следует $ HOME / .profile. Если переменная среды ENV установлена при вызове, $ ENV берется после скриптов профиля. Значение ENV подвергается расширению параметров, подстановке команд и арифметическому расширению перед интерпретацией как имя пути. [ man zshall, "Совместимость" ].
Ссылка ArchWiki ЗШ говорит:
При входе в систему Zsh создает следующие файлы в следующем порядке:
/ etc / profile
Этот файл создается всеми Bourne-совместимыми оболочками при входе в систему.
Это implys , что /etc/profile
это всегда читают по zsh
при входе в систему - у меня нет никакого опыта работы с проектом Arch Linux; wiki может быть правильным для этого дистрибутива, но в целом это не так . Информация является неверным по сравнению с ЗШЕМ справочных страниц, и , кажется, не применяется к ЗШУ на OS X (пути в $PATH
наборе в /etc/profile
не сделать его мой ЗШ сессии).
Чтобы ответить на вопрос:
где именно я должен размещать мои дополнения rvm, python, node и т. д. к моему $ PATH?
Как правило, я бы экспортировал свой файл$PATH
from ~/.zshrc
, но стоит прочитать справочную страницу zshall , в частности раздел «ФАЙЛЫ ЗАПУСКА / ВЫКЛЮЧЕНИЯ» - ~/.zshrc
читается для интерактивных оболочек, которые могут или не могут соответствовать вашим потребностям - если вы хотите, чтобы $PATH
для каждая zsh
запущенная вами оболочка (обе, interactive
а не обе, login
и т. д.) ~/.zshenv
- лучший вариант.
Есть ли конкретный файл, который я должен использовать (например, .zshenv, которого в настоящее время нет в моей установке), один из тех, которые я использую в настоящее время, или это вообще имеет значение?
При запуске читается куча файлов (проверьте связанные man
страницы), и для этого есть причина - каждый файл имеет свое определенное место (настройки для каждого пользователя, настройки для конкретных пользователей, настройки для оболочек входа, настройки для каждой оболочки, и т.д).
Не беспокойтесь о том, что ~/.zshenv
не существует - если вам это нужно, сделайте это, и это будет прочитано.
.bashrc
и .bash_profile
которые не читают zsh
, если вы явно не источник их ~/.zshrc
или аналогичный; синтаксис между bash
и zsh
является не всегда совместимы. Оба .bashrc
и .bash_profile
предназначены для bash
настроек, а не zsh
настроек.
.bashrc
и.bash_profile
не читаются ,zsh
как я в настоящее время у меняrvm
дополнение к$PATH
в.bashrc
, и моеpython
добавление в.bash_profile
, и оба они добавляются только штрафом. В любом случае, я собираюсь переместить все мои$PATH
экспортные файлы в эту папку, так~/.zshrc
как вся моя другаяzsh
конфигурация находится там. Должен признаться, я не слишком знаком с различными типами снарядов. Прочитав опубликованные вами ссылки, я предполагаю, что использую интерактивную оболочку, но я буду читать дальше, чтобы быть уверенным ... Еще раз спасибо!