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

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

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

вы можете создать свой .bash_profile в Ubuntu, но затем .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 .profilefor file in /etc/profile "$HOME/.profile"; do  if [ -f "$file" ]; then    source_with_error_check "$file"  fidone

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

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

ln -s ~/.profile ~/.bash_profile

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

Отсутствует .профиль?

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

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

или

# Remember the note abovecp /etc/skel/.profile ~/.bash_profile

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

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

Лучший ответ для использования ~/.profile вместо ~/.bash_profile у меня это не сработало.

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

Просто:

vim ~/.bashrc

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

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

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

http://stefaanlippens.net/bashrc_and_others

возможный дубликат Я не могу найти .bash_profile

Вместо этого вы должны использовать ~/.profile.

Довольно часто некоторые конфигурационные файлы (или даже каталоги) отсутствуют. В этом случае программное обеспечение, которое должно их считывать, будет использовать конфигурацию по умолчанию и / или считывать другие источники для получения конфигурации. Если вы хотите изменить файл конфигурации, который не существует, просто сначала создайте его.