Почему .profile не создается при открытии терминала?

36

Только что установили Ubuntu 14.04.1 LTS.

Согласно .profile,

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

Нет ~ / .bash_profile или ~ / .bash_login.

Это не похоже на источник .profile при открытии терминала.

  1. Почему это не источник .profile при открытии терминала?
  2. Почему .profile существует, если он не получен?
  3. Как мне узнать / контролировать, что происходит при открытии нового терминала?
  4. Когда новый терминал открыт, он делает "вход в систему"?
  5. Где хорошее место, чтобы добавить $ HOME / bin к моему пути? .bashrc? Не вызовет ли это проблемы, потому что .profile имеет такой же код?
Б Семерка
источник

Ответы:

34
  1. Поскольку терминалы обычно не запускают оболочки входа по умолчанию. У них также обычно есть опции для запуска оболочек входа в систему, которые делают источник .profile.
  2. Для контроля поведения логинов оболочек.
  3. Зависит от оболочки. Для bash, посмотрите набор файлов запуска .
  4. Не в каком-то смысле (например, обновление записей для входа).
  5. Если у вас есть папка с именем binв $HOME, по умолчанию .profileдля Ubuntu делает добавить его в свой PATH. Так .profileкак он получен при входе в систему (даже при входе в систему через GUI), он должен быть частью вашей PATHоболочки , не входящей в систему, которая запускается после повторного входа в систему. Это не неправильно, если каталог появляется дважды PATH, см. Этот вопрос U & L для деталей.
Мур
источник
3
ОК, теперь это имеет смысл. Необходимо повторно войти в GUI, чтобы увидеть изменения в .profile.
B Семь
1
@BSeven, вы всегда можете получить его вручную для каждой оболочки командной строки: . .profileили source .profile.
Муру
. .profileэто круто, и я никогда не видел это раньше. Не удалось найти много информации о команде периода. Можете ли вы предоставить ссылку и ссылки на любые другие полезные ярлыки? Спасибо!
B Семь
1
@BSeven для команд оболочки, таких как .или source, вы можете использовать help:, help .например. В общем, см. Руководство для начинающих по TLDP, глава 3 . Руководство Bash для начинающих в некоторых местах несколько устарело, но хорошо для начала. Или посмотрите другие ссылки в одном из моих других ответов .
Муру
8

Я обнаружил, что должен был отредактировать профиль по умолчанию. В терминале выберите «Настройки»> «Профили»> «Правка»> «Команда»> «Выполнить команду как оболочку входа».

После этого новые терминалы получат скрипт .profile .

введите описание изображения здесь

Billious
источник
1
IIUC это хак, потому что обычно предполагается, что .profile был получен до запуска терминала с графическим интерфейсом, и он избыточен, чтобы получать его снова каждый раз, когда вы запускаете окно терминала.
Му Разум