An interactive, non-login bash shell will copy the parent environment and execute:
Non-interactive shells only inherit the environment of the parent. Many distributions use /etc/bashrc for system-wide non-interactive shells.
/etc/profile /etc/profile.d /etc/bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
In addition to the shell startup scripts, your desktop environment can specify startup commands. Gnome, KDE and other standardize on:
~/.config/autostart (for a user) /etc/xdg/autostart (systemwide)