Let's say, I opened a terminal and entered / executed some shell commands.

But I didn't invoke explicitly Bash or any other shell.

What shell was used by default?

5 Answers

The one specified on your line in /etc/passwd (it is a : separated line and the shell is the final one).

For example mine:

chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash 

Here it is /bin/bash (the Ubuntu default)

You can also use chsh:

$ chsh Password: Changing the login shell for chris Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: 

This is telling me my shell is /bin/bash and letting me change it.

Finally, echo $SHELL will do the same:

$ echo $SHELL /bin/bash 
7

typing the following will display what shell the terminal opened with:

echo $SHELL 

However, to find out what shell you are currently in (you may have changed it) type

ps -p $$ 

e.g. you will see that the shell is bash in the example output

 PID TTY TIME CMD 3500 pts/0 00:00:01 bash 

Another method is to use

echo $0 

this will simply return the name of the current shell.

2

GNU Bash is the shell used by default in terminals on Ubuntu. However when scripts are executed on system boot then dash is used, as it is dash that is /bin/sh.

This is defined in the $SHELL environmental variable. You can check by typing echo $SHELL in the terminal.

0

By default it's bash:

env | grep ^SHELL= 

In most cases will produce

SHELL=/bin/bash 
2

To get file path of current shell executable one can use

readlink -f /proc/$$/exe 

Some possible outputs are:

  • /bin/bash
  • /usr/bin/bash
  • /usr/bin/zsh
  • /home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy