Я шукаю вказівки щодо того, що потрібно, а що не слід включати в різні файли запуску для 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