GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra /bin e /usr/bin

Che cosa? no /bin/ non è un collegamento simbolico a /usr/bin su qualsiasi sistema conforme FHS. Nota che ci sono ancora Unix e Linux popolari che lo ignorano, ad esempio /bin e /sbin sono collegati simbolicamente a /usr/bin su Arch Linux (il ragionamento è che non hai bisogno di /bin per rescue/single-user-mode, dato che avvieresti solo 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 filesystem (ad es. in modalità utente singolo). Può anche contenere comandi che sono usati indirettamente dagli script

/usr/bin/

Questa è la directory principale dei comandi eseguibili sul sistema.

essenzialmente, /bin contiene eseguibili richiesti dal sistema per riparazioni di emergenza, avvio e modalità utente singolo. /usr/bin contiene tutti i file binari che non sono richiesti.

Noterò che possono trovarsi su dischi/partizioni separati, /bin deve trovarsi sullo stesso disco di / . /usr/bin può trovarsi su un altro disco, anche se nota che questa configurazione è stata danneggiata per un po' (questo è il motivo per cui, ad esempio, systemd avverte di questa configurazione all'avvio).

Per correttezza, alcuni unix potrebbero ignorare FHS, poiché credo che sia solo uno standard Linux, non sono a conoscenza del fatto che sia stato ancora incluso in SUS, Posix o qualsiasi altro standard UNIX, sebbene dovrebbe essere IMHO. Fa comunque parte dello standard LSB.


Aggiornamento:per un po' di storia e il vero motivo per cui c'è /usr , leggi questo:http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. Anche questo.

/sbin - Binari necessari per l'avvio, la riparazione del sistema di basso livello o la manutenzione (livello di esecuzione 1 o S)

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

/usr/bin - Binari dell'applicazione/distribuzione pensati per l'accesso da parte di utenti che hanno effettuato l'accesso locale

/usr/sbin - Binari di applicazioni/distribuzioni che supportano o configurano elementi in /sbin.

/usr/share/bin - File binari o script di applicazioni/distribuzioni destinati a essere accessibili tramite Web, ad esempio applicazioni Web Apache

*local* - Binari che non fanno parte di una distribuzione; compilato localmente o installato manualmente. Di solito non c'è mai un /local/bin ma sempre un /usr/local/bin e /usr/local/share/bin .


Una sorta di "aggiornamento" su questo problema:

Recentemente alcune distribuzioni Linux stanno unendo /bin in /usr/bin e corrispondentemente /lib in /usr/lib . A volte anche (/usr)/sbin a /usr/bin (Arch Linux).Quindi /usr dovrebbe essere disponibile contemporaneamente a / .

La distinzione tra le due gerarchie ora è considerata una complessità inutile. Una volta l'idea era di avere solo /bin disponibile all'avvio, ma avere un ramdisk iniziale lo rende obsoleto.

So che Fedora Linux (2011) e Arch Linux (2012) vanno in questa direzione e Solaris lo fa da molto tempo (> 15 anni).

  • freedesktop:TheCaseForTheUsrMerge
  • fedora:funzione UsrMove
  • archivia:unisci /bin, /sbin, /lib in /usr/bin e /usr/lib

Linux
  1. Differenza tra /bin/false e /sbin/nologin

  2. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  3. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  4. Qual è la differenza tra /sbin/nologin e /bin/false?

  5. La differenza tra /opt e /usr/local?

Strana differenza tra Pwd e /bin/pwd?

Perché /bin/sh punta a /bin/dash e non a /bin/bash??

cmake --version punta a /usr/bin/cmake mentre which cmake punta a /usr/local/bin

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Quando devo usare #!/bin/bash e quando #!/bin/sh?

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0