Introduzione a
Linux
1
Tipi di sistemi operativi
MICROSOFT Windows
Hp/UX
OSF/1
2
I punti di forza di Linux
• Multiutenza
– Più utenti ciascuno con le sue impostazioni
– Supporto per la sicurezza tra gli utenti
• Multitasking
– Più flussi di esecuzione in parallelo
• Supporto SMP
– Sistemi con più processori per il calcolo spinto
• Grandi capacità di networking
– Il protocollo TCP/IP nasce su una variante di Unix
• Stabile
– Le soluzioni più avanzate nei sistemi operativi sono state
implementate per prime su Unix Æ Anni di sviluppo e di bug fixing
3
GNU
Il progetto GNU
4
Linux
• Nel 1991, un giovane studente universitario di
Helsinki, Linus Torvalds, decide di scrivere il
pezzo mancante (il kernel)
“I’m doing a (free) operating
system (just a hobby, won’t be
big and professional like gnu) “
Diffusione di Linux
z Ad oggi Linux è una scelta molto popolare in
molteplici contesti
− Server Web
S
− Sistemi di rete (es. server farm di Second Life)
− Applicazioni scientifiche (vedi Top500)
− Sistemi embedded (es. ebooks)
5
Il concetto di distribuzione Linux
• Un sistema GNU/Linux si compone di
– Un kernel (Linux)
– Software applicativo
• La quantità di software è impressionante
• Le sorgenti da cui recuperare questo software sono
molteplici
• Tutto il software è disponibile sotto forma di sorgente
• E' impraticabile
i ti bil la
l soluzione
l i di scaricare
i a mano tutto
t tt
il software e compilarlo
• Non ci sono speranze di riuscire e tenere aggiornato il
software seguendo questa strada
6
Pacchetti software
• Una distribuzione comprende svariati software
– Strumenti di sviluppo
– Editor
– Server di rete
• Ogni software viene racchiuso in un pacchetto che
comprende sia il programma che i dati di cui il
programma necessita (e.g. icone, file di appoggio,
documentazione))
• Alcuni software hanno delle dipendenze
– Non posso installare un editor grafico se non ho prima
installato l'interfaccia grafica
– Gestione di dipendenze (e conflitti) problematica
Informatica - A.A. 2009/2010 - LInux 0.12
7
Linux
I primi passi…
• Sistema multiutente
• necessità di autenticarsi al sistema
• procedura di login
• Componenti principali del sistema
• Kernel: gestisce le risorse base del sistema
(memoria, dischi, rete, CPU)
• Shell: interfaccia utente testuale Æ notevole
potenza espressiva al prezzo di una curva di
apprendimento piuttosto impegnativa
• GUI: interfaccia utente grafica, semplice da
usare, a cui si appoggia il Desktop
environment
Informatica - A.A. 2009/2010 - LInux 0.15
8
Interfaccia grafica
• GUI (Graphical User Interface) cambia aspetto
a seconda della distribuzione usata
• D
Desktop
kt environment
i t più
iù usati:
ti Gnome
G e
KDE – entrambi altamente personalizzabili
La riga di comando
• Metodo molto rapido e potente per digitare i
comandi ed eseguire azioni
• Meno intuitiva delle interfacce grafiche
• Più o meno sempre la stessa all’apparenza
• Acceduta da SHELL (o Terminale)
• Shell del progetto GNU: BASH
– Bourne Again Shell (il seguito della shell di
Bourne), 1989-2004
• NOTA: i comandi sono sensibili all'utilizzo
delle maiuscole e delle minuscole (case
sensitive)
Informatica - A.A. 2009/2010 - LInux 0.17
9
Alcuni comandi shell
• Comandi shell di base (per la sopravvivenza)
– ls: mostra contenuto di una directory
– cd dir: entro nella directory dir
– passwd: cambio password
– file filename: stampa il tipo di file di filename
– cat filename: mostra il contenuto di filename
– pwd: stampa la directory corrente
– man command: pagine di manuale su command
• Ciascuno dei comandi di shell va battuto in seguito
al prompt
• Ciascun comando termina con la pressione del
testo Enter
Informatica - A.A. 2009/2010 - LInux 0.18
Opzioni ed argomenti
• I comandi prevedono opzioni ed argomenti
– opzioni: specificano la modalità di operazione
– argomenti: specificano su cosa si opera (spesso
si tratta del nome di un file)
• Formato:
– nome_del_comando opzioni argomenti
• Opzioni:
p
– formato esteso ( ls –all )
– formato breve ( ls -a )
♦ più opzioni con un solo – (ls -al equivalente ad
ls -a -l), se non è richiesto un argomento per l'opzione
10
Organizzazione gerarchica dei file
z I file sono organizzati in maniera gerarchica
(ad albero)
z File: contenitori di dati
z Directory (cartelle): contenitori di file e di
directory
z Filesystem: un gruppo di directory e file, a
partire da una directory radice (root)
/
bin/ usr/
local/
Informatica - A.A. 2009/2010 - LInux 0.20
Percorsi relativi/assoluti
z Ciascun file può essere acceduto seguendo il
percorso (path) dalla directory radice al file
z P th assoluto:
Path l t sii parte
t dalla
d ll roott
z /usr/local è il path assoluto
z Path relativo: si parte da un'altra directory
z local è il path relativo di terminal rispetto alla directory /usr
bin/ usr/
local/
Informatica - A.A. 2009/2010 - LInux 0.21
11
Accesso ai file
z Simboli speciali utilizzati nei percorsi:
z “/”: indica la directory radice ed è un separatore
nel percorso
z “.”: indica la directory in cui l'utente si trova
attualmente
z “..”: indica la directory immediatamente
z ./local
sottodirectory
z -l: formato lungo (tutte le informazioni di un file)
12
Utenti e gruppi
z Gli utenti dei sistemi UNIX sono classificati in user e
group
z user: nome identificativo ((di solito <= 8 caratteri)) che
caratterizza l'utente
z memorizzati nel file /etc/passwd insieme a tutte le loro
altre proprietà
z group: è un insieme di utenti
z memorizzati nel file /etc/group
z Ciascun file ha associati:
z un utente creatore del file (owner)
z un gruppo di utenti che lavorano sul file (group)
z Utenti e gruppi permettono di garantire permessi di
accessi ai file a gruppi di utenti distinti
Informatica - A.A. 2009/2010 - LInux 0.24
13
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls
14
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls
z Permessi dell'owner
z r: l'owner (root) può leggere il file
z w: l'owner (root) può scrivere il file
z x: l'owner (root) può eseguire il file
z NOTA: il bit x può anche essere impostato ad
z s: setuid bit (esecuzione con i privilegi
dell'owner)
z accesso diretto risorse HW da parte di utenti
15
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls
Numero di hard
link al file
16
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls
Dimensione del
file in byte
17
Proprietà dei file
• Visibili con il comando ls -l
-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls
Data ed ora di
creazione
Path assoluto
del file
18
Creazione di file e directory
• mkdir: creazione di directory
• rmdir: rimozione di directory
• to ch creazione
touch: i di file
fil vuotiti
• rm: rimozione di file e directory
– -r: cancella in maniera ricorsiva le sottodirectory
– -f: forza la cancellazione senza chiedere
• NOTA: in Linux NON esiste un meccanismo
semplice per l'operazione di undelete (annullamento
cancellazione file)
– se per sbaglio cancellate un file, l'avete perso
per sempre
– a meno che non siate dei bravi hacker...
Informatica - A.A. 2009/2010 - LInux 0.36
19
Modifica permessi su un file
z chmod: permette di modificare i permessi
associati ad un file
z Due modalità:
20
Ricerca di file
• find: cerca il file richiesto in un albero di directory
– find <directory> -name <nome file>
– find <directory> -iname <nome file>
– Permette anche di eseguire comandi sui file
trovati
– E’ lento (si scorre tutte le sottodirectory)
• locate: interroga un database di locazioni dei
file
fil
– aggiornato tramite il comando updatedb
– veloce
– non permette di eseguire comandi sui risultati
Informatica - A.A. 2009/2010 - LInux 0.40
21
Visione contenuto file
• cat: stampa il contenuto del file su terminale
• more: visione di un file non bufferizzata (solo in avanti)
• less: visione di un file bufferizzata (avanti e indietro)
– less -Mr presenta un indicatore di progresso di
lettura
• head: stampa le prime n righe di un file
– head -n 10 file
• tail: stampa le ultime n righe di un file
– tail -n 10 file
– tail -f file output bufferizzato
• echo: stampa una stringa su terminale
Redirezione
• Deviazione dei canali standard (standard input,
standard output e standard error) da/verso altre
destinazioni
• Usa appositi comandi di redirezione
– comando > nome_file Redirezione output
– comando < nome_file Redirezione input
– comando >> nome_file
– comando1 | comando2 Redirezione
R di i output
t t con
funzione “appendi”
Pipeline
22