前言
最近在用 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:
出现这个问题的原因是在启动 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