How to change default shell in Linux
- You can use command
chshto change your default shell, below command changes default shell from bash to zsh
chsh -s $(which zsh)
You need sudo/root password to do this.
- To list available shells in your system
- How to verify if I changed my default shell successfully.
getent passwd yourusername
Note: Your need log out then log in again to enable this change
How about I don’t have sudo/root access or it’s not a local account
Theoretically you can’t change your default shell without sudo/root access, you need to ask someone like IT to do it for you.
But you can try to modify your current shell’s personal configuration file to switch another shell you want.
Below is an example to switch from bash to zsh
Update your ~/.bashrc
echo zsh >> ~/.bashrc
Open a new terminal or re-login
Add below line into .zshrc
because some applications may depend on environment variable
[j@centos]~% echo $SHELL /usr/bin/zsh [j@centos]~% echo $0 zsh
How to change default shell for another user
sudo chsh -s /usr/bin/zsh username
Change default shell by modifying /etc/passwd
sudo vi /etc/passwd
chsh does is updating file
/etc/passwd , so you also can do it by updating that file directly.