Довольно часто отсутствует какой-либо файл конфигурации (или даже каталоги). В этом случае программное обеспечение, которое должно их читать, будет использовать конфигурацию по умолчанию и / или читать другие источники для получения конфигурации. Если вы хотите изменить несуществующий файл конфигурации, просто сначала создайте его.
Бакуриу
Ответы:
84
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
.profile не работает для меня. Я должен был отредактировать .bashrc vim ~/.bashrcтогда. ~/.bashrc
Нахид
Использование .bash_profile не работает в Ubuntu. В качестве оболочки входа в систему с графическим интерфейсом используется Dash, а не Bash, поэтому bash_profile не читается.
Джонатан Хартли
Если вы редактируете свой .profile, вам необходимо выйти и снова войти, чтобы увидеть изменения.
Джонатан Хартли,
8
При вызове оболочки оболочки bash ищет свои конфигурационные файлы в следующем порядке:
[0]~/.bash_profile[1]~/.bash_login[2]~/.profile
После нахождения первого, он перестает искать других, поэтому, если есть .bash_profileв моем $HOMEbash, не будет искать .bash_loginи .profileбольше.
Из этих трех имен файлов, Ubuntu по умолчанию использует, .profileвы можете переименовать его, .bash_profileесли хотите:
mv ~/.profile ~/.bash_profile
Теперь , если мы открываем новую Баш оболочку , используя bash -l, su - $USER, sudo -u $USER -iили любые другие команды , которая работает Баш как шелл, ~/.bash_profileполучат источники.
Важно отметить:
То, о чем я говорил до сих пор, относится только к самому Bash, когда вы входите в систему из графического интерфейса, менеджер дисплея отвечает за поиск правильных файлов.
Ubuntu использует в gdm3качестве диспетчера отображения, если мы посмотрим: /etc/gdm3/Xsessionмы видим, что ни один из файлов не будет получен, кроме .profile:
# First read /etc/profile and .profilefor file in/etc/profile "$HOME/.profile";doif[-f "$file"];then
source_with_error_check "$file"fidone
поэтому, если вы используете графический интерфейс для входа в систему, сохраните файл под .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_profile, то почему он не делает этого в Ubuntu? Ubuntu модифицировал Bash? Это кажется странным. man bashв Ubuntu все еще описывает, как он будет искать .bash_profile в первую очередь.
Джонатан Хартли,
.bash_profileСначала он ищет, что не может найти его (потому что он не существует), затем ищет, .bash_loginне может найти его снова (потому что Ubuntu не использует эти два имени), в конце концов, он ищет, .profileи да, это так. Так что, если вы создаете .bash_profilein, ~то вы перезаписываете Ubuntu ~/.profile, это стандартное поведение bash, здесь ничего не было изменено.
Равексина
Правильно, я тоже так думал сначала! И то, что вы описываете, происходит на RHEL. Но на Ubuntu это не так. Если я создаю .bash_profile, это не читается. Я только что понял, что это потому, что Ubuntu больше не использует Bash в качестве оболочки входа в систему с графическим интерфейсом. Вместо этого он использует «Dash». Я думаю, что это было правдой с 18.04.
Джонатан Хартли,
Вы упускаете суть здесь. На самом деле мы говорим о самом bash, что я говорю здесь о том, что Ubuntu создает «.profile», а не другие, поэтому, если мы откроем новую оболочку bash (login shell), это порядок чтения этих файлов, не так ли? Неважно, какой дистрибутив мы используем. :)
Равексина
Если читатели переименуют .profile в .bash_profile, как подсказывает ваш ответ, то для людей в Ubuntu этот файл не будет прочитан ни при входе в систему, ни при открытии терминала. Вы сломали их систему. Единственный способ чтения файла - это если они запускают сеансы bash с аргументом --login, чтобы явно сделать его оболочкой входа. Это никогда не произойдет автоматически на их рабочем столе.
Джонатан Хартли,
5
Это означает, что файл не существует. Но вы можете создать файл и bashвыполнить / использовать его, если bashон вызывается как оболочка для входа. Поэтому вы всегда входите в систему через оболочку (например, через ssh).
Если вы хотите, чтобы контент выполнялся каждый раз, когда вы открываете терминал, вам следует .bashrcвместо этого изменить файл.
В подлинном Linux .profile применяется, когда вы входите в GUI, подключаетесь удаленно или входите в консоль, то есть после нажатия ctrl + shift + F2. Предполагается, что он представляет начальный момент входа в систему на компьютере, создавая оболочку, которая является родительской для всех других процессов, которые вы впоследствии создаете. Я подозреваю, что в WSL такого понятия нет, поэтому ваш .profile никогда не будет прочитан.
Джонатан Хартли
мне то же. ~/.profileпросто не загружается по умолчанию в Ubuntu 18.04
javapowered
0
Если вы имеете в виду .bashrc, вы найдете его в своей домашней папке. Если его там нет, вы можете скопировать его из папки / etc / skel в вашу домашнюю папку.
Если вам нужна дополнительная информация по этому вопросу, пожалуйста, посетите страницу stefaan lippens.
~/.profile
вместо этого.Ответы:
Ubuntu использует
~/.profile
.Вы можете создать свой
.bash_profile
в Ubuntu, но тогда.profile
не будет читаться.Если мы читаем .profile содержание:
выход
Так что используйте
~/.profile
вместо~/.bash_profile
источник
vim ~/.bashrc
тогда. ~/.bashrc
При вызове оболочки оболочки bash ищет свои конфигурационные файлы в следующем порядке:
После нахождения первого, он перестает искать других, поэтому, если есть
.bash_profile
в моем$HOME
bash, не будет искать.bash_login
и.profile
больше.Из этих трех имен файлов, Ubuntu по умолчанию использует,
.profile
вы можете переименовать его,.bash_profile
если хотите:Теперь , если мы открываем новую Баш оболочку , используя
bash -l
,su - $USER
,sudo -u $USER -i
или любые другие команды , которая работает Баш как шелл,~/.bash_profile
получат источники.Важно отметить:
То, о чем я говорил до сих пор, относится только к самому Bash, когда вы входите в систему из графического интерфейса, менеджер дисплея отвечает за поиск правильных файлов.
Ubuntu использует в
gdm3
качестве диспетчера отображения, если мы посмотрим:/etc/gdm3/Xsession
мы видим, что ни один из файлов не будет получен, кроме.profile
:поэтому, если вы используете графический интерфейс для входа в систему, сохраните файл под
.profile
именем, иначе вы можете пропустить некоторые переменные и настройки в вашей среде.Я думаю, что лучший вариант - создать символическую ссылку на
.profile
:Теперь ваши данные живут
.profile
,gdm
ничего не пропускают, bash загружает,.bash_profile
что на самом деле.profile
, и редактируя каждую из них, вы получаете тот же результат.Отсутствует .profile?
Если у вас нет,
.profile
то возьмите его отсюда:или же
источник
man bash
в Ubuntu все еще описывает, как он будет искать .bash_profile в первую очередь..bash_profile
Сначала он ищет, что не может найти его (потому что он не существует), затем ищет,.bash_login
не может найти его снова (потому что Ubuntu не использует эти два имени), в конце концов, он ищет,.profile
и да, это так. Так что, если вы создаете.bash_profile
in,~
то вы перезаписываете Ubuntu~/.profile
, это стандартное поведение bash, здесь ничего не было изменено..bash_profile
, это не читается. Я только что понял, что это потому, что Ubuntu больше не использует Bash в качестве оболочки входа в систему с графическим интерфейсом. Вместо этого он использует «Dash». Я думаю, что это было правдой с 18.04.Это означает, что файл не существует. Но вы можете создать файл и
bash
выполнить / использовать его, еслиbash
он вызывается как оболочка для входа. Поэтому вы всегда входите в систему через оболочку (например, черезssh
).Если вы хотите, чтобы контент выполнялся каждый раз, когда вы открываете терминал, вам следует
.bashrc
вместо этого изменить файл.источник
/etc/skel/
каталога..bash_profile
отсутствия (и не работает) Ubuntu в комментариях к другим ответам.Топ ответа использовать
~/.profile
вместо того~/.bash_profile
, чтобы не работать для меня.Модификация
.bashrc
сработалаТолько что:
Примечание: я использую Ubuntu WSL.
источник
~/.profile
просто не загружается по умолчанию в Ubuntu 18.04Если вы имеете в виду .bashrc, вы найдете его в своей домашней папке. Если его там нет, вы можете скопировать его из папки / etc / skel в вашу домашнюю папку.
Если вам нужна дополнительная информация по этому вопросу, пожалуйста, посетите страницу stefaan lippens.
http://stefaanlippens.net/bashrc_and_others
источник