Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The default shell in freebsd is SH and I really can't stand it: autocomplete is very limited, and rehash commands kill me. I feel like a one armed and one legged man...

How can I change the shell globally to zsh or bash - for root and for all current and future users?

share|improve this question
Just tried this to update an existing user in FreeBSD 9.1 and the system prompted me to use the following: chpass -s /usr/local/bin/bash USER – commbot Feb 26 '13 at 7:18
up vote 15 down vote accepted

For existing users:

chsh USER -s SHELL
chsh root -s /usr/local/bin/bash

For future users:

  • Edit "/etc/pw.conf" defaultshell keywords
  • When use adduser(), choose necessary shell
share|improve this answer
...but be careful about changing the root shell to something from the ports tree (e.g., /usr/local/bin/bash), because if you screw something up during a port upgrade you may find yourself without root access. – larsks Jan 29 '11 at 14:50
s/feature/future/? – Dennis Williamson Jan 29 '11 at 14:58
larsk: zsh can be build statically right..? [at least I saw parameter in "make config"] so as far as I understand, it's a binary with all dependencies build in? so can I put /usr/local/bin/zsh to /bin/zsh ? root user can use old version it's ok.. then it would be safe? – holms Jan 29 '11 at 15:27
Building it statically and copying it into /bin is probably the safest thing you can do. I just leave root's shell set to /bin/sh and then exec bash on those rare occasions when I really need to log in as root (more often I just use sudo from my user account). – larsks Jan 29 '11 at 15:33
Note this must be run as root (or with sudo). – Sopalajo de Arrierez Jan 7 at 1:24

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.