Я шукаю вказівки щодо того, що потрібно, а що не слід включати в різні файли запуску для zsh.
Я розумію порядок пошуку цих файлів та умови, за яких вони отримуються, але мені все одно не зрозуміло, що має відбуватися в кожному.
Я шукаю вказівки щодо того, що потрібно, а що не слід включати в різні файли запуску для zsh.
Я розумію порядок пошуку цих файлів та умови, за яких вони отримуються, але мені все одно не зрозуміло, що має відбуватися в кожному.
Відповіді:
Ось неексклюзивний список того, що має містити кожен файл:
.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
[Читати, коли інтерактивний]
Я розміщую тут все необхідне лише для інтерактивного використання :
[Читати при вході]
Цей файл подобається .zshprofile, але читається після .zshrc. Я вважаю, що оболонка в цей час повністю налаштована.
Отже, я використовую його для запуску зовнішніх команд, які не змінюють поведінку оболонки (наприклад, менеджер входу).
[Читати при виході] [У оболонці входу]
Тут ви можете очистити свій термінал або будь-яку іншу установку ресурсу під час входу.
.zshenv.zshenv.zprofile.zshrc.zlogin.zlogout