Q. Can you tell me command to change login shell in Linux / UNIX operating system?
A. You don't have to edit /etc/passwd file to change your shell. You need to use chsh command. It changes the user login shell. This determines the name of the users initial login command. A normal user may only change the login shell for his/her own account, the super user i.e. root user may change the login shell for any account. Following is syntax of chsh command:
chsh -s {shell-name} {user-name}

  • -s {shell-name} : Specify your login shell name. You can obtained list of avialble shell from /etc/shells file.
  • User-name: It is optional, useful if you are a root user.

First, find out available shell list:
$ less /etc/shells
/bin/ash /bin/csh /bin/sh /usr/bin/es /bin/ksh /bin/tcsh /bin/sash /bin/zsh /bin/dash /usr/bin/screen /bin/bash /bin/rbash Now change your shell name to /bin/tcsh:
$ chsh -s  /bin/tcsh
When promoted for password, type your own password. If you just type chsh command, it will prompt for shell name interactively:
$ chsh
Password: Changing the login shell for tv Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: