File System I parte File System Dati e Programmi sono organizzati mediante una struttura di files e directories: file: collezione di dati directory: collezione di file o di directory Il file system possiede un insieme di utilities per creare modificare riprodurre distruggere ecc. files o dir. Caratteristiche Principali: Struttura gerarchica File senza struttura ("byte stream") Protezione da accessi non autorizzati File & device independence 1
File File ordinari Directory File speciali File Ordinari Flusso indifferenziato di byte ("byte stream") Possono contenere informazioni qualsiasi (dati, programmi sorgente, programmi oggetto,...) File di tipo testo (formati da linee di caratteri ASCII) caratteri - newlines - eof File binari: sequenze di codici binari 000110001.. Il sistema non impone nessuna struttura alla sequenza di byte Un file è identificato da un nome (max 256, car alfabetici, numerici e underscore) Nomi di file riservati: / (slash) root directory -. (period) directory attuale -.. (double period) directory padre - ~ (tilde): home directory Non può iniziare con un numero o con un punto (?) Estensione: (.estensione) raggruppa files in base al loro contenuto. 2
file file cerca di determinare l uso che ne può essere fatto. od legge contenuto file bytexbyte (file dump). Cosa posso fare? ditemelo voi! Operazioni su file Creazione: vi, touch, cat,. Ricerca: find, grep,... Copia: cp Cancellazione: rm Spostamento: mv Ridenominazione: mv... 3
Ricerca Operazioni su file Opzioni Esempi ricerca 4
Esempi ricerca Esempi ricerca 5
Esempi ricerca Trova tutti i file nella working directory (o più sotto) di nome a.out il cui ultimo accesso è anteriore a 7 giorni % find. -name a.out -atime +7 Eliminare tutti i file nella working directory (o più sotto) di nome a.out il cui ultimo accesso è anteriore a 7 giorni % find. -name a.out -atime +7 -exec rm {} \; Stampa Stampa file: lpr nomefile[s] Tecnica di spool: inserite in una coda ed eseguite in background Visualizza coda dei job di stampa lpq Cancellare un job di stampa dalla coda: lprm Idjob opzione -P 6
Link I link sono particolari file ordinari che puntano ad altri file o directory. + flessibilità della struttura gerarchica del FS consentono condivisione file tra dir diverse, no duplicazione Utilizzo dei link: la struttura del FS diviene un grafo aciclico La condivisione di un file è ottenuta mediante la primitiva LINK oppure tramite il comando ln ln /usr/user1/prog/a link_a Il file a è identificato mediante due cammini differenti: /usr/user1/prog/a /usr/user2/prog/link_a Link 7
Link Hard-link o fisici:quelli visti finora - non possono essere usati tra FS differenti Soft-link o simbolici: informazioni sul percorso per trovare il file opzione -s Come riconosco un link Hard-link o fisici: i-node Soft-link o simbolici: 8
Directory Sono sequenze di byte, come i file ordinari. A differenza dei file ordinari Non contengono dati ma un elenco di nomi di file e relativi riferimenti ad altre strutture dati del file system Non possono essere scritte da programmi ordinari Una directory è un indice contenente i riferimenti (i-number) di tutti i file memorizzati nella directory stessa dir: etc home ecc file ordinario: README Struttura ad albero / radice (root) ramo etc home bin dev nodo dir corrente users web bash README foglie 9
path relativi e assoluti ogni utente può specificare un file attraverso: - nome relativo: è riferito alla posizione dell utente nel file system (direttorio corrente) - nome assoluto: è riferito alla radice della gerarchia ( / ) nomi particolari. è il direttorio corrente (visualizzato da pwd).. è il direttorio padre Comandi per la gestione del FS pwd,cd, rm, cp, mv, mkdir, rmdir Tipiche dir del FS /bin comandi eseguibili /dev files speciali (I/O devices) /etc files per l amministrazione del sistema, ad esempio: /etc/passwd /lib librerie di programmi /tmp area temporanea /home home directory degli utenti 10
home sweet home Ad ogni utente viene assegnata, da parte del system administrator, una directory di sua proprietà (home directory) che ha come nome lo username dell utente stesso In essa, l'utente potrà creare tutti i file (o subdirectory) che desidera Spesso, ma non sempre, le home directory sono sotto la directory di sistema /home Per denotare la propria home directory si può usare l'abbreviazione "~" Working directory Ogni utente opera, ad ogni istante, su una directory corrente, detta working directory (pwd) (dopo la login e la sua home) L'utente può cambiare la working directory con il comando cd 11
Esempio: ls nadja@lab3-linux:~$ ls -l total 3 -rw-r-r- - 1 nadja staff 57 apr 1 13:00 f1.txt lrw-r-r- - 1 nadja staff 1024 apr 4 12:00 f2.txt tipo di file diritti(user,group,others) n.ro link propietario gruppo dimensione(byte) data ultimamodif nome File Speciali Ogni device di I/O viene visto, a tutti gli effetti, come un file (file speciale) A blocchi: associati a dispositivi che presentano blocchi di informazione accessibili direttamente (es. dischi) A caratteri: associati a dispositivi che presentano un flusso di caratteri in ingresso o uscita (es. terminali, stampanti) Richieste di lettura/scrittura da/a file speciali causano operazioni di input/output dai/ai device associati Tutte le operazioni di I/O relative ai dispositivi fisici vengono effettuate applicando le normali primitive definite per file normali, sui corrispondenti file speciali cp file /dev/lp Copia file sulla stampante, producendone la stampa 12
File Speciali Vantaggi: Trattamento uniforme di file e device File & device independence: programmi portabili e facilmente interfacciabili con ogni tipo di device File e directory: permessi Ad un file possono essere attribuiti i seguenti permessi: Lettura (r-ead) Scrittura (w-rite) Esecuzione (e-x-ecute) I permessi sono definiti per: utente proprietario (user) gruppo (a cui appartiene il proprietario) (group) altri (others) Al momento della creazione di un file o di una dir: vengono assegnati i permessi di lettura e scrittura al proprietario 13
File e directory: permessi Per i file ordinari: r: leggere il contenuto w: modificare il contenuto x: eseguire il file (ha senso solo se il file contiene un programma) Per i file speciali: r: leggere dal device (input) w: scrivere sul device(output) x: non significativo Per le directory: r: leggere il contenuto directory (es.: ls, con x abilitato) w: modificare la directory, rimuovere files (con x abilitato) x: accesso (scansione) della directory (per leggere, modificare, eseguire un file in essa contenuto) NB: i permessi definiti su un file dipendono dai permessi della directory che contiene il file chmod 14
chmod chmod [ugoa][+-][rwx] filename Permette di cambiare i permessi di accesso (lettura, scrittura, esecuzione) su un file il comando può essere eseguito solo dall utente proprietario (o dal superuser) chmod Una volta stabilita questa corrispondenza i permessi possono essere dedotti o impostati utilizzando un numero ottale. Combinazione di 3 numeri ottali: rwx 15
chown chown newuserid file... change owner: cambia l utente propietario di un file L utente identificato da newuserid diventa il nuovoproprietario dei file Il comando può essere eseguito solo dal proprietario "cedente (o dal superuser) chgrp chgrp newgid file... change group: cambia il gruppo propietario di un file Il gruppo identificato da newgid diventa il nuovo gruppo proprietario dei file Il comando può essere eseguito solo dal proprietario "cedente (o dal superuser) 16
touch touch [ options][ time] filename aggiorna la data e l'ora dell'ultimo accesso (opzione -a) o dell'ultima modifica (opzione -m) di filename (default: -am) se time non è specificato, usa la data e l'ora corrente se il file non esiste, lo crea %touch 01281738 file1 % ls -l total 0 ----r--r-- 1 user11 usrmail 0 Jan 28 17:38 file1 17