我已经通过运行以下命令安装了 Zsh:
sudo apt-get install zsh
使用以下 指导为了安装 oh-my-zsh 提供的 Zsh,我尝试将其设置为我的默认 shell,即我运行:
chsh -s $(chsh -l | grep "zsh" -m 1)
这给了我错误:
chsh: invalid option -- 'l'
我跑了:
sudo gedit /etc/shells
因此我可以检查 zsh 是否列在那里,结果确实如此。我还尝试了Florian 的回答对于上一个问题,即:chsh -s /bin/zsh
但echo $SHELL
仍然返回相同的输出:/bin/bash
。/bin/zsh
如果您想知道的话,它确实存在于我的系统中,因为我通过运行/bin/zsh
启动 Zsh 的程序对此进行了测试。
答案1
你可以使用
chsh -s /bin/zsh
它会提示你输入密码。你的默认登录 shell 现在是 /bin/zsh。
man chsh
chsh 命令更改用户登录 shell。这决定了用户初始登录命令的名称。普通用户只能更改自己帐户的登录 shell,超级用户可以更改任何帐户的登录 shell
此命令将永久更改默认登录 shell。
为什么$SHELL 没有改变?!
SHELL 变量由您登录的进程设置。它被设置为 passwd 文件 (/etc/passwd) 中设置的登录 shell 值。它并不反映您当前正在使用的 shell。
要打印正在使用的 shell,你必须运行
echo $0
这将显示所使用的 shell 名称。
那么如何更改 Login Shell
chsh
使用不带选项的命令
$ chsh
Password:
Changing the login shell for maythux
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
现在您就可以输入您的/bin/zsh
。
现在注销然后再次登录
$ echo $SHELL
/bin/zsh