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 /bine /sbin.
/usr/bincontiene 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 PATHvariabile 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/gamessono 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 /usrpotrebbe 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/bind'altra parte, è per i programmi installati localmente e deve essere scrivibile. Quindi, sebbene molte macchine di rete possano condividere la /usrdirectory generale , ognuna di esse avrà il proprio /usr/localmontato all'interno del comune /usr.
Infine, dai un'occhiata al PATHmio 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.