Що робить "Запустити команду як оболонку входу"?


28

У мене встановлено кілька окремих програм, деякі з яких вимагають від мене зайти в налаштування свого терміналу GUI і включити / вимкнути параметр "Запустити команду як оболонка входу", щоб отримати роботу.

Приклад:

Я встановив Ruby на Rails . На жаль, я повинен зайти в параметри терміналу і включити "Запустити команду як оболонку входу", щоб вона була в моєму PATH.

Це не було великою проблемою, поки я не встановив sexy-bash-prompt , який працює лише в тому випадку, якщо параметр вимкнено.

Отже, моє питання по суті: що робить "Запустити команду як оболонка входу"? Чи є спосіб отримати те, що запускається, коли його відключити, коли ви запускаєте як оболонку входу?

Відповіді:


31

Якщо припустити, що вашою оболонкою є Bash (за замовчуванням в Ubuntu), це різниці:

  • Під час запуску як оболонки для входу , Bash буде читати ~/.bash_profile(або, якщо цього не існує ~/.profile), при запуску. У деяких випадках цей файл також читається ~/.bashrc.

  • Під час запуску як оболонки без входу Bash буде читати ~/.bashrc.

Отже, чому ви бачите різну поведінку під час роботи як оболонки для входу / не входу? Тому що ваш .bash_profile/ .profileробить інші речі, ніж ваш .bashrc.

Я б рекомендував у вашому випадку рішення скопіювати налаштування, зроблені для .bash_profile/ .profile, вставити їх .bashrcі відключити "Запустити команду як оболонку входу".


Ах гаразд. Я подумав, що це стосується того, який профіль входу він читав (source'ing .bashrc виправляє деякі проблеми, які у мене були). Я підкажу, вибачте за жахливо написане запитання.
AlbertEngelB

Дякую за стисле пояснення. Не рідкість бачити, що люди просто зберігають свої налаштування у .bashrc та мають .bash_profile до джерела .bashrc. Спеціальні налаштування для входу повинні зберігатися лише в .bash_profile.
MichaelZ

1
Чому б просто не ввести .bashrc у .bash_profile і не залишити оболонку входу? Це можливо?
доктор Нефаріо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.