Il sistema operativo UNIX/LINUX Niccolò Battezzati <[email protected]> Politecnico di Torino Dip. Automatica e Informatica Sistemi Operativi - Introduzione 1 Organizzazione SISTEMI OPERATIVI Docente: Prof. Pietro Laface ([email protected]) Esercitatore: Ing. Niccolò Battezzati ([email protected]) Sistemi Operativi - Introduzione 2 Organizzazione Esercitazioni in aula – MAR 14:30 – 16:00 (AULA 14 – non tutte le settimane) Laboratorio – MER 13:00 – 16:00 – MER 16:00 – 19:00 (LAIB 1D) Sistemi Operativi - Introduzione Squadre: – A: I-L + PoliTONG – B: J-Z – Alterniamo gli orari??? 3 Informazioni “utili” Web site corso: ulisse.polito.it/matdid/3ing_inf_N5030_TO_0/ come trovarlo: Google (“ulisse sistemi operativi”) laboratorio: http://www.cad.polito.it/staff/battezzati (didattica) libri di testo: – “The Linux A-Z”, Phil Cornes ISBN 0132347091 – Il web!!! Sistemi Operativi - Introduzione 4 Programma • Linux: introduzione e comandi principali • Shell: l’interprete dei comandi • Linux: dettagli e comandi avanzati • Shell: uso avanzato e script • [ vi(m): un editor di testo ] Sistemi Operativi - Introduzione 5 Indice • Introduzione • Il file system • I comandi principali Sistemi Operativi - Introduzione 7 Indice • Introduzione • Il file system • I comandi principali Sistemi Operativi - Introduzione 8 Caratteristiche principali • Multiutente (utenti multipli simultaneamente) a ogni user sono associati: Esiste l’utente “root” – username opp. – uid si puo` usare “sudo” – gid – password – home – shell – ... Sistemi Operativi - Introduzione 10 Caratteristiche principali • Multitask (processi multipli “simultaneamente”) a ogni processo sono associati: – user – pid – ppid – status – tty – ... Sistemi Operativi - Introduzione 11 La struttura Programs Shell Unix kernel HW Sistemi Operativi - Introduzione 12 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 13 Indice • Introduzione • Il file system • I comandi principali Sistemi Operativi - Introduzione 14 Il file system UNIX • Caratteristiche: – gerarchico – organizzazione a directory – uniformità di notazione (dischi, directory, file) – non esistono estensione e versione – permessi Sistemi Operativi - Introduzione 15 La gerarchia del file system • La directory radice dell’albero 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 17 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 18 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 19 Il path Per indicare un file all’interno del file system si deve specificarne il path: – path assoluto: /dir1/dir2/file – path relativo: subdir1/subdir2/file Sistemi Operativi - Introduzione 20 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: Tre numeri ottali definiscono – user (u) : il proprietario i permessi di un file: – group (g) : il gruppo rwx rwx rwx – others (o) : gli altri Es. 755 – 644 – … Sistemi Operativi - Introduzione 22 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 23 Indice • Introduzione • Il file system • I comandi principali Sistemi Operativi - Introduzione 25 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 26 Gestione file ordinari (cont.) • Opzioni: – -f non chiede mai conferma – -i chiede conferma per ciascun file – -r opera ricorsivamente su tutti i file contenuti nei sottodirettori Sistemi Operativi - Introduzione 27 Gestione directory • cd <dir> – cambia la directory a quella indicata • pwd – mostra il nome della directory corrente • mkdir <dir> – crea la directory indicata • rmdir <dir> – cancella la directory indicata (deve essere vuota) Sistemi Operativi - Introduzione 28 Gestione permessi • Per cambiare i permessi ai file: chmod [-R] permessi file • Permessi specificati in modo assoluto – tre numeri ottali Esempi: – chmod 775 nomefile Sistemi Operativi - Introduzione 30 Gestione permessi (cont.) • Permessi specificati 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 31 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 ricorsivamente su tutti i file delle sottodirectory Sistemi Operativi - Introduzione 33 Il comando ls • Visualizza l’elenco 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 -t: elenca i file in ordine temporale -r: ordine inverso (alfabetico/temporale) -R: elenca anche i file nei sottodirettori Sistemi Operativi - Introduzione 34 ls - un esempio # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 35 ls - un esempio Tipo di file # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 36 ls - un esempio Permessi # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 37 ls - un esempio N° di link # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 38 ls - un esempio Owner # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 39 ls - un esempio Group # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 40 ls - un esempio Dimensione # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 41 ls - un esempio Data di creazione # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 42 ls - un esempio Nome del file # ls -alg ~/tmp total 84 drwx------ 6 maino drwxr-xr-x 19 maino -rw-r--r-- 1 maino drwxr-x--- 2 maino -rw------- 1 maino -rw------- 1 maino drwxr-xr-x 2 maino -rw-r----- 1 maino -rw------- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino -rw-r----- 1 maino drwx------ 2 maino Sistemi Operativi - Introduzione staff staff staff staff staff staff staff staff staff staff staff staff staff 512 1024 1240 512 2416 332 512 27930 28077 70 1364 62 512 Sep Sep Jan May Jun Jun May Mar Mar Jun May May May 1 6 21 22 30 18 22 12 12 2 6 6 25 16:14 09:06 1992 14:08 15:24 15:29 14:08 23:19 22:52 18:00 14:20 14:21 14:36 . .. AA.readme examples gendata.c local.c man new.tex numer.tex prova.tex random.c random.h testprof 43 Visualizzazione di file testo • Mediante un editor (es. vi o emacs) • cat file … – visualizza i file, concatenandoli • head [-n] file … – visualizza le prime n righe • tail [-n] file … – visualizza le ultime n righe Sistemi Operativi - Introduzione 44 Visualizzazione una pagina per volta • pg file ... • more file ... • less file ... Sistemi Operativi - Introduzione 46 Visualizzazione una pagina per volta (cont.) • Comandi durante la visualizzazione: – spazio prossima pagina – return prossima riga –b pagina precedente – /pattern prossima occorrenza di ‘pattern’ – ?pattern occorrenza precedente di ‘pattern’ –q termina la visualizzazione Sistemi Operativi - Introduzione 47