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])
Esercitazioni in aula
– GIO 12:30 – 14:30
(AULA 14)
Sistemi Operativi - Introduzione
Laboratorio
– GIO 14:30 – 16:30
– GIO 16:30 – 18:30
(LABINF – account!!!)
2
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
3
Informazioni “utili”
Per avere una distribuzione linux sul proprio pc:
1.
2.
3.
4.
www.ubuntu.com/getubuntu/download
masterizzare il cd con l’ISO
avviare il pc dal cd
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
4
Programma
• Linux: introduzione e comandi principali
• vi(m): un editor di testo
• Shell: l’interprete dei comandi
• Linux: dettagli e comandi avanzati
• Shell: uso avanzato e script
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
Collegamento col sistema
• Aprendo una sessione in locale:
• username
• password
• Da un altro pc dotato di connesione TCP/IP:
• telnet <hostname>
• ssh [<username>@] <hostname>
Sistemi Operativi - Introduzione
10
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
11
Caratteristiche principali
• Multitask (processi multipli “simultaneamente”)
a ogni processo sono associati:
– user
– pid
– ppid
– status
– tty
– ...
Sistemi Operativi - Introduzione
12
La struttura
Programs
Shell
Unix kernel
HW
Sistemi Operativi - Introduzione
13
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
14
Il manuale in linea
• Tutti i comandi di Unix sono documentati:
–man <comando>
– apropos <termine>
– whatis <comando>
• info
Sistemi Operativi - Introduzione
15
Indice
• Introduzione
• Il file system
• I comandi principali
Sistemi Operativi - Introduzione
16
Il file system UNIX
• Caratteristiche:
– gerarchico
– organizzazione a directory
– uniformità di notazione (dischi, directory, file)
– non esistono estensione e versione
– permessi
Sistemi Operativi - Introduzione
17
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
19
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
20
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
21
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
22
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
23
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
25
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
26
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
27
Indice
• Introduzione
• Il file system
• I comandi principali
Sistemi Operativi - Introduzione
28
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
29
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
30
Gestione directory
• cd <dir>
– cambia il direttorio a quello indicato
• pwd
– mostra il nome del direttorio corrente
• mkdir <dir>
– crea il direttorio indicato
• rmdir <dir>
– cancella il direttorio indicato (deve essere
vuoto)
Sistemi Operativi - Introduzione
31
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
33
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
34
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
35
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 sottodirectory
Sistemi Operativi - Introduzione
36
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
-r: ordine inverso (alfabetico/temporale)
-t: elenca i file in ordine temporale
-R: elenca anche i file nei sottodirettori
Sistemi Operativi - Introduzione
37
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 38
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 39
ls - un esempio
Protezioni
# 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
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 41
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 42
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 43
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 44
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 45
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 46
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
47
Visualizzazione una pagina
per volta
• pg file ...
• more file ...
• less file ...
Sistemi Operativi - Introduzione
49
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
50
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
51
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
52
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
53
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
54
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
55
df: esempio
$ df
Filesys. 1024-bl. Used
Av.
Cap. Mnt
/dev/hda3 199270 182354 6625 96% /
/dev/hda1 61060
20967
36939 36% /usr
/dev/hda4 199271 147953 41027 78% /home/pc
Av. Available, Cap. Capacity, Mnt Mount point
Sistemi Operativi - Introduzione
56
Scarica

so_0910_1