Is GNOME Terminal a type of non-login shell?

When you log in to your x session via a display manager or in a tty, /etc/profile is (usually - apparently it is being in your case, though some graphical shells do not read it) sourced by your shell program. After that, a local file (I'm assuming you're using bash here) ~/.bash_profile, ~/.bash_login or ~/.profile will be sourced, and any environment variables defined here will override /etc/profile for the current user. This environment is inherited by any shell you open within the session. This is why we can define environment variables, such as your PATH, in these files.

When you open gnome-terminal, yes by default that starts a non-login shell, but it inherits your user environment already loaded from the login shell or graphical shell. Since ~/.bashrc is sourced when starting an interactive shell (eg opening gnome-terminal), it may be used to override some elements of the environment (such as PS1).

(gnome-terminal itself is an application, not a shell)


short: no

long: gnome-terminal is a terminal. You run a shell in a terminal. You can run either type of shell (login or not) in a terminal (though gnome-terminal makes it harder than other terminals).

Further reading:

  • Bug 71368: gnome-terminal "update utmp/wtmp" option doesn't work when not using gdm
  • Why isn't gnome-terminal a login shell
  • Configure gnome-terminal to start bash as a login shell, doesn't read .bashrc