“chsh:无效选项——‘l’”

“chsh:无效选项——‘l’”

我已经通过运行以下命令安装了 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/zshecho $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

相关内容