Вопрос: В чем разница между «Login» и «Interactive» bash shell


В чем разница между «Login» и «Interactive» bash shell? Я цитировал Википедию ниже, но может ли кто-нибудь дать лучший ответ?

EDIT: Это вики сообщества, поэтому, возможно, вместо голосования, чтобы закрыть вас, вы можете привести примеры того, какие ситуации требуют, какой тип $ SHELL

Сценарии запуска

Когда Bash запускается, он выполняет   команд в различных   скрипты.

Когда Bash вызывается как интерактивный   login, он сначала читает и   выполняет команды из файла   / etc / profile, если этот файл существует.   После прочтения этого файла он ищет   ~ / .bash_profile, ~ / .bash_login и   ~ / .profile в этом порядке и читает   и выполняет команды с первого   тот, который существует и читается.

Когда оболочка входа завершается, Bash читает   и выполняет команды из файла   ~ / .bash_logout, если он существует.

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


46


Источник


Я отредактировал этот вопрос, чтобы больше вписаться в правила с половинным арбитром. Я не думаю, что когда-нибудь пойму желание удалить полезную информацию ... - Gareth
Почему люди голосуют за этот вопрос? Кажется совершенно законным для меня? - duffbeer703
Ух, ответьте на вопрос, и ответьте им как ответ. Хорошо, чтобы ответить на ваш собственный вопрос. - derobert
Это очень важный вопрос, поскольку различие сбивает с толку. Обратите внимание, например, что когда вы входите в графическую среду через xdm и запускаете xterm, вы получаете интерактивную оболочку, и файлы запуска оболочки входа в систему не запускаются. - pjc50


Ответы:


В файлах профиля вашей учетной записи вы можете настроить некоторые вещи, которые вы будете использовать во время сеанса, и которые нужно выполнить только один раз. Некоторые идеи:

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

В файлах оболочки без входа (.bashrc) вы должны настроить оболочку:

  • Необычное приглашение
  • установить псевдонимы
  • установить параметры истории
  • определять пользовательские функции оболочки
  • экспортные переменные среды (возможно, PAGER, EDITOR, если системные настройки сосать)
  • загрузить переменные ssh-agent, сохраненные в .bash_profile

Обычно вы включаете .bashrc из .bash_profile со следующим. Затем оболочка входа получает все ваши настройки и .bash_profile файл не должен дублировать вещи, которые уже находятся в .bashrc,

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

16



Является ли первая оболочка входа, которая начинается, когда вы свежие на машине? Все остальные оболочки, которые вы открываете после этого, могут быть или не быть интерактивными. Оболочка, которая работает от cron? Не кажется интерактивным, но это логин? Что делать, если вы не на машине? Это те вопросы, которые остались без ответа - François Beausoleil
Теперь, это ответ, который я могу понять: linuxquestions.org/questions/linux-general-1/... - François Beausoleil