Introduzione ai sistemi UNIX/Linux

45
Introduzione ai sistemi UNIX/Linux Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet Domenico De Guglielmo E-mail: [email protected] Telefono: 050 2217 468 Pervasive Computing & Networking Lab (PerLab) http://www.perlab.it Dipartimento di Ingegneria dell’Informazione, Università di Pisa © 2008 V. Gardellin & S. L. Volpi & M. Di Francesco & D. Migliorini & I. Giannetti

Transcript of Introduzione ai sistemi UNIX/Linux

Page 1: Introduzione ai sistemi UNIX/Linux

Introduzione

ai sistemi UNIX/Linux Insegnamento di Sistemi Operativi di Rete

Master Universitario in Tecnologie Internet

Domenico De Guglielmo

E-mail: [email protected] Telefono: 050 2217 468

Pervasive Computing & Networking Lab (PerLab) http://www.perlab.it Dipartimento di Ingegneria dell’Informazione, Università di Pisa

© 2008 V. Gardellin & S. L. Volpi & M. Di Francesco & D. Migliorini & I. Giannetti

Page 2: Introduzione ai sistemi UNIX/Linux

2

Informazioni generali PerLab

Pagina web del corso

http://www2.ing.unipi.it/~a008149/corsi/master/mate

riale/index.html

Materiale:

Dispensa “Amministrazione di un Sistema UNIX in

Rete” a cura di Giuseppe Anastasi, Andrea Passarella

Sezione “Materiale per le esercitazioni”

Introduzione ai sistemi UNIX/Linux

Page 3: Introduzione ai sistemi UNIX/Linux

3

Programma del corso (esercitazioni) PerLab

Amministrazione di un sistema stand-alone:

Elementi fondamentali

Creazione e gestione degli account Gestione dei processi

Installazione di dispositivi Copie di backup.

Amministrazione di un sistema in rete:

Configurazione interfaccia di rete

Gestione delle risorse di rete

Installazione e configurazione di un server Web

Introduzione ai sistemi UNIX/Linux

Page 4: Introduzione ai sistemi UNIX/Linux

4

Sommario PerLab

Introduzione

informazioni storiche

caratteristiche

Installazione di Linux

operazioni preliminari

installazione

Elementi fondamentali organizzazione del filesystem

shell

comandi base altri comandi Introduzione ai sistemi UNIX/Linux

Page 5: Introduzione ai sistemi UNIX/Linux

5

Breve storia di Unix PerLab

1969 - Prima edizione di UNIX sviluppata da Ken

Thompson e Dennis Ritchie presso i Bell

Laboratories.

1973 - Thompson e Ritchie riscrivono UNIX in C.

Derivati di Unix:

BSD (Berkeley Software Distribution).

Introduzione ai sistemi UNIX/Linux

Page 6: Introduzione ai sistemi UNIX/Linux

6

Progetto GNU, FSF, GPL PerLab

1983, Stallman lancia il progetto GNU con lo scopo di sviluppare un sistema operativo Unix-like libero.

1985, Stallman fonda la Free Software Foundation (FSF), che promuove lo sviluppo di software libero ed, in particolare, del progetto GNU.

1989, Stallmann e Moglen scrivono la versione 1.0 della GPL (o GNU GPL, GNU General Public License).

La GPL è una licenza per software libero.

Introduzione ai sistemi UNIX/Linux

Page 7: Introduzione ai sistemi UNIX/Linux

7

GNU/Linux PerLab

GNU/Linux è un sistema

operativo Unix-like costituito

dall’integrazione del kernel Linux

con elementi del sistema GNU.

Prima versione rilasciata con

licenza GPL.

Esistono numerose varianti

(distribuzioni) tra cui:

Debian

Fedora

Ubuntu

Introduzione ai sistemi UNIX/Linux

Page 8: Introduzione ai sistemi UNIX/Linux

8

Caratteristiche PerLab

Caratteristiche fondamentali

Multitasking: è possibile la contemporanea

esecuzione di più processi a divisione di tempo.

Multi utenza: più utenti (con diversi privilegi)

possono interagire contemporaneamente.

Portabilità: grazie all’utilizzo del linguaggio C nella

realizzazione del sistema.

Modularità: suddivisione in moduli.

Introduzione ai sistemi UNIX/Linux

Page 9: Introduzione ai sistemi UNIX/Linux

9

Struttura di Unix PerLab

2 componenti principali:

kernel: il cui scopo è interagire con l’hardware.

applicazioni: che si rivolgono al nucleo per ottenere

i servizi richiesti dalle loro funzioni:

interpreti dei comandi (shell).

programmi di sistema (strumenti messi a disposizione

dal s.o.)

programmi utente.

Introduzione ai sistemi UNIX/Linux

Page 10: Introduzione ai sistemi UNIX/Linux

Installazione di Linux

Page 11: Introduzione ai sistemi UNIX/Linux

11

Preparazione del disco PerLab

Operazioni preliminari

fare spazio su disco

Ridimensionamento partizione Windows

direttamente in fase di installazione del S.O.

prima di procedere con l’installazione

Partition Magic

gparted (http://gparted.sourceforge.net)

consigliata deframmentazione preventiva

Introduzione ai sistemi UNIX/Linux

Page 12: Introduzione ai sistemi UNIX/Linux

12

Deframmentazione 1/3 PerLab

Introduzione ai sistemi UNIX/Linux

Page 13: Introduzione ai sistemi UNIX/Linux

13

Deframmentazione 2/3 PerLab

Introduzione ai sistemi UNIX/Linux

Page 14: Introduzione ai sistemi UNIX/Linux

14

Deframmentazione 3/3 PerLab

Introduzione ai sistemi UNIX/Linux

Page 15: Introduzione ai sistemi UNIX/Linux

15

Partizionamento PerLab

Partizioni primarie

specificate nella tabella delle partizioni del master

boot record (MBR)

al più quattro partizioni

una sola avviabile

Partizioni estese

permettono di avere delle sotto-partizioni (partizioni

logiche)

si può così superare il limite delle quattro partizioni

primarie

Introduzione ai sistemi UNIX/Linux

Page 16: Introduzione ai sistemi UNIX/Linux

16

Partizioni Linux PerLab

Per Linux in genere si usano almeno due

partizioni per

la root (/) per il sistema operativo

lo spazio di swap per la memoria virtuale

Si possono anche utilizzare altre partizioni per

la home (/home) per le informazioni degli utenti

la cartella /etc per i file di configurazione

la cartella /boot per i file di avvio

Introduzione ai sistemi UNIX/Linux

Page 17: Introduzione ai sistemi UNIX/Linux

17

Creazione degli utenti PerLab

Utente root

superutente, amministratore del sistema

può compiere qualsiasi tipo di operazione

Utente normale

utilizzatore del sistema

ha dei privilegi limitati

Fase di creazione degli utenti

l’utente root deve essere sempre creato

conviene creare un account utente normale per

l’utilizzo abituale del sistema operativo

Introduzione ai sistemi UNIX/Linux

Page 18: Introduzione ai sistemi UNIX/Linux

Elementi fondamentali

Page 19: Introduzione ai sistemi UNIX/Linux

19

Introduzione al filesystem PerLab

Necessità di memorizzazione dei dati

File

unità logica di memorizzazione dei dati

insieme di informazioni accessibili attraverso il

nome del file stesso

Cartella o directory

insieme di file e cartelle

Filesystem

sistema di immagazzinamento e di organizzazione

dei file

Introduzione ai sistemi UNIX/Linux

Page 20: Introduzione ai sistemi UNIX/Linux

20

Organizzazione dei filesystem PerLab

Struttura a grafo orientato

Introduzione ai sistemi UNIX/Linux

Page 21: Introduzione ai sistemi UNIX/Linux

21

Organizzazione del filesystem UNIX PerLab

Sottocartelle della cartella principale / (root)

/bin programmi eseguibili dall’utente

/dev file speciali corrispondenti ai dispositivi /etc file di configurazione del sistema /home cartelle personali degli utenti /lib librerie condivise

/opt package che non richiedono installazione /tmp file temporanei

/usr dati condivisi in sola lettura

/var file di dimensione variabile (es. file di log)

Introduzione ai sistemi UNIX/Linux

Page 22: Introduzione ai sistemi UNIX/Linux

22

Path PerLab

Percorso assoluto: si esprime l’intero percorso

partendo da root (/) Percorso relativo: si esprime partendo dalla

directory di lavoro

.

..

directory corrente directory padre

Introduzione ai sistemi UNIX/Linux

Page 23: Introduzione ai sistemi UNIX/Linux

1/2

23

Interprete dei comandi (shell) PerLab

Permette all’utente di interagire con il

S.O.mediante l’inserimento di comandi su

terminale

Raccoglie l’input dell’utente e mostra il

corrispondente output

Prompt dei comandi

Introduzione ai sistemi UNIX/Linux

Page 24: Introduzione ai sistemi UNIX/Linux

2/2

24

Interprete dei comandi (shell) PerLab

Funzioni

autocompletamento (tasto TAB)

history (freccia SU/GIU)

Attenzione

i filesystem UNIX-like sono case sensitive

maiuscole e minuscole sono importanti

esempio

file1, File1, FILE1, FiLe1, sono tutti file diversi

Introduzione ai sistemi UNIX/Linux

Page 25: Introduzione ai sistemi UNIX/Linux

25

Accesso al sistema PerLab

Login:

login: nome utente

password: password

Disconnessione:

logout oppure Ctrl-D

Introduzione ai sistemi UNIX/Linux

Page 26: Introduzione ai sistemi UNIX/Linux

26

Shutdown PerLab

I sistemi UNIX permettono solo all'utente root di

avviare la procedura di arresto del sistema con i

comandi seguenti: # shutdown -p now

# shutdown -r now (riavvio finale).

Introduzione ai sistemi UNIX/Linux

Page 27: Introduzione ai sistemi UNIX/Linux

Comandi di base

Page 28: Introduzione ai sistemi UNIX/Linux

/

28

Comando cd PerLab

cd (change directory) consente di passare da una directory ad un’altra.

La sintassi generale di cd è la seguente: cd [directory] Esempio dove sia uno la directory corrente, se si digita:

$ cd /prova (path assoluto)

si passa alla directory prova;

$ cd prova (path relativo) si passa alla directory prova;

$ cd ~ o cd

prova uno prova

Si passa alla directory home dell’utente;

$ cd ..

Si passa alla directory padre che, in tal caso, è /. Introduzione ai sistemi UNIX/Linux

Page 29: Introduzione ai sistemi UNIX/Linux

29

Comando pwd PerLab

pwd (print working directory) visualizza il percorso

assoluto della directory corrente.

Esempio:

$ cd /bin $ pwd /bin

Introduzione ai sistemi UNIX/Linux

Page 30: Introduzione ai sistemi UNIX/Linux

30

Comando ls 1/3 PerLab

ls (list segments) visualizza i nomi di file o il contenuto

delle directory indicate. La sintassi generale di ls è la seguente: ls [opzioni] [file/dir1 file/dir2…] [file/dir1 file/dir2…] : specificano i file e/o le

directory da elencare, in loro assenza è elencato il

contenuto della directory corrente.

[opzioni] : definiscono le opzioni con cui eseguire il comando ls. Tali opzioni vengono specificate dopo il simbolo - . Introduzione ai sistemi UNIX/Linux

Page 31: Introduzione ai sistemi UNIX/Linux

31

Comando ls 2/3 PerLab

Opzioni principali:

$ ls –l

Visualizza, oltre ai nomi, altre informazioni quali ad

esempio modalità di accesso, proprietario del file,…

$ ls –a

vengono elencati anche gli elementi i cui nomi

iniziano con punto (i cosiddetti file nascosti).

Le opzioni sono “cumulabili”, ad esempio è

possibile scrivere: $ ls –la Introduzione ai sistemi UNIX/Linux

Page 32: Introduzione ai sistemi UNIX/Linux

32

Comando ls 3/3 PerLab

Esempio:

per vedere il contenuto della directory / (1):

$ cd / $ ls bin dev home mnt tmp boot etc lib root var

per vedere il contenuto della directory / (2):

$ ls / bin dev home mnt tmp boot etc lib root var Introduzione ai sistemi UNIX/Linux

Page 33: Introduzione ai sistemi UNIX/Linux

33

insieme.

Wildcard PerLab

Insiemi di file possono essere riferiti usando i

metacaratteri (wildcard).

*: sostituisce zero o più caratteri. ?: sostituisce un carattere singolo.

[a,b,c] o [a-z]: sostituisce un carattere

nell’

Esempio: ls *.c

Elenca i file che terminano con .c

Introduzione ai sistemi UNIX/Linux

Page 34: Introduzione ai sistemi UNIX/Linux

34

Comandi help 1/2 PerLab

Documentazione consultabile tramite il

comando man (manual).

suddiviso in sezioni in base al tipo di argomento

trattato.

La sintassi generale è la seguente: man [n] nome_comando

[n] numero di sezione

Esempio:

$ man 1 printf Introduzione ai sistemi UNIX/Linux

Page 35: Introduzione ai sistemi UNIX/Linux

35

Comandi help 2/2 PerLab

Altri due comandi di help disponibili in Unix sono:

whatis: fornisce la riga sommario relativa ad un

comando. apropos: ricerca per parola chiave (opera in

modo analogo al comando man -k). Introduzione ai sistemi UNIX/Linux

Page 36: Introduzione ai sistemi UNIX/Linux

Altri comandi

Comandi sui file

Page 37: Introduzione ai sistemi UNIX/Linux

37

Comandi mkdir, rmdir, cp, mv PerLab

mkdir [opzioni] directory…: crea una directory.

rmdir [opzioni] directory…: elimina le directory

specificate solo se sono vuote.

cp [opzioni] origine destinazione: copia file

o directory in un'unica destinazione.

mv [opzioni] origine destinazione: sposta i

file e le directory.

Introduzione ai sistemi UNIX/Linux

Page 38: Introduzione ai sistemi UNIX/Linux

38

Comandi touch, cat, rm PerLab

touch [opzioni] file… : cambia data e ora di

accesso e di aggiornamento dei file. Se si specificano

file che non esistono, questi vengono creati vuoti.

cat [opzioni] file…: concatena dei file e ne

emette il contenuto attraverso lo standard output.

rm [opzioni] file…: Rimuove i file indicati come

argomento. In mancanza dell’indicazione delle opzioni

necessarie, non vengono rimosse le directory.

Introduzione ai sistemi UNIX/Linux

Page 39: Introduzione ai sistemi UNIX/Linux

39

Comandi lettura da file PerLab

less [opzioni] [file]… more [opzioni] [file]…

Utilizzati per leggere file di puro testo.

Introduzione ai sistemi UNIX/Linux

Page 40: Introduzione ai sistemi UNIX/Linux

40

Operazioni sui file PerLab

tail [opzioni] [file]… :

mostra le ultime linee di dati provenienti da uno o più

file di testo.

head [opzioni] [file]… :

mostra le prime linee di dati provenienti da uno o più

file di testo.

Introduzione ai sistemi UNIX/Linux

Page 41: Introduzione ai sistemi UNIX/Linux

Redirezione e pipeline

Page 42: Introduzione ai sistemi UNIX/Linux

42

Redirezione 1/2 PerLab

La redirezione redirige i dati in modo da destinarli ad un

file o da prelevarli da un file (uso di <, 2>, >, >>).

Redirezione dell’input (<)

$ cat < elenco Si ottiene in questo modo la visualizzazione del

contenuto del file elenco.

Redirezione dello standard error (2>)

$ lll 2> elenco Salva lo standard error nel file elenco. Introduzione ai sistemi UNIX/Linux

Page 43: Introduzione ai sistemi UNIX/Linux

43

Redirezione 2/2 PerLab

Redirezione dell’output (>, >>)

$ ls -l > elenco Questo comando genera il file elenco con il

risultato dell’esecuzione di ls.

Genera un nuovo file ogni volta, eventualmente

sovrascrivendo ciò che esiste già con lo stesso nome.

La redirezione dell’output può essere fatta in aggiunta,

aggiungendo i dati ad un file esistente con l’uso di >>:

$ ls -l /tmp >> elenco In tal modo viene aggiunto al file elenco

l’elenco dettagliato del contenuto della directory

/tmp. Introduzione ai sistemi UNIX/Linux

Page 44: Introduzione ai sistemi UNIX/Linux

44

Pipeline PerLab

La pipeline è una forma di redirezione in cui la

shell invia l’output di un comando come input

del successivo.

$ cat elenco | sort

In questo modo, cat legge il contenuto del file

elenco che, invece di essere visualizzato sullo

schermo, viene inviato dalla shell come input di sort

che lo riordina e poi lo emette sullo schermo.

Introduzione ai sistemi UNIX/Linux

Page 45: Introduzione ai sistemi UNIX/Linux

44

Risorse e riferimenti Riferimenti su dispensa:

PerLab

'Amministrazione di un Sistema UNIX in Rete', Cap 1 e 2

Altre risorse

Informazioni specifiche su Ubuntu:

"Ubuntu Pocket Guide and Reference”

http://www.ubuntupocketguide.com/

Partizionamento del disco

GParted Live http://gparted.sourceforge.net/livecd.php

Parted Magic http://partedmagic.com/

Virtual machine open source:

VirtualBox http://www.virtualbox.org/ Introduzione ai sistemi UNIX/Linux