CHSH(1)
๐ธ chsh(1) โ the chsh manual, bestie edition ๐ธ
okay so real quick: this is the man page for chsh, section 1 of the manual (User Commands, if you're keeping score ๐
). it's short, it's sweet, and it's gonna change your entire login shell situation. let's go โจ
โจ NAME โจ
chsh โ change your login shell ๐
like, literally that's the whole job. iconic honestly.
๐ SYNOPSIS ๐
chsh [-s shell] [-l] [-h] [-V] [username|UID]
that's it. that's the whole vibe. no cap.
๐ฆ DESCRIPTION ๐ฆ
chsh is how you change your login shell, periodt. if you don't hand it a shell right there on the command line, it'll just prompt you for one โ very "i'll wait, take your time bestie" energy ๐ซถ
okay and this part matters: chsh supports non-local entries (kerberos, LDAP, etc.) if it's linked with libuser. if it's not? then you're gonna want ypchsh(1), lchsh(1), or literally any other implementation that handles non-local entries. iykyk ๐ญ
๐ OPTIONS ๐
-s,--shellshell โ tell it what your login shell should be. that's the one. that's the main character option ๐-l,--list-shellsโ prints out the list of shells that live in/etc/shells, then dips and exits. very "here's the menu, i'm out" of it ๐-h,--helpโ shows the help text and exits. (the short option-hhas only existed since version 2.30 โ before that it was-u, which is now deprecated. rip-u๐ชฆ)-V,--versionโ shows the version and exits. (short option-Vis a version 2.39 thing โ older versions used-v, which is now deprecated too. they really did a whole glow-up on these flags ๐)
๐ง VALID SHELLS ๐ง
okay so chsh will accept the full pathname of any executable file on the system. any of them. it's very trusting like that ๐
but here's the catch for the non-root girlies: by default, non-root users only get shells that are actually listed in the /etc/shells file. root just gets a warning instead. and heads up โ it can also be configured at compile-time to only issue a warning for all users, so the vibe check on your shell might differ depending on how it was built. just so you know โจ
โญ EXIT STATUS โญ
0โ slayed. operation was successful ๐1โ didn't slay. operation failed, or the command syntax wasn't valid ๐ญ
๐ AUTHORS ๐
Salvatore Valente <svalente@mit.edu> โ thank you for your service king ๐ซก
๐ฅ SEE ALSO ๐ฅ
login(1), login.defs(5), passwd(5), shells(5)
go read shells(5) if you wanna know what's in that file. it's giving necessary context ๐ฆ
๐ REPORTING BUGS ๐
found a bug? bestie, take it to the issue tracker: <https://github.com/util-linux/util-linux/issues>
they'll handle it. probably. no promises but like, that's the process ๐ซถ
๐ AVAILABILITY ๐
the chsh command is part of the util-linux package, which you can download from the Linux Kernel Archive at <https://www.kernel.org/pub/linux/utils/util-linux/>
like, go get it. it's right there. ๐ธ
ngl the whole thing is one of the shorter man pages out there โ but every single flag still matters, so don't sleep on -l before you go switching your shell to something unhinged ๐
and that's a wrap, bestie! this page is from util-linux 2.42.4, dated 2026-09-21, and it's the CHSH(1) manual โ go change that shell, you absolute icon ๐โจ๐ฆ
๐ฆ where this page comes from
- arch rolling: util-linux 2.42.4-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND ISC AND LGPL-2.1-or-later AND LicenseRef-PublicDomain
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms