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конфигурация находится там. Должен признаться, я не слишком знаком с различными типами снарядов. Прочитав опубликованные вами ссылки, я предполагаю, что использую интерактивную оболочку, но я буду читать дальше, чтобы быть уверенным ... Еще раз спасибо!