Я не могу найти .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 в свою домашнюю папку.
Если вам нужна дополнительная информация по этому вопросу, пожалуйста, посетите страницу Стефана Липпенса.
возможный дубликат Я не могу найти .bash_profile
Вместо этого вы должны использовать ~/.profile.
Довольно часто некоторые конфигурационные файлы (или даже каталоги) отсутствуют. В этом случае программное обеспечение, которое должно их считывать, будет использовать конфигурацию по умолчанию и / или считывать другие источники для получения конфигурации. Если вы хотите изменить файл конфигурации, который не существует, просто сначала создайте его.