Порядок исполнения и назначение.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, включая порядок выполнения и некоторые рекомендации о том, как их структурировать. Стоит прочитать ИМО.