qual é a diferença entre / bin / zsh e / usr / bin / zsh? [duplicado]

0

Eu vi o seguinte em / etc / shells -

 % cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
/usr/bin/zsh

Eu quero saber se existe uma diferença entre / usr / bin / zsh e / bin / zsh?

Eu escolhi / usr / bin / zsh, já que tem que ser um login interativo e habilidades CTE.

    
por shirish 03.01.2018 / 22:23

1 resposta

2

Um deles é provavelmente um link para o outro ...

Tradicionalmente, os shells (como bash , csh e zsh ) estão localizados em / bin - porque é necessário um shell mesmo no modo de usuário único ou outras vezes quando / usr pode ser desmontado ( / usr é freqüentemente em uma partição separada e pode até ser montado através da rede - portanto, não prontamente disponível em singe modo de usuário ).

Por outro lado, shells adicionais (do padrão / ones) não são estritamente necessárias no modo de usuário único (a menos que root acontece de usar um deles), então é natural colocar tais shells em / usr / bin ao invés de / bin .

Quando você faz colocá-lo em / usr / bin , é comum fornecer um link simbólico para ele de / bin , como os usuários tendem a esperar que seus shells fiquem diretamente sob / bin (não que um link ajudaria se / usr não estivesse montado).

Assim, ao compilar a lista de shells disponíveis para escolher ( / etc / shells ), tanto o executável real quanto o link foram listados. Você pode usar ls -l para verificar qual é o link e qual é o executável.

+++

Ambos /bin/zsh e /usr/bin/zsh são explicitamente adicionados juntos (mesmo bloco if-fi ) no script postinst (pós-instalação) para o pacote zsh, usando o add-shell comando:

From zsh_5.1.1-1ubuntu2_amd64.deb:/DEBIAN/postinst

#!/bin/sh
...
case "$1" in
    (configure)
#    if test -z "$2"; then
            add-shell /bin/zsh
            add-shell /usr/bin/zsh
#    fi
...
    
por 03.01.2018 / 22:43