Рабочий стол Ubuntu: почему сценарий .profile выполняется в интерактивной оболочке без входа в систему?

Я понимаю о разнице между Интерактивным входом и Интерактивным входом без входа

Согласно этому отличному сообщению: Порядок загрузки файлов запуска Zsh / Bash (.bashrc, .zshrc и т. д.) у нас есть следующая таблица

+----------------+-----------+-----------+------+
|                |Interactive|Interactive|Script|
|                |login      |non-login  |      |
+----------------+-----------+-----------+------+
|/etc/profile    |   A       |           |      |
+----------------+-----------+-----------+------+
|/etc/bash.bashrc|           |    A      |      |
+----------------+-----------+-----------+------+
|~/.bashrc       |           |    B      |      |
+----------------+-----------+-----------+------+
|~/.bash_profile |   B1      |           |      |
+----------------+-----------+-----------+------+
|~/.bash_login   |   B2      |           |      |
+----------------+-----------+-----------+------+
|~/.profile      |   B3      |           |      |
+----------------+-----------+-----------+------+
|BASH_ENV        |           |           |  A   |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|~/.bash_logout  |    C      |           |      |
+----------------+-----------+-----------+------+

Первая ссылка относится к этому другому отличному сообщению: Очистка настроек bash , где доступно отличное объяснение Интерактивного входа в систему и Интерактивного не -login следующим образом:

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

Интерактивная оболочка без входа в систему - это новая оболочка, запускаемая после того, как вы уже вошли в систему; тот, который не требует повторного входа в систему. Например, , если вы открываете новое окно терминала в графическом пользовательском интерфейсе и получаете приглашение оболочки , это интерактивная оболочка без входа в систему.Другой пример интерактивной оболочки без входа в систему - это вспомогательная оболочка, запускаемая из текстового редактора; например, набрав: sh в vi.

Что касается первого, то он практически обязательно применяется в среде Ubuntu Server - где для работы с каждым tty требуется вход в систему, поэтому в соответствии с таблицей ~ Используется /.profile (я подтвердил, что не существует ни файлов ~ / .bash_profile , ни ~ / .bash_login ). Он применяется к su - otheruser (запрашивает его / ее пароль), и поэтому также выполняется его / ее собственный файл ~ / .profile . Пока здесь я в порядке.

О последнем - причина этого сообщения - окружение Ubuntu Desktop , оно применяется, когда новое окно / терминал открывается только с одной вкладкой по умолчанию, поэтому в соответствии с таблицей должно выполняться /etc/bash.bashrc и ~ / .bashrc файлы и не файл .profile

Но почему, если выполняется в , что терминал:

  • echo $ JAVA_HOME (определено в .profile )
  • echo $ M2_HOME (определено в .profile )
  • echo $ GRADLE_HOME (определено на .profile )
  • which java
  • which mvn
  • which gradle

все команды работают нормально?

Такое же поведение для любой новой вкладки ( Ctrl + Shift + T ) в том же окне и даже для нового окна терминала с его уникальной вкладкой по умолчанию

, я прочитал следующее сообщение:

И у меня нет упомянутых настроек (второй адаптирован для рабочего стола Ubuntu 18:04):

  • Файлы .bashrc не ссылаются на .profile и не используют его в качестве источника. файл
  • Правка -> Настройки -> Без имени -> Вкладка команд -> Запустить команду как оболочка входа в систему (не отмечена)
5
задан 17 September 2021 в 16:13

0 ответов

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

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