~/.bashrc
и /etc/bash.bashrc
запускаются каждый раз, когда запускается интерактивная bash
оболочка.
Напротив, ~/.profile
и /etc/profile
запускаются каждый раз, когда запускается любая оболочка входа . Таким образом, это не обязательно должна быть bash
оболочка, но она должна быть оболочкой входа (и многие bash
экземпляры оболочки не являются оболочками входа ).
bash
Оболочка представляет собой оболочку , где оболочка программы , которая обеспечивает это bash
, а не какой - либо другой программы, например dash
.
- Оболочка входа в систему - это оболочка, которая запускается автоматически в результате входа в систему, чтобы обеспечить пользовательский интерфейс (графический или командную строку) для входа в систему. При выходе из оболочки входа в систему регистрация прекращается.
Следовательно, добавление комментария, который добавляет записи PATH
в bashrc
файл:
Ничего не делать, когда оболочки нет bash
, что часто бывает. Например, PATH
не будет изменено, когда вы находитесь в графическом сеансе входа в систему. Помните, PATH
это не просто используется программами командной строки.
Добавляйте его снова и снова при наличии вложенных bash
оболочек. Таким образом, если вы запускаете оболочку в оболочке - что является очень распространенным по разным причинам - тогда у вас будет несколько ~/bin
записей, размещенных на вашей PATH
. Это PATH
затрудняет чтение переменной среды, а иногда и снижает производительность.
Это было бы нежелательно. Таким образом было бы неправильно поместить это в bashrc
файл; это действительно принадлежит ~/.profile
. ~/.profile
это правильное место для:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Оболочки, не входящие в систему, имеют в качестве своих родительских оболочек (или что-то, что ведет себя как оболочка входа в систему) и наследуют большинство переменных среды, в том числе PATH
от этой оболочки входа. Таким образом, введение команд изменения пути ~/.profile
требует, чтобы вы вышли из системы и снова вошли в нее, чтобы они были эффективными, но это также влияет на среду оболочек без регистрации (а также на среду для программ, которые не являются оболочками, поскольку каждая программа получает свою собственный набор переменных окружения - называемый его «средой» - унаследованный от его родительского процесса).