Почему должно там быть техническое разделение оболочек в виды входа в систему и невхода в систему?

Оболочки могут быть входом в систему как выполненными текстовой консолью и не войти в систему как выполненные Терминалом Gnome. Почему эта сложность необходима? Почему оболочка входа в систему не может следовать тем же правилам как невход в систему?

4
задан 3 April 2016 в 17:19

1 ответ

Во-первых, взгляните на этот ответ для понимания различий между оболочками входа в систему и невхода в систему. В основном они читают различные файлы инициализации. Теперь, много дистрибутивов — включая Debian и, следовательно, Ubuntu — на самом деле двигают то, что Вы описываете. На этих дистрибутивах, значении по умолчанию ~/.profile или ~/.bash_profile файлы содержат что-то как следующее:

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

Это означает, что вход в систему окружает — которые читают ~/.profile— будет также читать ~/.bashrc, то, чтобы заставлять их вести себя как невход в систему интерактивные оболочки. Или, скорее то, чтобы заставлять их иметь ту же установку как невход в систему интерактивные оболочки в дополнение к тому, что настраивается для оболочек входа в систему.

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

В таких случаях можно хотеть, чтобы необолочки графического пользовательского интерфейса вели себя по-другому. Например, много лет, у меня была эта команда в моем ~/.bashrc файл для отключения слышимого звонка:

xset b off 

Начиная с моего .bashrc был только считан интерактивным, оболочками невхода в систему, и они никогда не выполнялись графически, это был простой способ отключить звонок. Однако начиная с моего дистрибутива, переключенного на наличие ~/.profile источник ~/.bashrc, команда также выполнялась, когда я входил в систему через ssh, в среде не-GUI и, с тех пор xset требует выполнения X сессия, это произвело ошибку.

В более общем плане часто полезно иметь оболочки входа в систему, ведут себя по-другому, так как они обычно используются для другой цели. Могут быть переменные, Вы только хотите набор в одном типе а не другом, или регистрирует, Вы только хотите чтение. По общему признанию, менее полезно разделить два на домашнем компьютере отдельного пользователя, но полагать, что Linux много лет, прежде всего, нацеливался на рынок серверов и наличие многопользовательских систем, очень нормально. В таких случаях добавленная сложность стоит того, так как это позволяет Вам иметь мелкомодульный контроль над тем, как различные типы оболочек ведут себя.

1
ответ дан 1 December 2019 в 10:37

Другие вопросы по тегам:

Похожие вопросы: