Sprachlich ist mir der Unterschied der Shell-Arten nicht klar, da ich
mich doch in beiden einloggen muss - ist also eine Login-Shell quasi
eine "Remote-Shell" und eine nicht-login-Shell eine lokale?
Die Login-Shell ist dazu da, den initialen Kontext einer
Benutzersession herzustellen. Dazu gehört, so Dinge wie PS1
(Shellprompt), HOME, USER oder MAIL zu setzen, aber auch z.B. eine
Message of the day anzuzeigen, "You have new mail" oder sowas
auszugeben, etc.
Nicht-Login Shells sind solche Shells, die während einer Sitzung oder
während der Ausführung eines Skriptes automatisch erzeugt werden,
z.B. durch Konstrukte wie
( cmd1 ; cmd2 ) | cmd 3
Hier möchte man dagegen i.d.R. keine veränderten Environment-
Variablen und keine Ausgaben auf der Konsole, da das die Skript-
Ausführung stören könnte.