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