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

219

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?

Related:

posta Keelan 14.06.2013 - 09:13

2 risposte

289

Per favore fai riferimento a Filesystem Hierarchy Standard (FHS) per Linux per questo.

  • /bin : per i binari utilizzabili prima che venga montata la partizione /usr . 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 , ecc.

  • /sbin : lo stesso, ma per gli script con i privilegi superuser (root) richiesti .

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

  • /usr/sbin : come sopra, ma per gli script con privilegi di superutente (root) richiesti.

  

se sto scrivendo i miei script, dove dovrei aggiungerli?

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

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

L'FHS dice per /usr/local :

  

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

    
risposta data gertvdijk 14.06.2013 - 09:17
2

Ho avuto una domanda simile io stesso un anno fa: La migliore directory per inserire il mio script di bash?

Directory di sistema per i binari

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

$ 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 inserire i propri script?

Per consentire a tutti gli utenti di accedere ai tuoi script, puoi inserirli in /usr/local/bin . Tieni presente che è necessario l'accesso sudo per aggiungere / modificare i file qui. Vedi: Esiste un posto standard per posizionare script Linux personalizzati ?

Per i tuoi script ID utente, inseriscili in /home/YOUR_NAME/bin . Tieni presente che devi prima creare questa directory e riavviare il terminale per ottenere automaticamente il percorso impostato da ~/.profile . Vedi: Come aggiungi / home / nomeutente / bin a $ PATH?

Quello che so non lo so

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

I pensa che gli script siano installati in /usr/bin che si trova in $ PATH, ma non sono ancora sicuro sul posto appropriato.

    
risposta data WinEunuuchs2Unix 12.06.2018 - 01:44

Leggi altre domande sui tag