Every Linux user has a default shell assigned to it at the time of user creation. But sometimes you may want to change the default shell for logged in user or another user in Linux. In this article, we will look at how to change default shell in Linux.
How to Change Default Shell In Linux
Here are the steps to change default shell in Linux.
1. List all shells
Linux systems generally come loaded with multiple shells. Open terminal and run the following command to list all the available shells in your system.
$ cat /etc/shells
You should see an output similar to the following.
/bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash
It lists the full path for each shell such as bash, cshell, etc. Please note the full path to the shell of your choice, as you will need to use it in the next step.
2. Change default shell
We will use chsh command, created specifically to change user’s default shell. Let us say you want to change default shell to csh. In this case, enter the following command mentioning the full path to shell after chsh -s
$ sudo chsh -s /bin/csh OR $ sudo chsh --shell /bin/csh
Please note, you need to mention the full path to the shell of your choice, that you had noted in previous step.
The above command will change shell of only current user that you have logged in as. If you want to change the shell of another user (e.g. test_user), you need to mention that username after the new shell’s path, as shown below in bold
$ sudo chsh -s /bin/csh test_user OR $ sudo chsh --shell /bin/csh test_user
Please note, you can change shell for another user only if you are logged in as root or user with sudo privileges.
You can also find out the full path to a shell using type command. Here is an example to find out the full path of cshell.
$ sudo type -a csh /bin/csh
3. Verify New Shell
The /etc/passwd contains login information about every user on your system that has access. It also contains the information about default shell for each user. You can run grep command searching for your username in it, to find out the latest default shell. It will be mentioned at the end of the output, highlighted in bold below.
$ grep "^${USER}" /etc/passwd ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/csh
If you need more information about chsh command, just use man command
$ man chsh
In this article, we have learnt how to change default shell of Linux user using chsh command.
Also read:
How to Install Moodle with NGINX in Ubuntu
How to Download File Using Python
How to Run CGI Script in Apache
How to Create Permanent Alias in Linux
How to Give User Access in Linux
Related posts:
Sreeram has more than 10 years of experience in web development, Python, Linux, SQL and database programming.