Найпростіший спосіб - винайти машину часу, відвідати різних людей, які створили файли запуску оболонки і сказати їм чітко розрізняти три речі:
- налаштування сеансу, наприклад, змінні середовища;
- запуск сеансу, тобто, наприклад, запуск оболонки командного рядка або менеджер вікон або запуск
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.