Your company here, and a link to your site. Click to find out more.

chsh - Man Page

change your login shell

Examples (TL;DR)


chsh [-s shell] [-l] [-h] [-V] [username]


chsh is used to change your login shell. If a shell is not given on the command line, chsh prompts for one.

chsh supports non-local entries (kerberos, LDAP, etc.) if linked with libuser, otherwise use ypchsh(1), lchsh(1) or any other implementation for non-local entries.


-s,  --shell shell

Specify your login shell.

-l,  --list-shells

Print the list of shells listed in /etc/shells and exit.

-h,  --help

Display help text and exit. The short options -h have been used since version 2.30; old versions use deprecated -u.

-V,  --version

Print version and exit. The short options -V have been used since version 2.39; old versions use deprecated -v.

-h, --help

Display help text and exit.

-V, --version

Print version and exit.

Valid Shells

chsh will accept the full pathname of any executable file on the system.

The default behavior for non-root users is to accept only shells listed in the /etc/shells file, and issue a warning for root user. It can also be configured at compile-time to only issue a warning for all users.

Exit Status

Returns 0 if operation was successful, 1 if operation failed or command syntax was not valid.


Salvatore Valente

See Also

login(1), login.defs(5), passwd(5), shells(5)

Reporting Bugs

For bug reports, use the issue tracker at https://github.com/util-linux/util-linux/issues.


The chsh command is part of the util-linux package which can be downloaded from Linux Kernel Archive.

Referenced By

chfn(1), dash(1), groupadd(8), groupdel(8), groupmems(8), groupmod(8), intro(1), passwd(5), shells(5), useradd(8), userdel(8), userhelper(8), usermod(8), yppasswd(1).

2024-01-31 util-linux 2.40