У меня есть guest
учетная запись в моей системе Debian с рабочим столом XFCE.
Он имеет файл ~/.profile
добавленный по умолчанию. Последние несколько строк этого файла:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
echo .profile executed
Последняя команда echo
добавлена мной. Я гарантировал, что $HOME/bin
существует.
guest@debian:~$ ls -ld $HOME/bin
drwxr-xr-x 2 guest guest 4096 Jan 9 09:42 /home/guest/bin
После загрузки моей системы Debian я захожу на рабочий стол XFCE, используя guest
учетную запись, и запускаю терминал (xfce4-терминал). Но я не вижу никаких доказательств того, что ~/.profile
был выполнен.
guest@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
man bash
ясно дает понять, что ~/.profile
читается и выполняется в интерактивной оболочке входа в систему или неинтерактивной оболочке с параметром --login
. ~/.bashrc
выполняется в интерактивной оболочке, не входящей в систему, поэтому вполне нормально, что когда xfce4-терминал запускает bash, ~/.profile
не выполняется.
Если ~/.profile
не выполняется при запуске нового Терминала, почему PATH
обновляется в ~/.profile
?
Разве Debian не должен предоставлять обновление PATH
в ~/.bashrc
чтобы оно было доступно пользователю, когда пользователь запускает терминал?