Domanda Differenze tra / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


Ho sei directory con i file di comando. Questi sono /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin e /usr/local/sbin.

Quali sono le differenze tra questi? Se sto scrivendo i miei script, dove dovrei aggiungerli?


Relazionato:


221
2018-06-14 07:13


origine


Domanda relativa: unix.stackexchange.com/questions/8656/... - Gabriel Staples
@Keelan La tua domanda è vicina a una domanda che ho postato un anno fa: askubuntu.com/questions/830074/... - WinEunuuchs2Unix


risposte:


Si prega di fare riferimento al Filesystem Hierarchy Standard (FHS) per Linux per questo.

  • /bin : Per i binari utilizzabili prima del /usr la partizione è montata. Questo è usato per i banali binari usati nella fase di avvio molto presto o quelli che devono essere disponibili all'avvio della modalità utente singolo. Pensa ai binari come cat, ls, eccetera.

  • /sbin  : Lo stesso, ma per i binari con privilegi superuser (root) richiesti.

  • /usr/bin : Come prima, ma per binari generali a livello di sistema.

  • /usr/sbin : Come sopra, ma per i binari con privilegi di superutente (root) richiesti.


se sto scrivendo i miei script, dove dovrei aggiungerli?

Nessuno dei precedenti. Dovresti usare /usr/local/bin o /usr/local/sbin per gli script disponibili a livello di sistema. Il local percorso significa che non è gestito dai pacchetti di sistema (questo è un errore per pacchetti Debian / Ubuntu).

Per script con ambito utente, uso ~/bin (una cartella bin personale nella tua home directory).

Il FHS dice per /usr/local:

Gerarchia terziaria per dati locali, specifico per questo host. In genere ha ulteriori sottodirectory, ad es. bin/, lib/, share/.


291
2018-06-14 07:17



così / bin è dove sono installati tutti i file core. come ls, cat, pwd, ecc? Quindi, / usr / bin è dove sono installate le app installate dall'utente? quali sono alcuni esempi di cosa dovrebbe essere in / usr / bin? - Patoshi パトシ
Inserire gli script in /bin causare problemi? Ho spostato i miei script in base alla tua risposta, ma sono ancora curioso - Rumesh
@RumeshSudhaharan non dovresti farlo, perché è gestito dalla gestione dei pacchetti. Se qualsiasi altro pacchetto vuole usare quel percorso, sovrascriverà il tuo file. I file nei pacchetti non possono mai sovrapporsi (almeno per i repository ufficiali), quindi si è più sicuri durante l'installazione nel percorso locale. Inoltre, è solo per tua comodità e sicurezza. In un percorso locale non è possibile incasinare il sistema in modo sbagliato e non è possibile sostituire accidentalmente un binario di sistema. - gertvdijk
Mi piace la spiegazione nella pagina di errore: Severity:Serious Certainty:Certain - cutrightjm
Ho messo alcuni file in / usr / local / bin e posso eseguirli, tuttavia non posso modificarli, ls -la mostra niente - M. Reza Nasirloo


Ho avuto una domanda simile io stesso un anno fa: La migliore directory per posizionare i miei script di bash?

Directory di sistema per i binari

man hier (gerarchia) elenca tutte le directory. Per ottenere quelli solo per i binari utilizzare:

$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe‐
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system

Dove mettere i tuoi script?

Per consentire a tutti gli utenti di accedere ai tuoi script, puoi inserirli /usr/local/bin. Tieni presente che hai bisogno sudo accesso per aggiungere / cambiare file qui. Vedere: Esiste un posto standard per posizionare script Linux personalizzati?

Per i tuoi script ID utente, inseriscili /home/YOUR_NAME/bin. Tieni presente che devi prima creare questa directory e riavviare il terminale per ottenere automaticamente il percorso di installazione ~/.profile. Vedere: Come aggiungere / home / username / bin a $ PATH?


Quello che so non lo so

Sto pensando di prendere alcuni dei miei script di bash più complessi in Chiedi a Ubuntu e impostandoli con gli script di installazione su github. Ecco alcuni esempi:

io pensare gli script dovrebbero essere installati in /usr/bin che si trova nel $ PATH, ma non sono ancora sicuro sul posto appropriato.


3
2018-06-11 23:44



Apprezzo il tuo sforzo, ma, a parte la parte "Quello che so che non so", hai ripetuto la risposta di gertvdijk. - danzel
@ Danzel Penso che la parte chiave sia la man hier sezione che la risposta di gertvdijk non ha affrontato. vale a dire che puoi ottenere la struttura gerarchica della directory nella riga di comando senza dover ricorrere a leggerla sul web (cioè qui). - WinEunuuchs2Unix
questa è un'informazione interessante, sono d'accordo. Ma gertvdijk ha già menzionato il Filesystem Hierarchy Standard (che man hier è un estratto informativo insufficiente dell'IMO). Tuttavia, questa potrebbe essere la mia opinione personale. - danzel
@danzel Sono d'accordo che i siti web hanno un'analisi molto più approfondita di quella dei nostri dischi rigidi. Sto solo cercando di indicare che le informazioni sono sui nostri dischi rigidi senza ricorrere a Internet. Oltre al link wikipedia citato è mancante  /usr/X11R6/bin e /usr/local/bin che è incluso in man heir. - WinEunuuchs2Unix