Я понимаю разницу между Интерактивный вход и Интерактивный без входа
В соответствии с этим прекрасным постом: Порядок загрузки файлов запуска 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 файлы не ссылаются или не получают .профиль файл
Редактировать --> Настройки --> Безымянный -> Вкладка «Команда» --> Запустить команду как оболочку входа (это не проверено)