Il file system di un sistema Linux, come ogni Unix, ha una struttura gerarchica: tutti i suoi oggetti (file e directory) sono contenuti all'interno della root ( la directory principale, indicata semplicemente con "/
" (barra) ) e lo stesso carattere / viene usato per separare i nomi delle directory ( Ad esempio /usr/bin/
indica la directory bin
contenuta nella directory usr
contenuta nella root (/
).
La root contiente non soltanto TUTTE le altre directory di una partizione ma TUTTI i filesystem eventualmente montati sul sistema (partizioni e hard disk diversi, floppy, cdrom, condivisioni di rete ecc.).
Il principio è radicalmente diverso da quello presente nel mondo Windows, dove ogni device o risorsa ha un suo nome o lettera identificativa (A:, C:, D: ecc) al cui interno si trovano le directory del relativo filesystem.
Su molti Linux, ad esempio, i file contenuti in un floppy disk si trovano in una directory chiamata /mnt/floppy
e non in qualcosa chiamato A:
come su Windows. Il nome di questa directory, oltretutto, può cambiare ed essere decisa arbitrariamente dall'utente o da chi ha realizzato la distribuzione (ovviamente esistono metodi per sapere in quale directory viene montato qualsiasi dispositivo).
Esistono alcune notazioni standard Unix per indicare la directory corrente, la directory padre, la home directory ecc.
E' opportuno conoscere bene queste convenzioni in quanto sono comunemente utilizzate in attività sistemistiche:
/
Come sopra riferito, indica la root, la directory principale alla base di tutto il filesystem
/bin/
Indica la sottodirectory bin (una arbitraria), alla root
bin/
Indica la sottodirectory bin rispetto alla dir corrente. Notare che se il path inizia con una / indica un path assoluto, che inizia dalla root ( /, appunto). Se non inizia con / indica un path relativo alla directory in cui ci si trova.
.
Indica la directory corrente
..
Indica la directory madre di quella in cui ci si trova
../bin/
Indica la sottodirectory bin che si trova allo stesso livello della dir corrente.
~
La home directory dell'utente corrente (coincide di default con /home/login_utente
Un path assoluto, quindi, avrà un simile aspetto: /usr/local/bin
e sarà funzionante in qualsiasi directory in cui ci si trova.
Un path relativo ha aspetto simile a local/bin
e indica directory diverse a seconda della directory in cui ci si trova. In questo caso local/bin coincide con /usr/local/bin
solo se ci si trova in /usr/
Comandi comuni
I comandi di gestione dei file su Unix sono paragonabili agli equivalenti di altri sistemi operativi a riga di comando come DOS. Tutti questi comandi, come tradizione Unix, hanno varie opzioni che possono ampliare notevolmente le potenzialità del comando stesso.
ls
Visualizza il contenuto di una directory (equivale a dir su Dos e in alcuni Linux esiste anche un alia di ls che si chiama proprio dir
);
cd
Cambia la directory corrente. Corrisponde all'omonimo cd su DOS.
cp
Esegue la copia di uno o più file. Corrisponde al copy di DOS.
mv
Esegue lo spostamente o la rinomicanzione di un file. Corrisponde a move e rename su DOS.
rm
Cancella uno o più file (fare attenzione: su molti Unix e Linux non è previsto l'equivalente di un cestino: se un file viene cancellato risulta poi piuttosto complesso recuperarlo). Corrisponde al del di DOS.
mkdir
e rmdir
Rispettivamente vengono usati per creare e cancellare una directory vuota.
ln
Viene usato per create un link, hard o soft (con l'opzione ln -s
).
Capire, muoversi e modificare file e directory: /, .., . , cd, ls, cp, mv, rm, rmdir, mkdir. Uso di link e symlink.
Introduzione al File System LinuxLe informazioni fondamentali per comprendere e gestire il file system e la logica delle directory su Linux