Substituí sh por zsh com os seguintes comandos:
$ 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
Como você pode ver, o sh
comando não abre um zsh
shell embora tenha sido vinculado. A pergunta é por quê? Como posso corrigir isso?
É suposto fazer isso. Se você iniciá-lo como
sh
, ele pressupõe que você deseja algo que seja compatível principalmente com outros shells chamadossh
, e seja executado em um modo de compatibilidade.Consulte http://zsh.sourceforge.net/Doc/Release/Invocation.html#Compatibility :
Não tenho certeza se é possível não funcionar no modo de compatibilidade quando chamado como
sh
, mas isso pode quebrar vários scripts em seu sistema que assumem que/bin/sh
é apenassh
, não Zsh.Provavelmente é melhor executá-lo como
zsh
em vez disso.Por que não alterar o shell padrão do seu usuário usando
chsh
em vez disso.Referências