Se hai pensato di dare un'occhiata più da vicino a Linux ma sei scoraggiato da barre, punti, radici, montaggi e stranezze del terminale, questa introduzione alla struttura del filesystem di Linux spiega tutto da una prospettiva DOS/Windows. L'unico presupposto che ho fatto è che tu abbia una certa familiarità con il layout del filesystem di Windows, così come con alcuni DOS o Command (CMD
) Navigazione nella finestra. Scoprirai che Linux non è così diverso da Windows in molti modi. Non toccheremo nemmeno chi ha rubato cosa da chi perché è evidente che l'ispirazione viene da molti luoghi.
Solo così siamo chiari, so che Windows non è più basato su DOS. Ma sia Linux che Windows hanno un'interfaccia a riga di comando (CLI) e invece di chiamarla CMD
, Command Window o qualcos'altro, è più semplice utilizzare il termine legacy, DOS per la CLI di Windows. Sto anche usando i termini filesystem e struttura del filesystem in modo intercambiabile. Quello a cui mi riferisco è il layout di file, directory, configurazioni, paging e così via, e non la formattazione a livello di bit del filesystem come NTFS o XFS, per esempio.
Innanzitutto, sia Linux che Windows (e Mac) hanno un layout di filesystem gerarchico, il che significa che esiste una singola directory "root" e tutte le altre directory si diramano da quella. In Windows, le directory principali sono contrassegnate da lettere, come C:
o D:
. Windows può avere molte directory principali In Linux, la directory principale è designata come /
e c'è solo una directory radice per computer Linux. Alcuni riferimenti chiamano questo layout una struttura ad "albero":quando tutte le directory e le sottodirectory vengono espanse, il riferimento visivo è un albero invertito.
Confronta i due layout di seguito. Red Hat Enterprise Linux 8 è a sinistra e Microsoft Windows Server 2012 R2 è a destra. Nota le somiglianze e le differenze tra i due:
[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.]
Linux ha diverse directory sotto root (/
), mentre Windows ne ha relativamente pochi. Questo perché Windows mantiene tutto tranne le applicazioni sotto C:\Windows
directory. Le applicazioni risiedono in Program Files
o il Program Files (x86)
directory. Linux mantiene le sue applicazioni sotto il /usr
directory. Il /home
di Linux corrisponde al C:\Users
di Windows directory.
La tabella seguente mostra importanti directory Linux e le loro funzioni (il -> è un collegamento simbolico o una scorciatoia, nella terminologia di Windows):
Directory | Scopo |
---|---|
bin -> /usr/bin | Directory contenente i file binari utente. |
boot | Directory contenente i file del bootloader. |
dev | Directory contenente i file del dispositivo. |
etc | Directory contenente i file di configurazione. |
home | Directory contenente le home directory degli utenti. |
lib -> /usr/lib | Directory contenente le librerie di sistema. |
lib64 -> /usr/lib64 | Directory contenente le librerie di sistema a 64 bit. |
media | Dove vengono montati automaticamente DVD e dispositivi rimovibili. |
mnt | Directory utilizzata per il montaggio temporaneo di filesystem remoti e altri media. |
opt | Directory in cui sono installati alcuni software di terze parti. |
proc | Directory contenente le informazioni sul processo di sistema. |
root | La home directory dell'utente root. |
run | Una directory scratch di runtime (basata sulla RAM). |
sbin -> /usr/sbin | Directory contenente i file binari di sistema. |
srv | Directory contenente i dati del servizio. |
sys | Directory contenente dispositivi, moduli del kernel, filesystem e altre informazioni sui componenti del kernel. |
tmp | Directory contenente file temporanei. |
usr | Directory contenente i programmi utente. |
var | Directory contenente file variabili, come log e file temporanei. |
Nota che quando scrivi i nomi delle directory in Linux, includi sempre la directory principale (/
) e allo stesso modo, hai incluso (C:\
) in Windows. È importante includere i riferimenti alla directory principale su entrambi i sistemi operativi. Ad esempio, in Linux ci sono directory come /usr/bin
, /usr/sbin
e /tmp
. Windows può avere più radici, quindi potresti avere C:\Temp
, D:\Temp
e E:\Temp
sullo stesso sistema. Puoi vederlo semplicemente facendo riferimento a tmp
in Linux o Temp
in Windows è confuso e non abbastanza specifico per fare chiaramente riferimento a una directory specifica.
Noterai anche dai miei scritti che le barre per Linux sono barre inverse e Windows sono barre o "colpi". Ti sei mai chiesto perché la barra rovesciata è una parola ma la barra in avanti è due? In Linux, la barra rovesciata è un operatore che significa ignorare il carattere successivo, il che rovinerebbe davvero il percorso del file. Quindi, ci sono alcune differenze nel modo in cui interagisci con i due sistemi operativi, come navighi, dove si trovano le cose e PATH
designazioni, ma vedi anche molte somiglianze.
Sebbene Windows memorizzi i file di configurazione in molte posizioni diverse, la maggior parte di essi risiede da qualche parte sotto il C:\Windows
directory e le sue dozzine di sottodirectory. Linux usa quasi esclusivamente /etc
directory per le configurazioni. Le applicazioni in Linux spesso archiviano i propri file di configurazione nei propri etc
sottodirectory (si pronuncia etc
come et-see ). Nelle discussioni, se fai riferimento a /etc
directory, /tmp
, /home
, o qualsiasi altra directory di primo livello, non è necessario dire "barra". Dì solo la directory "etc", "home" o "tmp". Se ti riferisci a una sottodirectory, puoi dire "usr bin"(/usr/bin
) o "usr local bin"(/usr/local/bin
). E usr
si pronuncia "utente". È simile al modo in cui ti riferisci a C:\Windows
directory dicendo "la directory di Windows" (C:\Windows
) o in C:\Windows\System32
dicendo "la directory di Windows System32."
A proposito, Windows ha anche un etc
directory, ma è ben nascosto in C:\Windows\System32\drivers\etc
. In questo etc
directory, troverai file comuni a entrambi i sistemi operativi come hosts
, lmhosts
, protocol
, networks
e services
.
Alla riga di comando, navighi in entrambi i sistemi usando il cd
comando. L'unica cosa che devi ricordare è da che parte vanno le barre. Quando passi a Linux, scoprirai che la navigazione viene naturale e il /
la chiave si trova in una posizione molto più comoda rispetto a \
la chiave è. Anche se la direzione della barra non sarà il problema più grande che hai. Aspetta solo di digitare ls
in un C:\>
chiedi e renditi conto di ciò che hai fatto quando vedi 'ls' is not recognized as an internal or external command, operable program, or batch file
errore. Digitando dir
al prompt dei comandi di Linux è molto meno traumatico. Suggerimento:dir
è un alias per ls
in Linux.
Penso che troverai il filesystem di Linux organizzato, facile da navigare e un piacere da gestire. Nei post futuri tratteremo le autorizzazioni di Linux e ti mostreremo quanto sia veramente potente e sicuro Linux. Per ora, concentrati a familiarizzare con il layout e le posizioni di file e directory importanti.