Порядок исполнения и назначение.profile vs .zshrc
Несколько вопросов:
- Какова особая цель
.profileа также.zshrc? - Что называется первым, когда оболочка оживает?
2 ответа
~/.profile загружается только при запуске zsh в sh режим совместимости, в противном случае он читает .zprofile, так же как .zshrc для интерактивного и .zlogin для логинов.
Их цель развивается с момента их загрузки. Как .zshrc загружается для интерактивных оболочек, устанавливает псевдонимы и т. д., которые вы ожидаете в таких случаях.
.profile имеет дополнительное свойство, которое загружается несколькими другими оболочками (например, bashесли только он не находит что-то более конкретное; или же ksh) так или иначе, так что вы можете сохранить конфигурацию для нескольких оболочек в этом файле.
Соответствующие выдержки из man zshallАкцент мой:
ЗАПУСК / ОТКЛЮЧЕНИЕ ФАЙЛОВ
Команды сначала читаются из/etc/zshenv; [...]Команды затем читаются из
$ZDOTDIR/.zshenv, Если оболочка является оболочкой входа в систему, команды читаются из/etc/zprofileа потом$ZDOTDIR/.zprofile, Затем, если оболочка является интерактивной, команды читаются из/etc/zshrcа потом$ZDOTDIR/.zshrc, Наконец, если оболочка является оболочкой входа в систему,/etc/zloginа также$ZDOTDIR/.zloginчитаютсяСОВМЕСТИМОСТЬ
Zsh пытается эмулировать sh или ksh, когда он вызывается как sh или ksh соответственно; [...]Обычные сценарии запуска / выключения zsh не выполняются. Логин оболочек источник
/etc/profileс последующим$HOME/.profile, Если переменная среды ENV установлена при вызове,$ENVисходный код после скриптов профиля. ЗначениеENVподвергается расширению параметров, подстановке команд и арифметическому расширению перед тем, как интерпретироваться как имя пути. Обратите внимание, что опция PRIVILEGED также влияет на выполнение файлов запуска.
zsh wiki имеет хороший обзор файлов конфигурации zsh, включая порядок выполнения и некоторые рекомендации о том, как их структурировать. Стоит прочитать ИМО.