Я работаю на Mac и только что перешел с Bash на Zsh с помощью Oh-my-zsh.
Все работает нормально, за исключением того, что в моем $PATH теперь отсутствуют несколько записей, например, путь к исполняемым файлам nodeJS.
Обходной путь, который я использовал на данный момент, — это копирование $PATH из bash и вставка его в .zshrc, что не совсем понятно.
Есть ли лучший способ добавить в $PATH на zsh все записи, которые есть на bash?
решение1
В общем, оболочки имеют некоторые базовые файлы конфигурации в /etc на большинстве Unix-подобных систем. Важные шаблоны имен файлов включают все, что упоминает имя оболочки, и для bash, по крайней мере, файл "profile". Эти же файлы могут отображаться как ., например os .cshrc, .bashrc и .profile и т. д.
Bash, запущенный как оболочка входа, использует /etc/profile
, если этот файл существует. После прочтения этого файла он использует ~/.bash_profile
, ~/.bash_login
, и ~/.profile
, в указанном порядке. В этих файлах PATH может быть изменен, но он также может использовать другие программы для установки путей. Если это интерактивная оболочка, но не оболочка входа, он будет использовать ~/.bashrc
.
В случае Mac проверка /etc/profile обнаруживает программу под названием «path_helper», страница руководства которой показывает, что она любит хранить дополнительные пути в /etc/path.d.
Этот шаблон, .d, также широко используется и является хорошим местом для поиска дополнительных файлов конфигурации.