Shell Environment – What Sets the $SHELL Environment Variable?

defaultsenvironment-variablesshell

Where is the environment variable $SHELL first set on a UNIX system?

How can I find and print all of this type of default settings of my terminal?

Best Answer

Traditionally, by login(1):

ENVIRONMENT
     login sets the following environment variables:

     HOME        The user's home directory, as specified by the password
                 database.

     SHELL       The user's shell, as specified by the password database.

Though these days it might be a window manager or terminal program making those settings, depending on the flavor of unix and how far they've departed from tradition. env will show what's currently set in the environment, which a shell or something else may have altered from the default. However, "terminal settings" are not typically environment variables, and shells like bash or zsh have a set command, and other places they hide settings...

Related Question