我已使用以下命令将 sh 替换为 zsh:
$ sudo mv /bin/sh /bin/sh1
$ sudo ln -s /usr/bin/zsh /bin/sh
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 12 Jul 6 20:48 /bin/sh -> /usr/bin/zsh
$ which sh
/bin/sh
$ sh
$ exit
$ zsh
mpc% exit
如您所见,该命令虽然已链接,sh
但并未打开外壳。zsh
问题是为什么?我该如何解决?
它应该这样做。如果您将其启动为
sh
,它假定您想要与其他称为 的 shell 最兼容的东西sh
,并以兼容模式运行。请参阅http://zsh.sourceforge.net/Doc/Release/Invocation.html#Compatibility:
我不确定在调用 as 时是否可能无法在兼容模式下工作
sh
,但这可能会破坏您系统上假设/bin/sh
只是sh
而不是 Zsh 的许多脚本。可能最好改为运行它
zsh
。为什么不改为使用更改用户的默认 shell
chsh
。参考