Domanda Come capire il layout del file system di Ubuntu?


In Windows ci sono forse solo un paio di cartelle importanti (per importanza intendo importante nella mia immagine logica del file system di Windows) nell'unità di installazione (nel mio caso C:\). cioè Program Files e Windows. Semplicemente sto lontano da Windows cartella e "aggiungi file di programma di rimozione" è sufficiente per gestire il file program files cartella di Windows. Ovviamente c'è una cartella chiamata Users dove gli utenti (che non sono amministratori) possono accedere solo alle loro cartelle.

Quindi c'è un quadro chiaro a un certo livello nella mia mente del file system di Windows. In Ubuntu, quando raggiungo la posizione /, c'è un enorme elenco di cartelle, la maggior parte delle quali non ho idea di cosa contengano. Il /bin la cartella sembra essere l'equivalente di Windows cartella in Windows. Il /usr cartella sembra che sia l'equivalente del Users cartella in Windows. Ma anche il /home cartella sembra che possa andare bene il conto.

Per favore comprendi che io capisco che Ubuntu (Linux) ha un carattere diverso da quello di Windows, cioè non c'è bisogno di un equivalente esatto delle funzioni di Windows, in Ubuntu. Tutto quello che sto cercando è un'immagine un po 'più chiara del file system di Ubuntu.

 Questa domanda è parte di una domanda più ampia che sto dividendo per renderla più comprensibile. La domanda originale può essere trovata qui:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/ 


202
2018-05-17 18:12


origine


Vedi anche il directory-struttura tag su Unix e Linux. Tutte le distribuzioni Linux seguono lo stesso modello. - Gilles
Grazie per tutte le tue risposte. Sono un po 'confuso su alcuni punti: In Windows l'installazione di solito fornisce attraverso un prompt un'opzione per installare un software per tutti gli utenti. Come fare questa distinzione in Ubuntu? Inoltre, questo è un problema normale nella configurazione di software di sviluppo ai loro IDE. In Windows, ad esempio, in "file di programma \ miktex \ bin" è presente il file "pdflatex.exe". Quindi posso puntare l'IDE su questo file e configurarlo. Come procedere su questo processo in Ubuntu? Dov'è il file binario generale associato ad un software (specialmente dal punto di vista della configurazione)? - Shashank Sawant
In Ubuntu, normalmente si installa il software per tutti gli utenti. Tutto ciò che fai attraverso il gestore di pacchetti è per tutti gli utenti. Non capisco il resto del tuo commento; uno non "configura" il "file binario associato a un software". Dovresti chiedere a questo come una domanda separata e dare una spiegazione migliore di ciò che stai cercando di fare. - Gilles
Fatto. Creerò una nuova domanda. Anche in questo caso ecco una breve spiegazione di cosa intendevo: in Windows, i file .exe possono essere facilmente individuati. Ad esempio: "C: \ Python27 \ python.exe". Quindi so da dove inizia il programma Python. Ora, se devo usare l'IDE Eclipse, posso semplicemente puntarlo su python.exe, e questo è ciò che intendevo per "configure". Ho configurato l'IDE per Python. In Ubuntu dov'è la posizione in cui è installato il programma? Questo è ciò che ancora mi sfugge. - Shashank Sawant
@Gilles Fai attenzione quando dici all. Il Progetto GoboLinux in realtà utilizza una struttura di directory più simile a Windows. - new123456


risposte:


Puoi leggere su questo su per esempio wikipedia. Un estratto:

Il Filesystem Hierarchy Standard (FHS) definisce le directory principali e il loro contenuto nei sistemi operativi Linux. Per la maggior parte, è una formalizzazione e un'estensione della tradizionale gerarchia del filesystem BSD.

L'FHS è gestito da Linux Foundation, un'organizzazione non profit costituita da importanti fornitori di software e hardware, come HP, Red Hat, IBM e Dell.   La versione corrente è la 3.0, rilasciata il 3 giugno 2015.

Una rappresentazione visiva con una breve descrizione:

enter image description here

Fondamentalmente, Linux ha diviso la struttura delle directory in base alla funzione di ciò che è necessario per rendere il sistema il più sicuro possibile con la quantità minima di autorizzazioni necessarie. Altrimenti qualcuno è obbligato a fare molto lavoro evitabile.

Ricorda che Unix e Linux sono stati creati come sistemi multiutente e Windows è stato creato per un singolo utente. Tutto il resto può essere spiegato da quell'idea. Puoi spiegare ogni directory quando pensi che sia multiutente e sicurezza.

3 esempi:

  • Vedrai che i file e le directory che sono solo admin sono raccolti nella stessa directory: la s in /sbin e /usr/sbin e /usr/local/sbin sta per sistema. Un utente normale non può nemmeno avviare programmi che sono lì dentro. I file che un utente normale può avviare sono in / bin, / usr / bin, / usr / local / bin in base a dove risiede più logicamente. Ma se sono admin solo loro dovrebbero andare al sversione di quella directory. C'è una famosa utility chiamata fuser. Puoi uccidere i processi con esso. Se un utente normale potesse usare questo / i sarebbe in grado di uccidere la sessione.

  • Lo stesso vale per /home: / home / user1 è la proprietà dell'utente1. / home / user2 è la proprietà dell'utente2. user2 non ha business fare roba nella casa dell'utente1 (e viceversa è anche vero: user1 non ha business fare roba in casa dell'utente2). Se tutti i file fossero in / home senza nome utente sotto di esso, dovresti dare le autorizzazioni a ogni file e valutare se qualcuno è autorizzato a scrivere / rimuovere quei file. Un incubo se hai decine di utenti.

  • aggiunta per quanto riguarda le biblioteche.

    /lib/, /usr/lib/, e /usr/local/lib/ sono le posizioni originali, da prima multilib esistevano sistemi e esisteva per prevenire rotture. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/ sono invenzioni multilib a 32/64 bit.

Non è un concetto statico in alcun modo. Altri sapori di Linux hanno apportato modifiche a questo layout. Per esempio; attualmente vedrai debian e Ubuntu cambiando molto nel lay-out del FHS dal momento che SSD è meglio con i file di sola lettura. C'è un movimento verso un nuovo lay-out in cui i file sono suddivisi in una "sola lettura" e una directory / gruppo "scrivibile" in modo che possiamo avere una partizione di root che può essere montata in sola lettura (partizione per uno ssd) e scrivibile (sata hdd). La nuova directory che viene utilizzata per questo (non nell'immagine) è /run/.


240
2018-05-17 18:18



+1 Rinzwind. Mi piace l'immagine, in realtà ne stavo cercando uno. - Luis Alvarado♦
ha pensato che avrebbe attirato l'attenzione: + @LuisAlvarado - Rinzwind
Non ci può essere una risposta migliore! - Shashank Sawant
non era /mnt che cosa /media è ora, alcuni anni fa? - RobinJ
@RobinJ: La differenza è questa /mnt è stato storicamente gestito manualmente. Con l'aumento di molti dispositivi transienti (unità flash, ecc.) E il montaggio automatico diventati standard, era necessario gestire automaticamente i punti di montaggio. Era necessaria una nuova directory per evitare conflitti con la configurazione manuale esistente. Quindi, in questi giorni /mnt è stato relegato al ruolo di fornire un punto di montaggio temporaneo conveniente. - Scott Severance


Dai a questo comando una prova ...

man 7 hier

Spero che sia d'aiuto


95
2018-05-17 19:58



buona chiamata! Lo dimentico sempre, anche se è sempre presente (anche quando la rete è giù;)) - Rinzwind
l'uomo dovrebbe essere rinominato "it". :))) - Shiki
man hier è ora tra i miei comandi preferiti! Le spiegazioni per me sono più chiare del docus FHS, specialmente distinguendo tra "local to the machine" e "site-wide", per un utente di Ubuntu inesperto, che passa da un'esperienza DOS / Windows moderata. - WillC
BTW il numero 7 stand della sezione Miscellanea della pagina man hier. - Pablo Bianchi


Risposta in ritardo - Ho creato una tabella di marcia per i principianti da seguire. Se stanno cercando un file ma non sanno dove guardare, possono usare la mappa per spostarsi approssimativamente. È possibile scaricare un PNG ad alta risoluzione Qui. Puoi trovare il post correlato Qui. Continuerò ad aggiornare sia il file che il post quando il tempo lo permetterà, incorporando commenti utili.


37
2017-11-20 18:18



Un'idea interessante e utile per produrre un diagramma di flusso, ma sfortunatamente sembra che abbia dei vicoli ciechi. La mia domanda è se sto eseguendo un mysqldump dove devo esportare il file? - BadHorsie
@BadHorsie ovviamente dipenderà sempre dal tuo caso d'uso specifico, ma scaricandolo in a /home/badhorsie/mysqldump directory sarebbe sufficiente. Se stai utilizzando molte app puoi creare un nuovo utente per eseguire ogni app e scaricarla in quell'app / utente home directory. - d4nyll
@ paranoico-panda, potresti ampliare un po 'il motivo per cui scegli di non permettere che l'immagine sia cliccabile attraverso la piena risoluzione? La versione inclusa in questo post è praticamente illeggibile. - waldyrious
@waldyrious: Se guardi il Cronologia delle revisioni vedrai che ho solo corretto un errore di ortografia, era un altro utente che ha aggiunto l'immagine in questo modo particolare. Niente a che fare con me Sentiti libero di modificarlo, non riesco a ricordare la sintassi corretta per renderla cliccabile.
@ParanoidPanda è proprio quello che ho fatto. La mia modifica ha corretto la correzione degli errori di battitura e ha reso l'immagine selezionabile e la tua recensione doveva rifiutare e modificare, quindi la mia domanda: cosa hai visto di sbagliato nel rendere l'immagine cliccabile? - waldyrious


Questo testo seguente mostra la struttura della directory.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

I componenti principali qui sono:

  1. /boot : Contiene il boot loader

  2. /home : Contiene le home directory degli utenti.

  3. /bin : Tutti i binari e i comandi eseguibili utilizzati da tutti gli utenti del sistema si trovano qui.

  4. /sbin : Contiene i file binari eseguibili del sistema generalmente utilizzati dagli amministratori di sistema.

  5. /lib : Contiene le librerie di sistema che supportano i binari in / bin e / sbin.

  6. /etc : Contiene i file di configurazione per rete, avvio, ecc.

  7. /dev : Contiene i file del dispositivo, ad esempio usb, dispositivo terminale o qualsiasi altro dispositivo collegato al sistema.

  8. /proc : Contiene informazioni sul processo in esecuzione.

  9. /tmp : Questa è la directory temporanea in cui molti processi creano i file temporanei richiesti. Questo viene eliminato ogni volta che si avvia la macchina.

Per ulteriori dettagli, Thegeekstuff link spiega perfettamente il generico file system linux.


36
2018-05-17 18:38





\Users è equivalente a /home. Il nome di /usr è un artefatto storico.

L'equivalente combinato di \Windows e \Program Files è la combinazione di /bin, /boot, /etc, /lib, /sbin, /tmp, /usr e /var. Linux e Windows suddividono il software installato in modo diverso. Windows distingue tra il sistema operativo e i programmi associati. Linux non fa questa distinzione allo stesso modo; la maggior parte se non tutto il software passa attraverso Ubuntu (il distributore) ed è installato nella stessa gerarchia di directory, e poiché il software è tracciato dal gestore pacchetti, non è necessario memorizzare ciascun programma nella propria directory. Su Linux:

  • /etc è per i file di configurazione del sistema: file di configurazione che interessano tutti gli utenti, indipendentemente dal fatto che si applichino al sistema operativo nel suo insieme o ad un'applicazione specifica.
  • /usr è per codice di sistema e dati (programmi, librerie, documentazione, ecc.).
  • /var è per dati variabili o temporanei: file temporanei, registri, database di gestore pacchetti, spool di stampanti, file di salvataggio di giochi, ecc. Esiste anche /tmp per i file temporanei che possono essere cancellati attraverso i riavvii.
  • /bin, /lib e /sbin nella directory radice hanno controparti in /usr. I file che sono all'esterno /usr sono quelli necessari all'inizio del processo di avvio. Questa è una reliquia dal momento in cui i dischi erano piccoli e /usr potrebbe essere su un filesystem condiviso tra più workstation sulla rete, non è davvero una distinzione utile sulla maggior parte dei sistemi.
  • /boot contiene alcuni file necessari solo per avviare il sistema operativo e non per le operazioni quotidiane.

Ci sono altre directory che non corrispondono a nulla di Windows:

  • /root è la directory home dell'utente root. L'utente root è un account amministratore non legato a un particolare utente; è l'utente a cui si passa quando si esegue sudo. Ubuntu non consente all'utente root di accedere per impostazione predefinita.
  • /media e /mnt sono punti di mount: sono dove puoi vedere i filesystem di altri sistemi operativi e unità remote. L'equivalente di Windows è altre lettere di unità.
  • /proc e /sys mostra le informazioni di sistema. Su Windows, è necessario navigare tra i menu o chiamare i comandi di sistema o installare programmi di terze parti per vedere queste informazioni.

Ubuntu, come altre distribuzioni Linux, generalmente segue Linux Filesystem Hierarchy Standard.


19
2018-05-17 18:48





Ubuntu (come tutti i sistemi simili a UNIX) organizza i file in un albero gerarchico, in cui le relazioni vengono pensate in gruppi di figli e genitori. Le directory possono contenere altre directory oltre ai normali file, che sono le "foglie" dell'albero. Qualsiasi elemento dell'albero può essere un riferimento tramite un nome di percorso; un nome di percorso assoluto inizia con il carattere / (identificando la directory radice, che contiene tutte le altre directory e file), quindi viene elencata ogni directory figlia che deve essere attraversata per raggiungere l'elemento, ciascuna separata da un / segno.

Un nome di percorso relativo è uno che non inizia con /; in tal caso, l'albero delle directory viene attraversato a partire da un punto dato, che cambia in base al contesto, chiamato directory corrente. In ogni directory, ci sono due directory speciali chiamate. e .., che si riferiscono rispettivamente alla directory stessa e alla sua directory principale.

Il fatto che tutti i file e le directory abbiano una radice comune significa che, anche se sul sistema sono presenti diversi dispositivi di archiviazione, essi sono tutti visti come directory da qualche parte nell'albero, una volta montati nel luogo desiderato

Trova esempi e maggiori informazioni qui:


5
2018-05-17 18:18



Link molto buono. Grazie, Stephen. - Luis Alvarado♦