У меня есть 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 чтобы оно было доступно пользователю, когда пользователь запускает терминал?
