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
Scarica

so_1011_1 - CAD Group