You should change it by running chsh -s /path/to/the/shell/that/you/like
and then logging out and logging in again. You should NOT do it by configuring the "Shells open with: Command (complete path):" setting in Terminal.app settings.
If you attempt to change it by configuring the "Shells open with: Command (complete path):" setting in Terminal.app settings but leaving your default shell as is (that is, not running chsh -s /path/to/the/shell/that/you/like
), you will be in a world of pain. You will keep having inconsistencies between the behavior that you get on Terminal.app vs. the behavior of the (other) apps that you use, since the (other) apps that you use will honor the default shell configuration that's set by running chsh -s /path/to/the/shell/that/you/like
. The "Shells open with: Command (complete path):" setting in Terminal.app settings is completely irrelevant for the (other) apps that you use.
By the way, an alternative to running chsh -s /path/to/the/shell/that/you/like
is to:
- Open System Settings.
- Select "Users and Groups".
- Right click on the user whose shell that you like to change and select "Advanced Options...".
- In the pop-up that opens, find "Login shell" and change its value.
As the warning in the pop-up suggests, you should restart your computer (or at least log out from your user and log back in again) for your changes to take effect. You might think that it's OK not to log out and log back in, since if you open a new tab on Terminal.app after these changes, you will see that your shell has actually been changed (assuming that your "Shells open with:" setting on Terminal.app settings were set to "Default login shell"). However, the reason for this is because Terminal.app always launches a login shell. However, the (other) apps that you use will most likely launch regular (non-login) shells, which means that they will use the configuration files of the previous login shell, since that's the one that's currently active on the system. Hence, you need to log out and log in for the login shell that's active on the system to change.