如何将默认shell更改为ZSH-chsh说“无效的shell”


36

我在我的VM上安装了ZSH,并从源代码编译了它。ZSH的位置是/usr/local/bin/zsh我运行chsh -s /usr/local/bin/zsh它的输出chsh: /usr/local/bin/zsh is an invalid shell。我也尝试了sudo。我该如何更改?



6
@Mikel,不,那个问题是“我不知道chsh”,而不是“ chsh对我不起作用”。
cjm 2014年

Answers:


48

将zsh添加到/etc/shells

command -v zsh | sudo tee -a /etc/shells

现在,您可以使用chsh将zsh设置为shell:

sudo chsh -s "$(command -v zsh)" "${USER}"

请参阅此文档:更改登录外壳



3

首先,检查是否通过以下zsh方式列出了有效的外壳程序

cat /etc/shells

如果zsh未列出,请安装它。例如,如果您使用apt

sudo apt-get install zsh

再次执行步骤1,查看的路径zsh。就我而言,/usr/bin/zsh和都/usr/zsh被列出。正如@StéphaneChazelas在评论中提到的那样,如果您想从头开始编译和安装Shell,请确保在中添加路径/etc/shells

使用更改外壳

chsh -s /usr/bin/zsh

手册页

-s, --shell SHELL用户的新登录Shell的名称。将此字段设置为空白会导致系统选择默认的登录外壳。

注销并再次登录。


是的,如果您将外壳作为OS软件包的一部分安装,则OS软件包通常会将外壳添加到/etc/shells。这里的要点是,如果您手动编译并安装外壳,则还需要手动添加路径/etc/shells
斯特凡Chazelas

好点子。我在想像“ apt”这样的软件包管理器。我已经编辑了答案,以包括您的观点。
周六星期六2015年

不过,这基本上就是其他两个答案所说的。
杰夫·谢勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.