I've been told by numerous people that I shouldn't make each shell I use a login shell. Wether via a TTY, or an Xorg terminal app running bash.. can anyone explain the potential reasoning behind this logic, or debunk it for me? Thanks
The first reason that comes to mind is that you should, in general, follow accepted practices. The way a shell is invoked governs the configuration files it reads. From
Most distributions will place global aliases, variables and shell options in
In addition, the default setup is to run a login shell when you log in and non-login shells thereafter. This makes it easy to set up environment variables or simple jobs that should be executed once in the login shell's setup files (e.g
Finally, it often desired to have different environments set up if the user is logging in through ssh for example and if she is physically present and opening a terminal. By making all your shells login shells, you lose the ability to make that distinction.
Now, it can't be as bad as all that since, if I understand correctly, OSX's terminal app starts login shells by default. However, OSX has been designed that way so the potential problems I've mentioned have presumably been taken care of. That will not be the case if you modify your Linux setup to do so yourself.