Вот список того, что должен/не должен содержать каждый файл, на мой взгляд:
[Читать каждый раз]
Этот файл всегда является источником, поэтому он должен устанавливать переменные среды, которые необходимо часто обновлять . PATH(или связанный с ним аналог path)— хороший пример, потому что вы, вероятно, не захотите перезапускать весь сеанс, чтобы обновить его. Установив его в этом файле, повторное открытие эмулятора терминала запустит новый экземпляр Zsh с обновленным значением PATH .
Но имейте в виду, что этот файл читается даже при запуске Zsh для выполнения одной команды(с параметром-c ), даже с помощью другого инструмента, такого как make
. Вы должны быть очень осторожными, чтобы не изменить поведение стандартных команд по умолчанию , потому что это может привести к поломке некоторых инструментов (путем установки псевдонимов, например ).
[Чтение при входе в систему]
Я лично рассматриваю этот файл как .zshenv
, но для команд и переменных, которые должны быть установлены один раз или которые не нужно часто обновлять:
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
), поскольку выполнение может занять некоторое время. Если вы измените этот файл, вы сможете применить обновления конфигурации, запустив оболочку входа:
exec zsh --login
[Читать в интерактивном режиме]
Я разместил здесь все необходимое только для интерактивного использования:
[Читать при входе в систему]
Этот файл похож на .zprofile
, но читается после .zshrc
. Вы можете считать, что оболочка полностью настроена во время выполнения.zlogin
Итак, я использую его для запуска внешних команд, которые не изменяют поведение оболочки (, например. менеджер входа в систему ).
[Чтение при выходе из системы][В оболочке входа в систему]
Здесь вы можете очистить свой терминал или любой другой ресурс, который был настроен при входе в систему.
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
Если ваш интернет-провайдер блокирует или принудительно использует вашу конфигурацию DNS, решение заключается в использовании туннелирования или VPN, которые имеют другое соединение с вашим интернет-провайдером.
DNS-сервер можно настроить на туннельном/VPN-сервере.