Ein praktischer Unterschied besteht darin, wie die resultierende Shell-Umgebung ihre anfänglichen Konfigurationseinstellungen liest.
/ usr / bin / login gibt eine Login-Shell an. Ich denke, dass dies den Authentifizierungsprozess auslöst, aber Sie sehen möglicherweise keine sichtbaren Authentifizierungsinteraktionen, wenn Sie bereits angemeldet sind. Wenn Ihre Login-Shell nicht bash ist, wird sie beim Login natürlich anstelle von bash aufgerufen.
bash ist eine Shell, die weiß, ob sie als Login-Shell aufgerufen wurde oder nicht. Eine Bash-Login-Shell liest .bash_profile oder .bash_login oder .profile - nur eine in dieser Reihenfolge. Eine Nicht-Login-Shell liest kein .profile, sondern liest von .bashrc. Dies ist ein normales bash-Verhalten auf modernen * nix-Plattformen, aber es kann schwierig sein, seltsame Verhaltensweisen zu erkennen, wenn Sie nicht verstehen, was los ist.
Sie können beispielsweise eine "Login" -Shell über das Terminal öffnen und einen Satz Umgebungsvariablen (z. B. von Ihrem .profile) abrufen, dann "bash" eingeben und einen völlig anderen Satz von Variablen (von .bashrc plus) erhalten alle Variablen, die exportiert wurden, abzüglich der Variablen, die nicht PATH kann insbesondere bei wiederholten oder fehlenden Einträgen verstümmelt werden.