Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX/LINUX Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica
Sistemi Operativi - Introduzione 2 Organizzazione SISTEMI OPERATIVI Docente: Prof. Pietro Laface Esercitatore: Ing. Niccolò Battezzati Laboratorio –GIO 14:30 – 16:30 –GIO 16:30 – 18:30 (LABINF – account!!!) Esercitazioni in aula –GIO 12:30 – 14:30 (AULA 14)
Sistemi Operativi - Introduzione 3 Informazioni utili Web site corso: ulisse.polito.it/matdid/3ing_inf_N5030_TO_0/ come trovarlo: Google (ulisse sistemi operativi) laboratorio: (didattica) libri di testo: –The Linux A-Z, Phil Cornes ISBN –Il web!!!
Sistemi Operativi - Introduzione 4 Informazioni utili Per avere una distribuzione linux sul proprio pc: masterizzare il cd con lISO 3.avviare il pc dal cd 4.usare Ubuntu 1.in versione LIVE (funzionalita` ridotte) 2.installarlo sul pc (richiede di partizionare il disco) 3.installarlo su una macchina virtuale (Virtual Box, VMWare, Qemu)
Sistemi Operativi - Introduzione 5 Programma Linux: introduzione e comandi principali vi(m): un editor di testo Shell: linterprete dei comandi Linux: dettagli e comandi avanzati Shell: uso avanzato e script
Sistemi Operativi - Introduzione 6 Programma Linux: introduzione e comandi principali introduzione file system (base) comandi principali vi(m): un editor di testo demo delleditor introduzione alle regexp Shell: linterprete dei comandi introduzione sessioni funzioni di interpretazione scripting di base Linux: dettagli e comandi avanzati inode processi filtri (sed, grep, awk) Shell: uso avanzato e script regexp sintassi e controllo di flusso gestione parametri array 6 7
Sistemi Operativi - Introduzione 7 Indice Introduzione Il file system I comandi principali
Sistemi Operativi - Introduzione 8 Indice Introduzione Il file system I comandi principali
Sistemi Operativi - Introduzione 9 Una sessione di lavoro Inizio di una sessione: login: Password: Fine di una sessione: CTRL-d exit logout ATTENZIONE ! Unix è case sensitive: i caratteri maiuscoli sono considerati diversi da quelli minuscoli
Sistemi Operativi - Introduzione 10 Collegamento col sistema Aprendo una sessione in locale: username password Da un altro pc dotato di connesione TCP/IP: telnet ssh
Sistemi Operativi - Introduzione 11 Caratteristiche principali Multiutente (utenti multipli simultaneamente) a ogni user sono associati: –username –uid –gid –password –home –shell –... Esiste lutente root opp. si puo` usare sudo
Sistemi Operativi - Introduzione 12 Caratteristiche principali Multitask (processi multipli simultaneamente) a ogni processo sono associati: –user –pid –ppid –status –tty –...
Sistemi Operativi - Introduzione 13 La struttura Programs Shell Unix kernel HW
Sistemi Operativi - Introduzione 14 I comandi in UNIX La sintassi di un generico comando UNIX è: comando [-opzioni] [argomenti] I comandi troppo lunghi possono essere continuati sulla riga successiva battendo \ come ultimo carattere della riga Si possono dare più comandi sulla stessa riga separandoli con ; comando1 ; comando2 ;... Essi saranno eseguiti in sequenza
Sistemi Operativi - Introduzione 15 Il manuale in linea Tutti i comandi di Unix sono documentati: –man –apropos –whatis info
Sistemi Operativi - Introduzione 16 Indice Introduzione Il file system I comandi principali
Sistemi Operativi - Introduzione 17 Il file system UNIX Caratteristiche: –gerarchico –organizzazione a directory –uniformità di notazione (dischi, directory, file) –non esistono estensione e versione –permessi
Sistemi Operativi - Introduzione 18 La gerarchia del file system / bin sbin dev etc lib tmp var usr adm spool tmp bin etc include lib man local
Sistemi Operativi - Introduzione 19 La gerarchia del file system La directory radice dellalbero e` / (slash) La directory corrente e` indicata con "." (dot) Il padre della directory corrente è indicato con ".." (dot dot) Le directory si separano con /
Sistemi Operativi - Introduzione 20 I nomi dei file Il nome di un file può essere una sequenza di caratteri qualunque Non esistono estensione e versione Esistono comunque desinenze o nomi molto usati:.c.f.p.o.a.so a.out core Se il nome di un file inizia col carattere punto "." è detto file nascosto perchè normalmente non viene elencato
Sistemi Operativi - Introduzione 21 I nomi dei file (cont.) Si sconsiglia di utilizzare i seguenti caratteri nei nomi dei file: –/ \ ' * ; ? [ ] ( ) ~ –! $ { } & | Si può usare il carattere spazio (ma attenzione!) –Provate a scrivere il seguente programma in C: Il programma prende sulla linea di comando (argv) due parametri, il nome di due file. Successivamente legge prima il primo e poi il secondo e li stampa a video. NOTA: i nomi dei due file possono contenere spazi!!!
Sistemi Operativi - Introduzione 22 Il path Per indicare un file allinterno del file system si deve specificarne il path: –path assoluto: /dir1/dir2/file –path relativo: subdir1/subdir2/file
Sistemi Operativi - Introduzione 23 I file: classificazione Un solo tipo fisico di file: –byte stream (sequenza di byte) Quattro tipi logici di file: –file ordinario: ad esempio, i file di testo, eseguibili... – directory: contiene nomi ed indirizzi di altri file –special file: un entry point per un dispositivo di I/O –link: un puntatore ad un altro file
Sistemi Operativi - Introduzione 24 I link Due tipi di link: –hard link: un nome (in una directory) che punta ad un i-node puntato anche da altri nomi –soft link (symbolic link): un file che come unico blocco dati ha il nome di un altro file Particolarità: –no hard link ad una directory –no hard link a file su un altro file system –un file è fisicamente rimosso solo quando tutti i suoi hard link sono stati rimossi
Sistemi Operativi - Introduzione 25 I permessi dei file Tre permessi di base: –read (r) : permesso di lettura –write (w) : permesso di scrittura –execute (x) : permesso di esecuzione Tre tipi di utenti: –user (u) : il proprietario –group (g) : il gruppo –others (o) : gli altri Tre numeri ottali definiscono i permessi di un file: rwx rwx rwx Es. 755 – 644 – …
Sistemi Operativi - Introduzione 26 Le protezioni dei direttori Le protezioni di una directory hanno un significato particolare: –x: attraversamento della directory –r: elenco dei file –w: creazione e/o cancellazione di file
Sistemi Operativi - Introduzione 27 Modi speciali Tre modi speciali (per i file eseguibili): –setuid (s) : viene eseguito come se fosse root ad eseguirlo –setgid (S) : viene eseguito con lo stesso GID di root –sticky (t) : l'inamovibile; se settato per una directory, allora unicamente il proprietario del file contenuto o della directory (o root) può cancellare o rinominare i file nella cartella; il divieto vale anche qualora la persona abbia i permessi per scrivere nella directory
Sistemi Operativi - Introduzione 28 Indice Introduzione Il file system I comandi principali
Sistemi Operativi - Introduzione 29 Gestione file ordinari cp [-fir] src1 src2... dest –copia uno o più file (eventualmente in una directory) rm [-fir] file1 file2 … –cancella i file elencati mv [-fi] file1 file2... dest –sposta (rinomina) uno o più file, eventualmente in una directory
Sistemi Operativi - Introduzione 30 Gestione file ordinari (cont.) Opzioni: –-f non chiede mai conferma –-i chiede conferma per ciascun file –-r opera recursivamente su tutti i file contenuti nei sottodirettori
Sistemi Operativi - Introduzione 31 Gestione directory cd –cambia il direttorio a quello indicato pwd –mostra il nome del direttorio corrente mkdir –crea il direttorio indicato rmdir –cancella il direttorio indicato (deve essere vuoto)
Sistemi Operativi - Introduzione 32 I link ln source alias –crea un hard link ln -s source alias –crea un soft link
Sistemi Operativi - Introduzione 33 Gestione permessi Per cambiare le protezioni ai file: chmod [-R] protezioni file Protezioni specificate in modo assoluto –tre numeri ottali Esempi: – chmod 775 nomefile
Sistemi Operativi - Introduzione 34 Gestione permessi (cont.) Protezioni specificate in modo simbolico –una stringa di tre caratteri 1) u(ser), g(roup), o(ther), a(ll) 2) +, -, = 3) r, w, x Esempi: – chmod g+r nomefile
Sistemi Operativi - Introduzione 35 Gestione permessi (cont.) umask –mostra (in forma assoluta) i permessi che sono negati quando si crea un file (la maschera delle protezioni); ad es. con modo 666, si ha, se umask riporta 022, 666 & ~022 = 644 (man 2 umask) umask maschera –per definire la maschera delle protezioni
Sistemi Operativi - Introduzione 36 Gestione permessi (cont.) Per cambiare il proprietario e/o gruppo dei file: chown [-R] utente[:gruppo] file chown [-R] uid[:gid] file In entrambi i casi, con l'opzione -R opera recursivamente su tutti i file delle sotto- directory
Sistemi Operativi - Introduzione 37 Il comando ls Visualizza lelenco dei file con le loro caratteristiche ls [-opzioni] [file...] Opzioni: -a:elenca anche i file che iniziano con. -l:output in formato esteso -g:include l'indicazione del gruppo -r:ordine inverso (alfabetico/temporale) -t:elenca i file in ordine temporale -R:elenca anche i file nei sottodirettori
Sistemi Operativi - Introduzione 38 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof
Sistemi Operativi - Introduzione 39 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Tipo di file
Sistemi Operativi - Introduzione 40 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Protezioni
Sistemi Operativi - Introduzione 41 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof N° di link
Sistemi Operativi - Introduzione 42 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Owner
Sistemi Operativi - Introduzione 43 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Group
Sistemi Operativi - Introduzione 44 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Dimensione
Sistemi Operativi - Introduzione 45 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Data di creazione
Sistemi Operativi - Introduzione 46 ls - un esempio # ls -alg ~/tmp total 84 drwx maino staff 512 Sep 1 16:14. drwxr-xr-x 19 maino staff 1024 Sep 6 09:06.. -rw-r--r-- 1 maino staff 1240 Jan AA.readme drwxr-x--- 2 maino staff 512 May 22 14:08 examples -rw maino staff 2416 Jun 30 15:24 gendata.c -rw maino staff 332 Jun 18 15:29 local.c drwxr-xr-x 2 maino staff 512 May 22 14:08 man -rw-r maino staff Mar 12 23:19 new.tex -rw maino staff Mar 12 22:52 numer.tex -rw-r maino staff 70 Jun 2 18:00 prova.tex -rw-r maino staff 1364 May 6 14:20 random.c -rw-r maino staff 62 May 6 14:21 random.h drwx maino staff 512 May 25 14:36 testprof Nome del file
Sistemi Operativi - Introduzione 47 Visualizzazione di file testo Mediante un editor (es. vi o emacs) cat file1 file2 … –concatena i file in output head [-n] file … –visualizza le prime n righe tail [-n] file … –visualizza le ultime n righe
Sistemi Operativi - Introduzione 48 Visualizzazione di file testo (cont.) tail [-n] [+n] [-rf] file … –Visualizza: -n:le ultime n righe +n:tutto il file tranne le prime n righe -r:visualizza le righe in ordine inverso -f:rilegge continuamente il file
Sistemi Operativi - Introduzione 49 Visualizzazione una pagina per volta pg file... more file... less file...
Sistemi Operativi - Introduzione 50 Visualizzazione una pagina per volta (cont.) Comandi durante la visualizzazione: –spazioprossima pagina –return prossima riga –bpagina precedente –/patternprossima occorrenza di pattern –?pattern occorrenza precedente di pattern –q termina la visualizzazione
Sistemi Operativi - Introduzione 51 Ricerca di file find direttorio espressione –visita tutto l'albero sotto il direttorio specificato ed opera sui file che rendono vera l'espressione Esempio: – find./src -name *.c
Sistemi Operativi - Introduzione 52 Ricerca di file (cont.) -name pattern –attenzione: racchiudere il pattern tra apici se si usano espressioni regolari (es A*) -type tipo -exec comando \; –esegue il comando specificato per ogni file trovato –i file trovati si indicano con \{} Esempio: – find. –name *.old -type f –exec rm –f \{} \;
Sistemi Operativi - Introduzione 53 Confronto di file diff [-opzioni] file1 file2 –mostra le righe diverse, indicando quelle aggiunte (a), cancellate (d) e cambiate (c) diff [-opzioni] dir1 dir2 –effettua il confronto tra tutti i file con lo stesso nome nei due direttori
Sistemi Operativi - Introduzione 54 Confronto di file Opzioni: -b: ignora gli spazi a fine riga, collassa gli altri -i: ignora la differenza maiuscolo/minuscolo -w: ignora completamente la spaziatura
Sistemi Operativi - Introduzione 55 Occupazione di spazio su disco df [-k] [disco...] –per controllare l'occupazione dei dischi –-k: occupazione in KB du [-aks] direttorio … –per vedere lo spazio occupato da un direttorio e tutti i suoi sottodirettori –-a: occupazione di ciascun file –-s: solo il totale complessivo –-k: occupazione in KB
Sistemi Operativi - Introduzione 56 df: esempio $ df Filesys.1024-bl.Used Av. Cap. Mnt /dev/hda % / /dev/hda % /usr /dev/hda % /home/pc Av. Available, Cap. Capacity, Mnt Mount point