I want to change my shell from the default bash shell to zsh on my Amazon EC2 instances. How do I go about doing it? Thanks!
Try using the
chsh -s /bin/zsh
You can confirm the location of zsh by running
whereis zsh, or alternatively simply run
chsh -s $(which zsh)
If you want to change the shell for a user account other than the one you're logged into, you'll need to run it as root, so to change john's shell, do:
sudo chsh -s $(which zsh) john
Note that you'll need to log out and log back in for the change to go into effect. If you're using Gnome or some other window manager, you'll need to completely log out of that session as well—simply closing and opening your terminal is insufficient.
sudo vi /etc/passwd
Find the line with your username:
and replace bash with zsh:
Log out and log in back for the changes to take effect.
On Ubuntu, inside GNOME terminal, making changes via chsh won't have the expected effect...
To get over this problem, do this:
- Right click in terminal
- Profiles -> Profile Preferences
- Under "Title and Command" tab, tick "Run a custom command instead of my shell" and provide the path to zsh executable.
- Restart Terminal.
P.S. Don't have 10 reputation to post images, so all texty instructions. :)
I came here to just add more additional information. If you have troubles when install zsh in Amazon Linux AMI by Amazon, like when you run:
sudo chsh $(which zsh) : // chsh command not found
Then you should install util-linux-user:
sudo yum install util-linux-user
(by default Amazon Linux AMI only has lchsh, but I can not figure how it work).
Then run the following command, it should work:
sudo chsh -s $(which zsh) $(whoami)