"Інтерактивна оболонка входу запускається після успішного входу, використовуючи / bin / login, зчитування файлу / etc / passwd. Цей виклик оболонки зазвичай читає / etc / profile та його приватний еквівалент ~ / .bash_profile при запуску.
Інтерактивна оболонка без входу зазвичай запускається в командному рядку за допомогою програми оболонки (наприклад, [підказка] $ / bin / bash) або за допомогою команди / bin / su. Інтерактивна оболонка без входу також запускається з термінальної програми, такої як xterm або konsole з графічного середовища. Цей тип виклику оболонки зазвичай копіює батьківське середовище, а потім зчитує файл ~ / .bashrc користувача для отримання додаткових інструкцій щодо налаштування запуску. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Тому я не ставлю змінні середовища в bashrc, оскільки це не тільки проти загальної конвенції, але ви також будете пропускати ваші параметри bashrc, коли викликаєте термінал із графічного середовища робочого столу.
Про Redhat в /etc/profile
я знайшов цей коментар:
"Псевдоніми та функції з широкою системою повинні входити в / etc / bashrc. Змінні особистого середовища та програми запуску повинні переходити до ~ / .bash_profile. Особисті псевдоніми та функції повинні переходити до ~ / .bashrc."
Отже, якщо ви хочете встановити змінні середовища на користувальницькій основі, зробіть це у файлі .bash_profile користувача.
Перейшовши до .bash_profile
я прочитав:
"Персональні змінні середовища та програми запуску.
Особисті псевдоніми та функції повинні надходити в ~ / .bashrc. Загальні змінні середовища та програми запуску знаходяться в / etc / profile. Псевдоніми та функції системи знаходяться в / etc / bashrc. "
Висновок
Якщо ви хочете, щоб тільки root бачив програми, що живуть, наприклад, в / sbin
я додав би цей шлях до .bash_profile
файлу root . Але якщо ви хочете , щоб кожен користувач бачити , що корінь конкретних програм, встановлених на вашому комп'ютері , я б поставив /sbin
в /etc/.profile
. Тепер кожен користувач може скористатися доповненням вкладок, щоб знайти кореневі програми та при необхідності підняти права.
Особливий випадок: SSH
Коли ssh запускається з командного рядка, запускається інтерактивна оболонка входу. Але в цьому випадку /etc/profile
не читається. Коли я визначав змінні середовища у .bash_profile
файлі кожного користувача, він працював із ssh.
~/.profile
ще один дійсний варіант