Substituindo sh por zsh

1

Eu substituí sh com zsh pelos 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 comando sh não abre um shell zsh , embora tenha sido vinculado. A questão é por quê? Como posso consertar isso?

    
por mahmood 06.07.2018 / 18:22

2 respostas

3

Por que não alterar o shell padrão do usuário usando chsh ?

$ chsh -s /usr/bin/zsh

Referências

por 06.07.2018 / 18:48
5

É suposto fazer isso. Se você iniciá-lo como sh , ele pressupõe que você quer algo que seja mais compatível com outros shells chamados sh e seja executado em um modo de compatibilidade.

Veja o link :

Zsh tries to emulate sh or ksh when it is invoked as sh or ksh respectively; [...]

In sh and ksh compatibility modes the following parameters are not special and not initialized by the shell: ... prompt, PROMPT, ...

The usual zsh startup/shutdown scripts are not executed.

Não tenho certeza se é possível não ter funcionado no modo de compatibilidade quando chamado como sh , mas isso pode interromper vários scripts em seu sistema que supõem que /bin/sh seja apenas sh , não Zsh.

Provavelmente, é melhor executá-lo como zsh .

    
por 06.07.2018 / 18:43