Найпростіший спосіб - винайти машину часу, відвідати різних людей, які створили файли запуску оболонки і сказати їм чітко розрізняти три речі:
- налаштування сеансу, наприклад, змінні середовища;
- запуск сеансу, тобто, наприклад, запуск оболонки командного рядка або менеджер вікон або запуск
startx
;
- ініціалізація оболонки, наприклад, псевдоніми, підказки, прив'язки клавіш.
Отримати сеанс проти оболонки не надто важко переносним способом: ініціалізація часу входу переходить у .profile
(або .zprofile
, або .login
), ініціалізація оболонки переходить у .bashrc
або .zshrc
. Я раніше писав про .bash_profile
, ЗШЕ проти інших оболонок , більше про переносимості ( в основному про БАШЕЄВ) , більш про те, хто читає.profile
.
Залишилася проблема - це розрізняти налаштування сеансу та запуск сеансу. У більшості випадків ~/.profile
він виконується під час входу в систему і може подвоїтися як обидва, але є винятки:
- Якщо оболонка для входу є (t) csh або zsh,
~/.login
а ~/.zprofile
замість неї використовується джерело ~/.profile
. Те ж відноситься до Баш і ~/.bash_profile
, але це легко вирішується пошуку ~/.profile
з ~/.bash_profile
.
- Якщо ви входите в диспетчер дисплеїв (xdm, gdm, kdm, ...), чи
~/.profile
читається ваше , залежить від версії програми, від вашого розповсюдження (Linux чи іншим способом) та того, який тип сеансу ви виберете.
- Якщо ви розраховуєте, що менеджер дисплеїв розпочне для вас сеанс, ви
.profile
повинні встановити змінні середовища, але не запускати сеанс (наприклад, менеджер вікон).
- Традиційний файл конфігурації для X сеансів -
~/.xsession
це налаштування сеансу та запуск сеансу. Отже файл може бути по суті . ~/.xsession; . ~/.xinitrc
. Деякі джерела розповсюдження ~/.profile
раніше ~/.xsession
. Сучасні дистрибутиви є джерелом лише ~/.xsession
тоді, коли ви вибираєте "спеціальний" сеанс із менеджера дисплеїв, і такий сеанс доступний не завжди.
- У вашого менеджера сеансів може бути свій спосіб встановлення змінних середовища. (Це необов'язкова частина вашого робочого середовища, вибрана вами через файл конфігурації або шляхом вибору типу сеансу при вході в систему; не плутайте його зі сценаріями запуску сеансу, наданими менеджером дисплея, які виконуються під вашим користувачем, але вибирають на загальносистемній основі. Так, це безлад.)
Підсумовуючи це, ~/.profile
є правильним місцем для змінних середовищ. Якщо він не прочитаний, спробуйте знайти його з ~/.xsession
(і запустіть X програми звідти), або шукайте метод, що залежить від системи (який може залежати від вашого розповсюдження, диспетчера дисплея, якщо такий є, типу сеансу, якщо менеджер дисплея, і середовище робочого столу або керівник сеансу).
.profile
взагалі не завантажений чи щось інше замінює змінні мови? (Спробуйте встановити деяку іншу змінну , як ,export MACIEJ_PROFILE=yes
щоб переконатися.set -x
В.profile
може бути хорошим способом , щоб перевірити , що виконується під час і після.profile
, якщо це читати взагалі.) Там немає сенсу в пошуку.profile
з.zshrc
.