The explanations here leave me cold. "man bash" tells half the story ...
So there are two distinct modifiers of shells based on how they are invoked. 'login' and 'interactive'
The man page continues (with redactions) ....
As a practical matter there is one
login shell created very early in the login process when gdm or whatever greeter performs the authentication and before the Xsession begins. The controlling terminal at that time is also the session terminal - typically /dev/tty1 on Fedora. That
login shell exits before your desktop appears.
During a Fedora gui login, the one and only
login shell that is created for your login executes,
/etc/profile
~/.bash_profile
The global variables, PATH and such are inherited from this.
But a regular
non-login interactive shell (like in your gnome-terminal) just executes,
~/.bashrc
-------
To make the plot thicker,
the default /etc/profile sources /etc/profile.d/*.sh generally
the default ~/.bash_profile sources ~/.bashrc
the default ~/.bashrc sources /etc/bashrc
the default /etc/bashrc also sources /etc/profile.d/*.sh unless it's a login shell
========
So the login bash shell executes
Code:
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
while the normal fedora interactive non-login shell executes ...
Code:
~/.bashrc
/etc/bashrc
/etc/profile.d/*.sh