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
там розміщена вся моя інша конфігурація. Треба визнати, я не надто знайомий з різними типами снарядів. Читаючи посилання, які ви опублікували, я здогадуюсь, що використовую інтерактивну оболонку, але читаю далі, щоб бути впевненим ... Ще раз дякую!