Ответы:
Вот неисключительный список того, что каждый файл имеет тенденцию содержать:
.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