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 говорить:
Під час входу Zsh видає такі файли в такому порядку:
/ etc / profile
Цей файл отримує всі оболонки, сумісні з Bourne, після входу
Це implys , що /etc/profileце завжди читають по zshпри вході в систему - у мене немає ніякого досвіду роботи з проектом Arch Linux; Вікі може бути правильним для цього розповсюдження, але це, як правило, не правильно. Інформація є невірним по порівнянні з ЗШЕМ довідкових сторінок, і , здається, не застосовується до ЗШУ на OS X (шляху в $PATHнаборі в /etc/profileне зробити його мій ЗШ сесії).
Щоб вирішити питання:
де саме я повинен розміщувати свої додатки rvm, python, node тощо до мого $ PATH?
В загальному, я б Експортувати $PATHз ~/.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там розміщена вся моя інша конфігурація. Треба визнати, я не надто знайомий з різними типами снарядів. Читаючи посилання, які ви опублікували, я здогадуюсь, що використовую інтерактивну оболонку, але читаю далі, щоб бути впевненим ... Ще раз дякую!