In Linux le diverse posizioni di solito, se ben mantenute, rispecchiano una parte della logica. Per esempio.:
/bin
contiene gli strumenti di base (programmi)
/sbin
contiene i programmi di amministrazione più basilari
Entrambi contengono i comandi elementari utilizzati dall'avvio e dalla risoluzione dei problemi fondamentali. E qui vedi la prima differenza. Alcuni programmi non sono pensati per essere utilizzati da utenti normali.
Allora dai un'occhiata /usr/bin
. Qui dovresti trovare una più ampia scelta di comandi (programmi), di solito più di 1000 di essi. Sono strumenti standard, ma non essenziali come quelli in /bin
e /sbin
.
/usr/bin
contiene i comandi, mentre i file di configurazione risiedono altrove. Ciò separa entrambe le entità funzionali (programmi), la loro configurazione e altri file, ma in termini di funzionalità dell'utente, questo è utile, poiché avere i comandi non mescolati con qualsiasi altra cosa consente il semplice uso della PATH
variabile che punta agli eseguibili. Inoltre introduce chiarezza. Qualunque cosa sia dovrebbe essere eseguibile.
Date un'occhiata al mio PATH
,
$ echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/home/tomas/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
Esistono esattamente sei posizioni contenenti i comandi che posso chiamare direttamente (cioè non tramite i loro percorsi, ma con i nomi dei loro eseguibili).
/home/tomas/bin
è la mia directory privata nella mia cartella home per i miei eseguibili privati.
/usr/local/bin
Spiegherò separatamente di seguito.
/usr/bin
è descritto sopra.
/bin
è anche descritto sopra.
/usr/local/games
è una combinazione di /usr/local
(da spiegare di seguito) e giochi
/usr/games
sono giochi. Da non mescolare con eseguibili di utilità, hanno posizioni separate.
Adesso a /usr/local/bin
. Questo è un po 'scivoloso, ed è stato già spiegato qui: che cos'è / usr / local / bin? . Per capirlo, devi sapere che la cartella /usr
potrebbe essere condivisa da molte macchine e montata da una posizione di rete. I comandi non sono necessari all'avvio, come notato prima, a differenza di quelli in /bin
, quindi la posizione può essere montata nelle fasi successive del processo di avvio. Può anche essere montato in sola lettura. /usr/local/bin
d'altra parte, è per i programmi installati localmente e deve essere scrivibile. Quindi, sebbene molte macchine di rete possano condividere la /usr
directory generale , ognuna di esse avrà il proprio /usr/local
montato all'interno del comune /usr
.
Infine, dai un'occhiata al PATH
mio utente root:
# echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
Contiene questi:
/usr/local/sbin
, che contiene i comandi admin del tipo /usr/local
/usr/local/bin
, che sono gli stessi che l'utente normale può utilizzare. Ancora una volta, il loro tipo può essere descritto come /usr/local
.
/usr/sbin
sono le utility di amministrazione non essenziali.
/usr/bin
sono l'amministrazione non essenziale e le utilità utente regolari.
/sbin
sono gli strumenti di amministrazione essenziali.
/bin
sono gli strumenti essenziali per l'amministratore e l'utente normale.