По моему у ~/.profile
меня есть последний блок, который должен загрузить мои личные, bin/ directory
как это:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Но, похоже, не загружено:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Почему это не работает? (Моя оболочка bash.)
Редактировать для тигра
echo $0 => bash
echo $HOME => /home/student
whoami => student
less /etc/*-release =>
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
.profile
см. Askubuntu.com/questions/284640 .-x
флаг, переданный bash и увидев, где PATH сброшен. Также вам необходимоexport PATH="$HOME/bin:$PATH"
предоставить его для последующих процессов.Ответы:
С вершины
~/.profile
:Так (если вы используете в
bash
качестве оболочки) Я предполагаю , что либо~/.bash_profile
или~/.bash_login
в вашей системе. Выберите один и отредактируйте его, чтобы включить:Затем сохраните и /
source ~/.bash_login
или выйдите из системы и снова войдите в систему.Редактировать :
Вы говорите, что оба
~/.bash_profile
и~/.bash_login
оба отсутствуют в вашем$HOME
. Я думаю, что нам нужно подтвердить несколько вещей. Пожалуйста, опубликуйте результаты следующего в вашем оригинальном вопросе:Изменить 2 :
Лично я не знаю, почему
~/.profile
не включается в ваше дело на основании предоставленной информации и документации. Во время тестирования я заметил, что мой~/.profile
сканируется при входе,ssh
но не при запуске нового терминала.Но есть простое решение, позволяющее
$HOME/bin
быть включенным в вашу интерактивную оболочку. Отредактируйте (создайте, если не присутствует)~/.bashrc
и добавьте в него следующую строку:Сохранить, выйти и снова войти в систему, или
source ~/.bashrc
.export
Линия может быть расширена , чтобы проверить,$HOME/bin
существует ли вам нравится с:Почему
~/.bashrc
вместо другого файла? Личные предпочтения и, кажется, более надежны.источник
~/.bash_profile
ни другого~/.bash_login
. На мой~
есть только.bash_history
и.bash_logout
(и конечно же.profile
).~/.profile
пропускается.В правила интернализация Стартовые файлы оболочки сложны . Вполне вероятно, что с вашей настройкой,
.profile
не включается, когда вы открываете новый терминал в сеансе X (попробуйте поместитьecho .profile
внутрь.profile
и посмотреть, появляется ли сообщение при запуске оболочки).следует перезагрузить профиль вручную.
Вход и выход из X также должен вызывать
.profile
загрузку.Кроме того, вы можете сделать
. $HOME/.profile
из.bashrc
(при использовании защиты на основе переменных для предотвращения двойного включения), чтобы убедиться, что.profile
всегда включен, когда вы запускаете оболочку.(Вам не нужно,
export PATH
посколькуPATH
это уже экспортированная переменная, и изменение ее значения не изменит ееexport
статус.)источник
[ -z "$has___profile" ] || return; has__profile=1
), поэтому я не получаю бесконечные циклы и оба,.profile
и.bashrc
(только если определен BASH_VERSION), независимо от того, как я туда попал.bash -l
загрузит.profile
(если не какая-то странная конфигурация). Кроме того, PATH должен быть правильно установлен, когда пользователь входит в систему. Это означает, что в используемом «диспетчере отображения» (dm): gnome, KDE, xfce, lxde и т. Д.Если вы хотите
.profile
загрузить все, что вам нужно, это запустить оболочку входа в систему:Этого должно быть достаточно для текущей сессии. Вы можете сравнить PATH до и после запуска входа в систему, чтобы подтвердить разницу.
Для более постоянного решения вам нужно, чтобы оболочка входа была запущена в какой-то момент до запуска вашего терминала (консоли). Вход в систему под определенным пользователем происходит через некоторый dm (менеджер дисплеев) (gnome, kde, xfce, lxde и т. Д.). Задача любого из них - изменить переменную окружения PATH в соответствии с вашими потребностями.
Например, для xfce решение состоит в том, чтобы изменить
xinitrc
:Для gnome кажется, что файл для изменения есть
~/.pam_environment
.А для KDE, следуйте этому руководству , чтобы создать файл, вы можете использовать этот код:
источник