Ho sei directory con file di comando. Questi sono /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bine /usr/local/sbin.
Quali sono le differenze tra questi? Se sto scrivendo i miei script, dove dovrei aggiungerli?
Relazionato:
Ho sei directory con file di comando. Questi sono /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bine /usr/local/sbin.
Quali sono le differenze tra questi? Se sto scrivendo i miei script, dove dovrei aggiungerli?
Relazionato:
Risposte:
Per questo fare riferimento al Filesystem Hierarchy Standard (FHS) per Linux .
/bin: Per i binari utilizzabili prima del /usrmontaggio della partizione. Questo è usato per binari banali usati nella fase di avvio molto precoce o quelli che devi avere disponibili in modalità di avvio per utente singolo. Pensate a come file binari cat, lsecc
/sbin : Lo stesso, ma per i file binari con privilegi di superutente (root) richiesti .
/usr/bin: Uguale al primo, ma per i binari generali di tutto il sistema .
/usr/sbin : Come sopra, ma per i file binari con privilegi di superutente (root) richiesti.
se sto scrivendo i miei script, dove devo aggiungerli?
Nessuno dei precedenti. È necessario utilizzare /usr/local/bino /usr/local/sbinper gli script disponibili a livello di sistema. Il localpercorso significa che non è gestito dai pacchetti di sistema (questo è un errore per i pacchetti Debian / Ubuntu).
Per gli script con ambito utente , utilizzare ~/bin(una cartella bin personale nella directory home).
L'FHS dice per /usr/local:
Gerarchia terziaria per dati locali, specifica per questo host . Ha tipicamente ulteriori sottodirectory, ad esempio,
bin/,lib/,share/.
/bincausa problemi? Ho spostato i miei copioni in base alla tua risposta, ma sono ancora curioso
Severity:Serious Certainty:Certain
ls -lanon mostra nulla
Anch'io ho fatto una domanda simile un anno fa: la migliore directory per posizionare i miei script bash?
man hier(gerarchia) elenca tutte le directory. Per ottenere quelli solo per i binari usare:
$ 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
Per tutti gli utenti di accedere ai tuoi script puoi inserirli /usr/local/bin. Tieni presente che devi sudoaccedere per aggiungere / modificare i file qui. Vedi: Esiste un posto standard per posizionare script Linux personalizzati?
Per il tuo ID utente, inseriscili negli script /home/YOUR_NAME/bin. Tieni presente che devi prima creare questa directory e riavviare il terminale per ottenere la configurazione automatica del percorso ~/.profile. Vedi: Come aggiungere / home / username / bin a $ PATH?
Sto pensando di prendere alcuni dei miei script bash più complessi in Chiedi a Ubuntu e di impostarli con gli script di installazione attivi github. Ecco alcuni esempi:
Penso che gli script dovrebbero essere installati in quello /usr/binche si trova nel $ PATH, ma non sono ancora sicuro del posto appropriato.
man hiersezione alla quale la risposta di gertvdijk non ha affrontato. vale a dire che è possibile ottenere la struttura gerarchica della directory nella riga di comando senza dover ricorrere alla lettura sul web (ovvero qui).
man hierè un estratto informativo insufficiente dell'IMO). Tuttavia, questa potrebbe essere la mia opinione personale.
/usr/X11R6/bine /usr/local/binche è incluso in man heir.
/usr/local/bindal momento che non sei il gestore dei pacchetti?