Die man-page der Bashhat mehrere Abschnitte zu dem Thema, und es geht so los:
INVOCATION A login shell is one whose first character of argument zero is a -, or one started with the --login option.
An interactive shell is one started without non-option arguments and without the -c option whose standard input and error are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.
Ich liebe es, denn man muss dann schauen was jene Option bewirkt, und diese, und dann meint man, man hätte es, aber dann wird das andere Startverhalten erklärt, und bei flüchtiger Betrachtung sieht das eigentlich genauso aus. Man müsste es mit viel Geduld und vielleicht einer Tabelle und spitzem Bleistift genau analysieren, was ich vielleicht machen würde, wenn ich ein Problem zu lösen hätte, aber ich bin noch keinem Problem wg. unterschiedlicher Eigenschaften von interaktiver xterm-Shell und Loginshell begegnet.
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists.
When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of /etc/bash.bashrc and ~/.bashrc.
Dem entnehme ich, dass, als interactive login shell gestartet, 2 Konfigurtionsdateien gelesen werden, /etc/profile, und ~/.bash_profile (außer ...), während interactive shell that is not a login shell /etc/bash.bashrc und ~/.bashrc (außer ...).
Nur ist ja bash i.d.R. beides, also keine interaktive Shell, die keine Loginshell ist. Mir widerstrebt es zunächst ein neu gestartetes xfterm4 als Loginshell zu bezeichnen, weil ich ja schon eingeloggt bin, aber auf einem Multithreaded-Multiuser-System könnte man auch sagen, dass dies ein zusätzlicher Login für das System ist.
Man wird ja ganz wuschig!
Wenn ich mir den Output von last ansehe, dann scheint mir das Starten einer weiteren Shell als Login zu zählen, obwohl ich den Eindruck habe, schon eingeloggt zu sein - ich gebe ja meinen Namen u. mein Passwort nicht erneut ein.