Diferença entre / bin e / usr / bin

79

Eu li isso neste site e não faz sentido.

link

When UNIX was first written, /bin and /usr/bin physically resided on two different disks: /bin being on a smaller faster (more expensive) disk, and /usr/bin on a bigger slower disk. Now, /bin is a symbolic link to /usr/bin: they are essentially the same directory.

Mas quando você ls a pasta /bin , tem muito menos conteúdo do que a pasta /usr/bin (pelo menos no meu sistema em execução).

Então alguém pode explicar a diferença?

    
por whoami 15.01.2011 / 11:43

5 respostas

70

O que? não /bin/ não é um link simbólico para /usr/bin em qualquer sistema compatível com FHS. Note que ainda existem Unices e Linuxes populares que ignoram isso - por exemplo, /bin e /sbin são ligados simbolicamente a /usr/bin no Arch Linux (o raciocínio é que você não precisa de /bin para resgate / single- modo de usuário, desde que você acabou de inicializar um CD ao vivo).

/bin

contains commands that may be used by both the system administrator and by users, but which are required when no other filesystems are mounted (e.g. in single user mode). It may also contain commands which are used indirectly by scripts

/usr/bin/

This is the primary directory of executable commands on the system.

essencialmente, /bin contém executáveis que são requeridos pelo sistema para reparos de emergência, inicialização e modo de usuário único. /usr/bin contém todos os binários que não são necessários.

Eu notarei que eles podem estar em discos / partições separados, /bin deve estar no mesmo disco que / . /usr/bin pode estar em outro disco - embora note que essa configuração foi quebrada por algum tempo (é por isso que, por exemplo, o systemd avisa sobre essa configuração na inicialização).

Para a correção completa, alguns unices podem ignorar o FHS, pois acredito que seja apenas um padrão Linux, não sei se ele já foi incluído no SUS, Posix ou qualquer outro padrão UNIX, embora deva ser IMHO. Faz parte do LSB padrão embora.

    
por 15.01.2011 / 11:53
50

/sbin - Binários necessários para inicialização, reparo de sistema de baixo nível ou manutenção (nível de execução 1 ou S)

/bin - Binários necessários para o funcionamento normal / normal do sistema em qualquer nível de execução.

/usr/bin - Binários de aplicativo / distribuição que devem ser acessados por usuários conectados localmente

/usr/sbin - Binários de aplicativos / distribuição que suportam ou configuram coisas em / sbin.

/usr/share/bin - Binários ou scripts de aplicativo / distribuição que devem ser acessados via web, ou seja, aplicativos da web Apache

*local* - Binários não fazem parte de uma distribuição; compilado localmente ou instalado manualmente. Geralmente, não há /local/bin , mas sempre /usr/local/bin e /usr/local/share/bin .

    
por 19.01.2011 / 20:02
16

Algum tipo de "atualização" sobre esse problema:

Recentemente, algumas distribuições do Linux estão mesclando /bin em /usr/bin e relacionadas /lib em /usr/lib . Às vezes também (/usr)/sbin to /usr/bin (Arch Linux). Portanto, espera-se que /usr esteja disponível ao mesmo tempo que / .

A distinção entre as duas hierarquias é considerada complexidade desnecessária agora. A ideia foi ter apenas /bin disponível no boot, mas ter um ramdisk inicial torna isso obsoleto.

Eu conheço o Fedora Linux (2011) e o Arch Linux (2012) seguindo este caminho e o Solaris está fazendo isso por um longo tempo (> 15 anos).

por 03.01.2013 / 01:17
8

No Linux /bin e /usr/bin ainda são separados porque é comum ter /usr em uma partição separada (embora essa configuração seja interrompida de maneira sutil, às vezes). Em /bin estão todos os comandos que você precisará se tiver apenas / montado.

No Solaris e no Arch Linux (e provavelmente outros) /bin é um link simbólico para /usr/bin . O Arch também tem /sbin e /usr/sbin ligados a /usr/bin .

Em particular, a declaração de que /bin é para comandos "administrador do sistema" e /usr/bin para comandos de usuário é não verdadeira (a menos que você pense que bash e ls são apenas para administradores, caso em que você tem muito a aprender). Os comandos do administrador estão em /sbin e /usr/sbin .

    
por 16.01.2011 / 21:03
5

Existem muitos sistemas baseados em UNIX. Linux, AIX, Solaris, BSD, etc. A citação original fornece um contexto histórico que se aplica a todos os sabores. Se você olhar em qualquer sistema específico, verá resultados diferentes. A última frase da citação original é específica para apenas algumas versões e distribuições.

    
por 16.01.2011 / 00:39