Differenza tra / bin e / usr / bin


83

L'ho letto su questo sito Web e non ha senso.

http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html

Quando UNIX è stato scritto per la prima volta /bine /usr/binrisiedeva fisicamente su due diversi dischi: /bintrovarsi su un disco più piccolo, più veloce (più costoso) e /usr/binsu un disco più grande e più lento. Ora, /binè un collegamento simbolico a /usr/bin: sono essenzialmente la stessa directory.

Ma quando sei lsla /bincartella, ha molto meno contenuto della /usr/bincartella (almeno sul mio sistema in esecuzione).

Quindi qualcuno può spiegare la differenza?


quei ragazzi non stanno parlando di una macchina specifica?
Tshepang,

1
@tshepang bene se continui a fare clic su, nell'articolo raggiungerai Introduzione di base a UNIX / linux . Quindi direi di no, non stanno parlando di una macchina specifica
xenoterracide,

3
@xeno Sì, l'ho fatto, ma non sono rimasto abbastanza a lungo. In tal caso, quella pagina deve essere rimossa. Così fuorviante.
Tshepang,

3
Tale documento può essere considerato "riferimento storico". Se guardi la pagina "su questo documento", vedrai che è stato protetto da copyright originariamente nel 1993. Se guardi la bibliografia, la sua fonte più recente è il 1997. La maggior parte dei popolari sistemi operativi simili a unix sono cambiati sostanzialmente da poi.
gabe.

1
Chiunque sia interessato alla storicità di questa configurazione dovrebbe leggere questo: lists.busybox.net/pipermail/busybox/2010-december/074114.html
JDS

Risposte:


73

Che cosa? no /bin/non è un collegamento simbolico a /usr/binnessun sistema conforme a FHS. Nota che ci sono ancora Unices e Linux popolari che lo ignorano, ad esempio, /bine /sbinsono collegati in modo simbolico /usr/binsu Arch Linux (il ragionamento è che non è necessario /binper la modalità di salvataggio / utente singolo, dato che avresti appena avviato un live CD).

/bin

contiene comandi che possono essere utilizzati sia dall'amministratore di sistema che dagli utenti, ma che sono richiesti quando non sono montati altri file system (ad es. in modalità utente singolo). Può anche contenere comandi utilizzati indirettamente dagli script

/usr/bin/

Questa è la directory principale dei comandi eseguibili sul sistema.

essenzialmente, /bincontiene file eseguibili richiesti dal sistema per le riparazioni di emergenza, l'avvio e la modalità utente singolo. /usr/bincontiene tutti i binari che non sono richiesti.

Noterò che possono essere su dischi / partizioni separati, /bindevono essere sullo stesso disco di /. /usr/binpuò trovarsi su un altro disco - sebbene si noti che questa configurazione è stata interrotta per un po '(questo è il motivo per cui ad esempio systemd avvisa di questa configurazione all'avvio).

Per la piena correttezza, alcuni unices potrebbero ignorare FHS, poiché credo che sia solo uno standard Linux, non sono consapevole che sia stato ancora incluso in SUS, Posix o qualsiasi altro standard UNIX, anche se dovrebbe essere IMHO. Fa parte dello standard LSB però.


Quindi significa che posso condividere / usr / bin tra due distro? come Ubuntu 10.04 e 10.10?
Balki,

4
@balki no, devono comunque essere collegati correttamente, il che significa che dovrebbero usare la versione giusta delle librerie su cui sono costruiti.
xenoterracide,

6
/binè un collegamento a /usr/binsu alcuni unices, come (alcune versioni di?) Solaris.
Gilles,

1
@balki potresti essere in grado di condividere /usrtra due distro molto simili, anche se non lo proverei a meno che tu non sappia cosa stai facendo, e sei pronto per l'esperimento in modo da non far avviare il computer o mangiare i tuoi dati. Si informa inoltre che molte delle grandi differenze tra il 10.04 e il 10.10 saranno in/usr
xenoterracide il

2
Includiamo anche che / usr / local / bin è dove sono installati i programmi che non sono inclusi con la vostra distribuzione ma che sono destinati all'uso a livello di sistema.
Donato,

56

/sbin - File binari necessari per l'avvio, la riparazione del sistema di basso livello o la manutenzione (eseguire il livello 1 o S)

/bin - File binari necessari per il funzionamento del sistema normale / standard a qualsiasi livello di funzionamento.

/usr/bin - Binari di applicazioni / distribuzione destinati ad essere accessibili dagli utenti che hanno effettuato l'accesso locale

/usr/sbin - Binari di applicazione / distribuzione che supportano o configurano elementi in / sbin.

/usr/share/bin - Binari o script di applicazioni / distribuzione destinati ad essere accessibili via web, ovvero applicazioni web Apache

*local*- I binari non fanno parte di una distribuzione; compilato localmente o installato manualmente. Di solito non c'è mai un /local/binma sempre un /usr/local/bine /usr/local/share/bin.


4
Oh, e puoi metterli tutti su un disco o una partizione separati se vuoi, per sicurezza o altro. L'idea è che è possibile smontare / usr e il sistema avrà tutto il necessario per il funzionamento di base, ma non può eseguire alcuna applicazione non di sistema.
LawrenceC,

1
Vorrei saperlo anni fa. La migliore spiegazione che ho visto finora. Non posso dire di essere sembrato molto duro, ma felice di conoscere finalmente la risposta.
David,

2
questa è un'ottima risposta ti darei 10 dei miei punti se potessi
anfibio il

@ultrasawblade viene /usr/binautomaticamente smontato quando non ci sono utenti connessi? Ad esempio, quando LINUX si avvia e presenta l'autenticazione di accesso, è /usr/binmontato o no?

1
No, è montato all'avvio e rimane montato a meno che non venga smontato, a meno che il sistema non sia configurato in modo insolito.
LawrenceC,

17

Una sorta di "aggiornamento" su questo problema:

Recentemente alcune distribuzioni di Linux si stanno fondendo /binin /usr/bine relatedly /libin /usr/lib. A volte anche (/usr)/sbina /usr/bin(Arch Linux). Quindi /usrdovrebbe essere disponibile contemporaneamente /.

La distinzione tra le due gerarchie ora è considerata una complessità non necessaria. L'idea una volta era /bindisponibile solo all'avvio, ma avere un ramdisk iniziale lo rende obsoleto.

Conosco Fedora Linux (2011) e Arch Linux (2012) in questo modo e Solaris lo fa da molto tempo (> 15 anni).


8

Su Linux /bine /usr/binsono ancora separati perché è comune avere /usrsu una partizione separata (anche se questa configurazione si interrompe in modi sottili, a volte). In /binè tutti i comandi di cui avrai bisogno se hai /montato.

Su Solaris e Arch Linux (e probabilmente altri) /binc'è un link simbolico a /usr/bin. Arch ha anche /sbine /usr/sbinlinkato a /usr/bin.

In particolare, l'affermazione /binrelativa ai comandi "amministratore di sistema" e /usr/binai comandi utente non è vera (a meno che tu non lo pensi bashe lssia solo per gli amministratori, nel qual caso hai molto da imparare). I comandi di amministratore sono in /sbine /usr/sbin.


1
chi ha detto che binè solo per gli amministratori di sistema? questo è quello che sbinserve.
xenoterracide,

Ti ho citato male. Scusa, stavo leggendo troppo in fretta.
Bahamat,

5

Esistono molti sistemi basati su UNIX. Linux, AIX, Solaris, BSD, ecc. La citazione originale fornisce un contesto storico che si applica a tutti i gusti. Se guardi un sistema specifico, vedrai risultati diversi. L'ultima frase della citazione originale è specifica solo per alcune versioni e distribuzioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.