Reference

chsh(1)

change your login shell

NAME

chsh - change your login shell

SYNOPSIS

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

DESCRIPTION

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.

OPTIONS

-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. (Short option -h is used since version 2.30; older versions used the now-deprecated -u).

-V, --version

Display version and exit. (Short option -V is used since version 2.39; older versions used the now-deprecated -v).

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.

AUTHORS

Salvatore Valente <[email protected]>

SEE ALSO

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

REPORTING BUGS

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

AVAILABILITY

The chsh command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

History

--help since Debian 4.0 (Etch); --list-shells since Arch Linux 2026-11-01; --shell since Debian 4.0 (Etch); --version since Arch Linux 2026-11-01; -V since Arch Linux 2026-11-01; -h since Debian 4.0 (Etch); -l since Arch Linux 2026-11-01; -s since Debian 4.0 (Etch).

--root until Debian 13 (Trixie); -R until Debian 13 (Trixie); -u until Debian 1.2 (Rex); -v until Debian 1.2 (Rex).