Guida ai comandi da terminale: differenze tra le versioni

Riga 1 010: Riga 1 010:


== Gestione del File System ==
== Gestione del File System ==
=== Denominazione dei dischi fissi ===
 
Linux indica i dischi fissi collegati nel sistema in questo modo:
Se non si ha chiaro cosa sia un file system si veda prima [[http://guide.debianizzati.org/index.php/File_System | questa pagina]] introduttiva.
* <code>'''hdX'''</code> se si tratta di un disco IDE (usando versioni meno recenti del kernel)
* <code>'''sdX'''</code> se si tratta di un disco SATA (oppure, con le ultime versioni di Linux, anche i dischi IDE)
dove <code>X</code> è una lettera dell'alfabeto. Al primo disco del sistema sarà assegnata la lettera <code>a</code> (<code>hda</code> oppure <code>sda</code>) e via via saranno assegnate tutte le lettere che servono.<br>
Le partizioni di ogni disco vengono indicate con dei numeri progressivi:
* <code>1-4</code> indicano le partizioni primarie
* da <code>5</code> in poi sono le partizioni logiche
Ad esempio:
* <code>sda1</code> è la prima partizione primaria del nostro primo disco SATA
* <code>hdc5</code> è la prima partizione logica del nostro terzo disco IDE
Tutti i dischi presenti nel sistema vengono "elencati" sotto la directory <code>/dev</code>. Perciò il "nome completo" dei due dischi visti nell'esempio precedente sarà:
* <code>/dev/sda1</code>
* <code>/dev/hdc5</code>


=== Lista dei File System montati ===
=== Lista dei File System montati ===
Se si avesse l’esigenza di conoscere i File System montati nel sistema, utile per sapere come sono allocati in /dev, che tipo di permessi di lettura e scrittura si hanno in essi, e così via, si può semplicemente lanciare da qualunque utente il comando:
Se si avesse l’esigenza di conoscere i File System montati nel sistema, utile per sapere come sono allocati in /dev, che tipo di permessi di lettura e scrittura si hanno in essi, e così via, si può semplicemente lanciare da qualunque utente il comando:
<pre>
<pre>
mount
mount
</pre>
</pre>
Per ottenere in output la lista che cerchiamo.<br>
Per ottenere in output la lista che cerchiamo.<br>
Il file che dice a Linux quali dispositivi vanno montati all'avvio del sistema e dove vanno montati è <code>/etc/fstab</code>.
Il   file che dice a Linux quali dispositivi vanno montati all'avvio del   sistema e dove vanno montati è <code>/etc/fstab</code>.
 
=== Struttura del filesystem ===
In ambiente Windows ogni nuovo disco e ogni nuova partizione installati nel sistema si vedono attribuiti la lettera dell'alfabeto successiva all'ultima utilizzata. Ad esempio, se installassimo un nuovo disco fisso in un sistema Windows che utilizza:
* <code>A:</code> per il floppy
* <code>C:</code> per il disco di sistema
* <code>D:</code> per un secondo disco di dati
* <code>E:</code> per il masterizzatore
al nuovo disco verrebbe automaticamente assegnata la lettera <code>F:</code>. Un utente che in windows aprisse esplora risorse vedrebbe quindi subito tutti i dispositivi fisici installati con le relative cartelle e poco più sotto l'icona delle risorse di rete.<br>
In ambiente Linux le cose funzionano diversamente, infatti si vedono solo file e directory essedo i dispositivi fisici non immediatamente visibili. In genere questo è l'aspetto più traumatico per un utente abituato con windows; tralasciando il discorso delle risorse di rete basti sapere che i dispositivi fisici appaiono come file della cartella '''<code>/dev</code>'''.<br>
Il filesystem linux è strutturato a partire dalla sua '''radice''' (indicata con <code>'''/'''</code> e chiamata '''root''') e tutti i dischi e i dispositivi removibili vengono "agganciati" (l'operazione si chiama '''montaggio''', in inglese '''mount''') in una directory sotto <code>/</code>.<br>
Una comune struttura di filesystem Linux è la seguente (si digiti ad esempio <code>ls -hl /</code>):
<pre>
/
|
|-- bin/ (file eseguibili di base)
|
|-- boot/ (file necessari all'avvio)
|
|-- dev/ (file che rappresentano le periferiche hardware collegate al sistema)
|
|-- etc/ (file di configurazione del sistema e dei servizi)
|
|-- home/ (file personali degli utenti)
|    |
|    |- ferdy (file personali di ferdy)
|    |- cesca (file personali di cesca)
|
|-- media/ (periferiche esterne montate in automatico dal sistema)
|
|-- mnt/ (contenitore per le periferiche che vogliamo montare)
|
|-- opt/ (file e programmi opzionali, ad es. giochi)
|
|-- root/ (la home directory dell'utente root)
|
|-- sbin/ (file eseguibili solo dall'utente root)
|
|-- tmp/ (file temporanei)
|
|-- usr/ (i programmi installati sul sistema)
|    |
|    |- bin/ (gli eseguibili dei programmi installati)
|
|-- var/ (dati variabili. Ad es. database, caselle di posta, etc)
</pre>
È importante sottolineare che ciascun elemento del filesystem può fisicamente risiedere su un differente disco rigido, o perfino risorsa remota; la grossa comodità rispetto all'approccio windows è proprio questo, ovvero la possibilità che l'utente ha di distribuire qualsiasi directory (di sistema comprese) come meglio crede (in windows le cartelle <code>\Programmi</code> e <code>\Windows</code> devono obbligatoriamente risiedere sul disco fisico identificato con la lettera C:).
Mentre in Windows è visivamente facile distinguere tra cartelle e dispositivi fisici, in linux non lo è, ma questo accade semplicemente perché la '''rappresentazione''' della struttura di file e cartelle in linux esclude a priori i dispositivi fisici. È come se in windows da esplora risorse si vedesse semplicemente un albero di questo tipo (le lettere tra parentesi indicano in modo del tutto arbitrario il dispositivo fisico dove ciascuna cartella risiede effettivamente):
<pre>
Desktop (C:)
|
| -- Computer
|      |
|      | -- Programmi\ (C:)
|      |      | -- Microsoft\ (C:)
|      |      | -- Office\    (F:)
|      | -- Windows\  (C:)
|      |      | -- System\    (C:)
|      |      | -- System32\  (D:)
|      | -- Utenti\    (D:)
|      | -- Cartella1\ (D:)
|      |      | -- CartellaN\ (F:)
|      | -- Cartella2\ (D:)
|      | -- Cartella3\ (F:)
| -- Rete
</pre>


=== Connessione di nuove risorse ===
=== Connessione di nuove risorse ===
Riga 1 148: Riga 1 071:
Da questo momento il nostro disco non sarà più raggiungibile.
Da questo momento il nostro disco non sarà più raggiungibile.
{{ Warningbox | State attenti a '''non''' eseguire lo smontaggio di dischi di sistema o potreste rendere inutilizzabile il vostro PC }}
{{ Warningbox | State attenti a '''non''' eseguire lo smontaggio di dischi di sistema o potreste rendere inutilizzabile il vostro PC }}
=== Il file /etc/fstab ===
Questo utilissimo file di configurazione permette di definire quali risorse, locali o remote non fa differenza, montare automaticamente all'avvio del computer.
Si tratta di un file testuale organizzato su sei colonne:
# Per prima cosa si indica il dispositivo da montare, o attraverso il suo percorso (es.: <code>/dev/sdc</code>) oppure attraverso il suo UUID, un codice alfanumerico che lo identifica univocamente. Tale codice può essere determinato attraverso '''blkid''', la cui sintassi è <pre>blkid /dev/miodevice</pre>L'utilizzo dello UUID è limitato ai soli dispositivi presenti in <code>/dev/</code>, quindi le risorse di rete possono essere identificate solo attraverso il loro percorso di rete.
# La seconda colonna definisce il punto di montaggio della risorsa precedentemente specificata, come sempre deve trattarsi di una directory già esistente e VUOTA.
# In terza posizione si specificano i filesystem (in genere uno solo).
# Quarto si indicano tutte le opzioni relative al filesystem, avendo cura di separare ognuna con una virgola. L'elenco di tale opzioni è lungo, pertanto non si può evitare di fare riferimento al manuale di ''mount''.
# In quinta e sesta colonna possono essere indicati dei valori numerici rispettivamente utili per ''dump'' e ''fsck''. Di norma basta specificare un valore zero per entrambi, se necessario fare riferimento al manuale di ''mount''.
Di seguito alcune righe d'esempio per il suddetto file:
<pre>
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX    /home            ext4          defaults,acl              0    2
/dev/scd0                                    /media/cdrom1    udf,iso9660    user,noauto              0    0
//mioserver/miacartella                      /mnt/samba      cifs          _netdev,credentials=/percorso_file/credenziali,uid=1000,gid=1000,file_mode=0777,dir_mode=0775  0  0
mioserver:/                                  /mnt/nfs        nfs          _netdev,auto,hard,intr    0    0
</pre>
{{ Warningbox | '''/etc/fstab''' mal tollera i nomi e i percorsi non  standard, pertanto ove possibile evitare di scegliere nomi dei percorsi delle risorse contenenti spazi o altri caratteri speciali (tipicamente per le risorse remote). }}
Qualora  proprio non se ne potesse fare a meno è possibile indicare i caratteri  speciali in forma ottale (se tutti o solo alcuni non è dato saperlo); ad  esempio una cartella di nome '''<code>prova &del  %</code>''' dovrebbe essere indicata come  '''<code>prova\040\046del\040%</code>'''; si noti che mentre  la "e commerciale" e lo spazio devono essere indicati in forma ottale,  il simbolo "percento" può essere indicato normalmente.<br>
'''NB''': NON è detto che fstab accetti qualsiasi carattere speciale.<br>
A  [http://www.asciitable.com/ quest'indirizzo] è disponibile una tabella  di conversione per i primi 256 caratteri ASCII.


=== Cercare le directory che occupano più spazio ===
=== Cercare le directory che occupano più spazio ===
2 853

contributi