Яка різниця між 'Логін' та 'Інтерактивною' оболонкою bash


50

Яка різниця між командою "Логін" та "Інтерактивною" базовою оболонкою? Я цитував Вікіпедію нижче, але хто може дати кращу відповідь?

EDIT: Це вікі спільноти, тому, можливо, замість того, щоб голосувати, щоб закрити, ви можете навести приклади, які ситуації вимагають для якого типу $ SHELL

Сценарії запуску

Коли Bash запускається, він виконує команди в безлічі різних сценаріїв.

Коли Bash викликається як інтерактивна оболонка для входу, вона спочатку зчитує та виконує команди з файлу / etc / profile, якщо цей файл існує. Прочитавши цей файл, він шукає у такому порядку ~ / .bash_profile, ~ / .bash_login та ~ / .profile та зчитує та виконує команди з першого, що існує та читається.

Коли оболонка входу виходить, Bash зчитує та виконує команди з файлу ~ / .bash_logout, якщо він існує.

Коли запускається інтерактивна оболонка, яка не є оболонкою для входу, Bash зчитує та виконує команди з ~ / .bashrc, якщо цей файл існує. Це може бути пригнічено за допомогою параметра --norc. Параметр файлу --rcfile змусить Bash читати та виконувати команди з файлу замість ~ / .bashrc.


Я відредагував це питання, щоб воно більше відповідало наполовину викладеним правилам сайту. Я не думаю, що я ніколи не зрозумію бажання видалити корисну інформацію ...
Гарет

7
Чому люди голосують за це питання? Мені здається ідеально законним?
duffbeer703

2
Тьфу, вийми відповідь із свого запитання та опублікуй її як відповідь. Гаразд, щоб відповісти на ваше власне питання.
дероберт

2
Це дуже вагоме запитання, оскільки відмінність є заплутаною. Зверніть увагу, наприклад, що під час входу в графічне середовище через xdm та запуск xterm, ви отримуєте інтерактивну оболонку, а файли запуску оболонки для входу не запускаються.
pjc50

Відповіді:


16

У файлах профілів оболонки для входу ви можете налаштувати деякі речі, які ви будете використовувати під час сеансу, і які потрібно зробити лише один раз. Деякі ідеї:

  • створити тимчасовий файл, що містить IP-адресу, з якою ви підключились, згодом ви можете включити його до деяких сценаріїв, що встановлюють правила брандмауера.
  • запустіть ssh-агент, запитайте ваші SSH ключі та зберігайте змінні середовища SSH агента у файлі.
  • якщо це обмежена машина, і ваші колеги хочуть бути обізнаними про вхід в систему, пишіть (1) повідомлення, що інформують їх про ваш логін.

У файлах оболонки без входу ( .bashrc) слід налаштувати оболонку:

  • Фантастичний підказ
  • встановити псевдоніми
  • встановити параметри історії
  • визначити спеціальні функції оболонки
  • змінні середовища експорту, (можливо, PAGER, EDITOR, якщо параметри загальносистемного не спрацьовують)
  • завантаження змінних ssh-агента, збережених у .bash_profile

Як правило, ви б включати .bashrcвід .bash_profileз наступним. Потім оболонка входу отримує всі ваші налаштування, а .bash_profileфайл не повинен дублювати речі, які вже є .bashrc.

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
Чи перша оболонка для входу, яка починається, коли ви свіжі на машині? Усі інші оболонки, які ви відкриєте після цього, можуть бути або не бути інтерактивними. Оболонка, що працює від крона? Не здається інтерактивним, але це вхід? Що робити, якщо ви не на машині? Ось ці питання залишаються без відповіді
Франсуа Босолей

4
Тепер ЦЕ відповідь, яку я можу зрозуміти: linuxquestions.org/questions/linux-general-1/…
François Beausoleil
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.