在MacOSX中使ZSH成为默认Shell

时间:2015-06-24 19:03:10

标签: bash shell zsh

我在我的MAC上安装了ZSH。现在我想把它变成默认的shell而不是BASH。但我似乎遇到了以下错误

Harshas-MacBook-Pro:~ harshamv$ echo $SHELL
/bin/bash
Harshas-MacBook-Pro:~ harshamv$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell

4 个答案:

答案 0 :(得分:124)

正确的答案应该解决您的问题:

  

chsh:/ usr / bin / zsh:非标准shell

这种情况的原因是因为chsh只接受文件/ etc / shells中定义的shell,您可以通过阅读chsh的手册看到:

  

chsh将接受任何可执行文件的完整路径名   系统。但是,如果shell不是,它将发出警告   列在          / etc / shells文件。

要解决此问题并将zsh设为默认shell,您应该:

$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)

显然,我认为zsh在你的道路上。例如,如果您选择使用zsh安装最新的brew install zsh,此解决方案也会有效。

编辑 (感谢ThisIsFlorianK发表评论)

根据您的shell设置,您可能会收到一条消息/etc/shells: Permission denied。您可以找到有关此问题的信息here. 要解决此问题,请改用以下内容:

$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)

答案 1 :(得分:69)

3个简单步骤:

  1. which zsh这为您提供了zsh的路径
  2. 然后chsh -s /bin/zsh或替换zsh的路径(如果不同)
  3. 重启您的计算机

答案 2 :(得分:37)

我能够通过以下方式实现这一目标:

  1. 转到系统偏好设置
  2. 点击"用户&组"
  3. 点击锁定进行更改。
  4. 右键单击当前用户 - >高级选项
  5. 在下拉列表中将登录shell更改为/ bin / zsh。
  6. 打开一个新终端并使用echo $SHELL
  7. 进行验证

答案 3 :(得分:5)

在我的MacBook工作中,我必须这样做:

sudo chsh -s /usr/local/bin/zsh my_user_name

然后我必须创建一个.bash_profile文件,让我的终端每次打开时都切换到z-shell:

touch ~/.bash_profile
echo 'export SHELL=$(which zsh)' >> ~/.bash_profile
echo 'exec $(which zsh) -l' >> ~/.bash_profile

最后一个想法是借用from here