Я не могу найти.bash_profile в Ubuntu

Я не могу найти .bash_profile в Ubuntu 14.04 по моему /home/user каталог. Я использовал ls -a Команда, чтобы увидеть .bash_profile, но такого файла нет.

5 ответов

Решение

Ubuntu использует ~/.profile,

Вы можете создать свой .bash_profile в Ubuntu, но потом .profile не будет прочитано

Если мы читаем.profile содержание:

cat ~/.profile

выход

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

Так что используйте ~/.profile вместо ~/.bash_profile

При вызове оболочки оболочки bash ищет свои конфигурационные файлы в следующем порядке:

[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile

После нахождения первого, он перестает искать других, поэтому, если есть .bash_profile в моем $HOME Баш не будет искать .bash_login а также .profile больше.

Из этих трех имен файлов Ubuntu по умолчанию использует .profile Вы можете переименовать его в .bash_profile если хочешь:

mv ~/.profile ~/.bash_profile

Теперь, если мы откроем новую оболочку bash, используя bash -l, su - $USER, sudo -u $USER -i или любые другие команды, которые запускают bash как оболочку входа в систему, ~/.bash_profile будет получен.

Важно отметить:

То, о чем я говорил до сих пор, относится только к самому Bash, когда вы входите в систему из графического интерфейса, менеджер дисплея отвечает за поиск правильных файлов.

Ubuntu использует gdm3 в качестве диспетчера отображения, если мы посмотрим на: /etc/gdm3/Xsession мы видим, что ни один из файлов не будет получен, кроме: .profile:

# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
  if [ -f "$file" ]; then
    source_with_error_check "$file"
  fi
done

так что если вы используете графический интерфейс для входа в систему, держите файл в .profile в противном случае вы можете пропустить некоторые переменные и настройки в вашей среде.

Я думаю, что лучший вариант - создать символическую ссылку на .profile:

ln -s ~/.profile ~/.bash_profile

Теперь ваши данные живут в .profile, gdm ничего не пропускает, bash загружает .bash_profile что на самом деле .profileи, редактируя каждый из них, вы получаете тот же результат.

Отсутствует.profile?

Если у вас нет .profile затем возьмите его копию отсюда:

cp /etc/skel/.profile ~/.profile

или же

# Remember the note above
cp /etc/skel/.profile ~/.bash_profile

Это означает, что файл не существует. Но вы можете создать файл и bash выполняет / источник файла, если bash вызывается как оболочка входа Поэтому вы всегда входите в систему через оболочку (например, через ssh).

Если вы хотите, чтобы контент выполнялся каждый раз, когда вы открываете терминал, вам следует изменить .bashrc файл вместо.

Топ ответ для использования ~/.profile вместо ~/.bash_profile не работал для меня.

Изменение .bashrc работал

Просто:

vim ~/.bashrc

Примечание: я использую Ubuntu WSL.

Если вы имеете в виду.bashrc, вы найдете его в своей домашней папке. Если его там нет, вы можете скопировать его из папки / etc / skel в вашу домашнюю папку.

Если вам нужна дополнительная информация по этому вопросу, пожалуйста, посетите страницу stefaan lippens.

http://stefaanlippens.net/bashrc_and_others

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