Ответы:
Вот неисключительный список того, что каждый файл имеет тенденцию содержать:
.zshenvон всегда получен, он часто содержит экспортированные переменные, которые должны быть доступны другим программам. Так , например, $PATH, $EDITORи $PAGERчасто устанавливаются в .zshenv. Кроме того , вы можете установить $ZDOTDIRв .zshenvуказать альтернативное место для остальной части вашей конфигурации ЗШ..zshrcдля конфигурации интерактивной оболочки. Вы можете установить параметры для интерактивной оболочки там с setoptи unsetoptкомандами. Вы также можете загрузить модули оболочки, установить параметры истории, изменить приглашение, настроить zle и завершение и так далее. Вы также устанавливаете любые переменные, которые используются только в интерактивной оболочке (например $LS_COLORS)..zloginисходный код запускается при входе в систему. Этот файл часто используется для запуска X с помощью startx. Некоторые системы запускают X при загрузке, поэтому этот файл не всегда очень полезен..zprofileв основном то же самое, .zloginза исключением того, что он получен непосредственно до того, .zshrcкак получен, а не непосредственно после него. Согласно документации zsh, « .zprofileподразумевается как альтернатива« .zlogin »для фанатов ksh; оба не предназначены для совместного использования, хотя это, безусловно, можно сделать при желании»..zlogout иногда используется для очистки и сброса терминала. Вы должны просмотреть файлы конфигурации случайных пользователей Github, чтобы лучше понять, что должен содержать каждый файл.
man zshallПодробности).
$PATHв .zshenv, все другие другие файлы поставляются после этого файла, который переопределит это значение. См. Zsh.org/mla/users/2003/msg00600.html .
$LANGи $LC_ALLкуда идти?
.zshenv→ [ .zprofileпри входе в систему] → [ .zshrcпри взаимодействии] → [ .zloginпри входе в систему] → [ .zlogoutиногда].
Вот список того, что каждый файл должен / не должен содержать, по моему мнению:
[Читать каждый раз]
Этот файл всегда получен, поэтому он должен устанавливать переменные среды, которые необходимо часто обновлять . PATH (или связанный путь к нему ) является хорошим примером, потому что вы, вероятно, не хотите перезапускать весь сеанс, чтобы обновить его. Установив его в этом файле, повторное открытие эмулятора терминала запустит новый экземпляр Zsh с обновленным значением PATH .
Но имейте в виду, что этот файл читается даже при запуске Zsh для запуска одной команды (с параметром -c ), даже с помощью другого инструмента, подобного make. Вы должны быть очень осторожны, чтобы не изменять поведение стандартных команд по умолчанию, потому что это может сломать некоторые инструменты (например, путем установки псевдонимов).
[Читать при входе в систему]
Лично я отношусь к этому файлу как .zshenvк командам и переменным, которые должны быть установлены один раз или которые не требуют частого обновления :
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"), так как это может занять некоторое время.Если вы измените этот файл, вы можете применить обновления конфигурации, запустив оболочку входа в систему:
exec zsh --login
[Читать в интерактивном режиме]
Я положил сюда все необходимое только для интерактивного использования :
[Читать при входе в систему]
Этот файл похож .zprofile, но читается после .zshrc. Вы можете считать, что оболочка полностью настроена во время выполнения .zlogin
Поэтому я использую его для запуска внешних команд, которые не изменяют поведение оболочки (например, менеджер входа в систему).
[Читать при выходе из системы] [В оболочке входа]
Здесь вы можете очистить свой терминал или любой другой ресурс, который был настроен при входе в систему.
.zshenv.zshenv.zprofile.zshrc.zlogin.zlogout