Я понимаю разницу между Интерактивный вход и Интерактивный без входа
В соответствии с этим прекрасным постом: Порядок загрузки файлов запуска Zsh/Bash (.bashrc, .zshrc и т. д.) у нас есть следующая таблица
+----------------+-----------+------------+------+
| |Интерактивный|Интерактивный|Сценарий|
| |логин |не вход | |
+----------------+-----------+------------+------+
|/и т.д./профиль | А | | |
+----------------+-----------+------------+------+
|/etc/bash.bashrc| | А | |
+----------------+-----------+------------+------+
|~/.bashrc | | Б | |
+----------------+-----------+------------+------+
|~/.bash_profile | Б1 | | |
+----------------+-----------+------------+------+
|~/.bash_логин | Б2 | | |
+----------------+-----------+------------+------+
|~/.профиль | Б3 | | |
+----------------+-----------+------------+------+
|BASH_ENV | | | А |
+----------------+-----------+------------+------+
| | | | |
+----------------+-----------+------------+------+
| | | | |
+----------------+-----------+------------+------+
|~/.bash_logout | С | | |
+----------------+-----------+------------+------+
Первая ссылка относится к другому отличному посту: Очистка настроек bash где доступно отличное объяснение о Интерактивный вход и Интерактивный без входа следующее:
Ан интерактивный вход shell — это оболочка, в которую вы печатаете, это первая такая оболочка, которую вы запускаете на машине. Как правило, вам придется войти в систему непосредственно перед запуском оболочки. Например, когда вы подключаетесь по SSH к удаленной системе и вводите команды для этой системы, вы вводите интерактивную оболочку входа в систему.
Ан интерактивная оболочка без входа в систему запускается ли новая оболочка после того, как вы уже вошли в систему; тот, который не требует повторного входа в систему. Например, если вы откроете новое окно терминала в своем графическом пользовательском интерфейсе и получите приглашение оболочки, это интерактивная оболочка без входа в систему. Другим примером интерактивной оболочки без входа в систему может быть вложенная оболочка, запускаемая из текстового редактора; например, набрав :sh в vi.
Что касается первого, то это практически обязательно в Ubuntu. Сервер среда - где работать с каждым телетайп
нужно войти в систему, поэтому в соответствии с таблицей ~/.профиль
используется (я подтвердил, что не существует ни ~/.bash_profile
ни ~/.bash_логин
файлы). Это относится к su - другой пользователь
(он запрашивает его/ее пароль) и, следовательно, его/ее собственный ~/.профиль
файл тоже выполняется. Пока здесь я в порядке.
О последнем — причина этого поста — Ubuntu Рабочий стол среда, это применяется, когда новое окно/терминал открывается только с одной вкладкой по умолчанию, поэтому в соответствии с таблицей следует выполнить /etc/bash.bashrc
и ~/.bashrc
файлы и нет в .профиль
файл
Но почему если выполняется в что Терминал:
эхо $JAVA_HOME
(определено на .профиль
)
эхо $M2_HOME
(определено на .профиль
)
эхо $GRADLE_HOME
(определено на .профиль
)
какая ява
какой мвн
какой уровень
все команды работают нормально?
То же поведение для любой новой вкладки (Ctrl + Shift + T
) в том же окне и даже для нового окна терминала с уникальной вкладкой по умолчанию
Я прочитал следующий пост:
А упомянутых настроек у меня нет (вторая адаптирована для Ubuntu Desktop 18:04):
-
.bashrc
файлы не ссылаются или не получают .профиль
файл
Редактировать
--> Настройки
--> Безымянный
-> Вкладка «Команда»
--> Запустить команду как оболочку входа
(это не проверено)