WSL 中设置 zsh 为默认 SHELL

前言

最近在用 Oh My ZSH! ,然后在 WSL(Windows Subsystem for Linux)上也安装了 zsh 和 Oh My ZSH!

问题

但是在设置默认 SHELL 时出现了问题。使用如下代码设置之后

chsh -s /bin/zsh

重新在 CMD/POWERSHELL 上进入 WSL ,默认的 SHELL 还是 bash ,需要手动执行 $ zsh才能进入。

于是在 Google 上查了一下,发现在 Microsoft 的 Github 上面有一个提交 Bug 的 Repository:Microsoft/WSL 上有一个 issue:

can't change default shell #477

出现这个问题的原因是在启动 WSL 时没有执行 login 相关的组件,而这些组件和设置默认 SHELL 有关。

We don't run login which is the component that normally sets those things up.

解决方法

打开 ~./bashrc 添加下列代码进去并保存即可。

[[ $- == *i* ]] && $(command -v zsh) || echo "ZSH is not installed"

命令的具体解释在这里:https://github.com/Microsoft/WSL/issues/477#issuecomment-441164103


Comments
Write a Comment