Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di...

22
1 Parte 1 Introduzione a Linux Organizzazione a strati del software Informatica - A.A. 2009/2010 - LInux 0.1

Transcript of Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di...

Page 1: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

1

Parte 1

Introduzione a Linux

Organizzazione a strati del software

Informatica - A.A. 2009/2010 - LInux 0.1

Page 2: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

2

Tipi di sistemi operativi

Hp/UXOSF/1

MICROSOFT Windows

Informatica - A.A. 2009/2010 - LInux 0.2

Origini dell’open source: Unix

• Cronistoria– Anni ‘60: progetto MULTICS

Sviluppato ai Bell LabsSistema operativo multiuso interattivoTroppo ambizioso, troppo complesso

– 1970: dalle ceneri del progetto MULTICS nasce UNICS (in seguito UNIX)♦ sviluppato in Assembly (linguaggio di bassissimo livello) presso♦ sviluppato in Assembly (linguaggio di bassissimo livello) presso

Bell Labs♦ Nasce dallo sforzo di D. Ritchie e K. Thompson

– 1976: Kernighan & Ritchie usano un nuovo linguaggio(il C) per riscrivere UNIX

Informatica - A.A. 2009/2010 - LInux 0.3

Page 3: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

3

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

Informatica - A.A. 2009/2010 - LInux 0.4

Concetti base di Unix

• Unix non è un unico sistema operativo ma una interafamiglia di sistemi operativi

• Negli anni si sono diffusi tanti “dialetti” Unix– BSD– System V– AIX– HP/UX– SCO

• Subdole incompatibilità tra i vari UnixProgetto GNU/Linux

Informatica - A.A. 2009/2010 - LInux 0.5

Page 4: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

4

GNU

Nel 1983 un giovane ricercatore Richardricercatore, Richard Stallman, decide di scrivere un nuovo sistema operativo compatibile con il modello UNIXGNU: GNU is not UNIXGNU: GNU is not UNIX

Informatica - A.A. 2009/2010 - LInux 0.6

Il progetto GNU

Un grande problema del progetto GNU è l'assenza di un kernel− Il nucleo del sistema operativo− Doveva essere basato su microkernel Mach− Mach non era ancora pronto a quel tempo

L'ambiente GNU deve appoggiarsi su kernelpreesistenti limitandone di fatto l'adozionepreesistenti, limitandone di fatto l'adozione

Ma forse è giunto il momento di spostarsi in Finlandia...

Informatica - A.A. 2009/2010 - LInux 0.7

Page 5: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

5

Linux

• Nel 1991, un giovane studente universitario di Helsinki, Linus Torvalds, decide di scrivere il pezzo mancante (il kernel)pezzo mancante (il kernel)

“I’m doing a (free) operatingsystem (just a hobby, won’t bebig and professional like gnu) “

Un anno dopo, viene rilasciata la

Informatica - A.A. 2009/2010 - LInux 0.8

versione 0.99Nasce l'ambiente GNU/LinuxDalla prima implementazione si è fatta molta strada...

Diffusione di LinuxAd oggi Linux è una scelta molto popolare in molteplici contesti

S− Server Web− Sistemi di rete (es. server farm di Second Life)− Applicazioni scientifiche (vedi Top500)− Sistemi embedded (es. ebooks)

Informatica - A.A. 2009/2010 - LInux 0.9

Page 6: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

6

Il concetto di distribuzione Linux• Un sistema GNU/Linux si compone di

– Un kernel (Linux)– Software applicativo– 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' i ti bil l l i di i t tt• E' impraticabile la soluzione di scaricare a mano tuttoil software e compilarlo

• Non ci sono speranze di riuscire e tenere aggiornato ilsoftware seguendo questa strada

Informatica - A.A. 2009/2010 - LInux 0.10

Il concetto di distribuzione Linux (2)

• Alcune organizzazioni si occupano di:– Raccogliere tutto il software– Compilarlo (o automatizzare la compilazione per

l'utente)– Metterlo a disposizione in modo che possa essere

scaricato dalla rete da un unico repository o burned su CDMantenere il software aggiornato (sia per nuove– Mantenere il software aggiornato (sia per nuoveversioni sia per patch legate alla sicurezza)

Informatica - A.A. 2009/2010 - LInux 0.11

Page 7: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

7

Pacchetti software• Una distribuzione comprende svariati software

– Strumenti di sviluppoEditor– Editor

– Server di rete• Ogni software viene racchiuso in un pacchetto che

comprende sia il programma che i dati di cui ilprogramma 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

Le principali distribuzioni Linux• Debian• Ubuntu

Mepis

• Knoppix - Gnoppix• Red-Hat• Fedora core• SUSE Linux

Sl k ( t )

Nasce nel 2003: inizialmente derivata dalla distribuzione Debian, ora la sua base di partenza è Ubuntu (pacchetti sofwarecon estensione .deb)

• Slackware (.tgz)• Gentoo• Elenco completo: http://www.distrowatch.com

Informatica - A.A. 2009/2010 - LInux 0.13

Page 8: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

8

Linux

I primi passi…• Sistema multiutente

• necessità di autenticarsi al sistema• procedura di login• 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 dipotenza espressiva al prezzo di una curva diapprendimento piuttosto impegnativa

• GUI: interfaccia utente grafica, semplice dausare, a cui si appoggia il Desktop environment

Informatica - A.A. 2009/2010 - LInux 0.15

Page 9: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

9

Interfaccia grafica • GUI (Graphical User Interface) cambia aspetto

a seconda della distribuzione usataD kt i t iù ti G• Desktop environment più usati: Gnome e KDE – entrambi altamente personalizzabili

Informatica - A.A. 2009/2010 - LInux 0.16

La riga di comando• Metodo molto rapido e potente per digitare i

comandi ed eseguire azioniMeno intuitiva delle interfacce grafiche• 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 diBourne), 1989-2004

• NOTA: i comandi sono sensibili all'utilizzo delle maiuscole e delle minuscole (case sensitive)

Informatica - A.A. 2009/2010 - LInux 0.17

Page 10: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

10

Alcuni comandi shell• Comandi shell di base (per la sopravvivenza)

– ls: mostra contenuto di una directorycd dir: entro nella directory dir– 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– man command: pagine di manuale su command

• Ciascuno dei comandi di shell va battuto in seguitoal 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 adls -a -l), se non è richiesto un argomento per l'opzione

Informatica - A.A. 2009/2010 - LInux 0.19

Page 11: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

11

Organizzazione gerarchica dei fileI file sono organizzati in maniera gerarchica (ad albero)

File: contenitori di datiFile: contenitori di datiDirectory (cartelle): contenitori di file e di directory

Filesystem: un gruppo di directory e file, a partire da una directory radice (root) /

Informatica - A.A. 2009/2010 - LInux 0.20

bin/ usr/

local/

Percorsi relativi/assolutiCiascun file può essere acceduto seguendo il percorso (path) dalla directory radice al file

P th l t i t d ll tPath assoluto: si parte dalla root/usr/local è il path assoluto

Path relativo: si parte da un'altra directorylocal è il path relativo di terminal rispetto alla directory /usr

/

Informatica - A.A. 2009/2010 - LInux 0.21

bin/ usr/

local/

Page 12: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

12

Accesso ai file

Simboli speciali utilizzati nei percorsi:“/”: indica la directory radice ed è un separatore nel percorso“.”: indica la directory in cui l'utente si trova attualmente“..”: indica la directory immediatamente superiore a quella attuale

Un percorso relativo di solito si indica riferendosi allaUn percorso relativo di solito si indica riferendosi alla directory attuale:

./sottodir1/sottodir2/file

./local

Informatica - A.A. 2009/2010 - LInux 0.22

Visione delle directoryCome stampiamo a video la directory corrente?

pwdCome visualizziamo il contenuto di una directory dirqualsiasi?

ls dirAlcune opzioni comuni di ls:

-a: visualizza tutti i file, anche quelli nascosti (ilcui nome comincia con il carattere .)cui nome comincia con il carattere .)-r: visualizza ricorsivamente tutto l'albero disottodirectory-l: formato lungo (tutte le informazioni di un file)

Informatica - A.A. 2009/2010 - LInux 0.23

Page 13: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

13

Utenti e gruppiGli utenti dei sistemi UNIX sono classificati in user e group

user: nome identificativo (di solito <= 8 caratteri) che( )caratterizza l'utente

memorizzati nel file /etc/passwd insieme a tutte le loroaltre proprietà

group: è un insieme di utentimemorizzati nel file /etc/group

Ciascun file ha associati:un utente creatore del file (owner)un gruppo di utenti che lavorano sul file (group)

Utenti e gruppi permettono di garantire permessi diaccessi ai file a gruppi di utenti distinti

Informatica - A.A. 2009/2010 - LInux 0.24

Permessi sui file

Schema linux di permessi: rwxRead: permesso di lettura sul fileWrite: permesso di scrittura sul fileeXecute: permesso di esecuzione del file

Tre insiemi di permessi associati ad un file:owner: permessi rwx dell'ownergroup: permessi rwx del gruppoother: permessi rwx per tutti gli altri

Informatica - A.A. 2009/2010 - LInux 0.25

Page 14: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

14

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Informatica - A.A. 2009/2010 - LInux 0.26

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Tipo di file e permessi particolari-: file regolare (eseguibile, file testo)b: dispositivo a blocchi

Informatica - A.A. 2009/2010 - LInux 0.27

c: dispositivo a caratterid: directoryl: links: socket

Page 15: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

15

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Permessi dell'ownerr: l'owner (root) può leggere il filew: l'owner (root) può scrivere il filex: l'owner (root) può eseguire il file

Informatica - A.A. 2009/2010 - LInux 0.28

NOTA: il bit x può anche essere impostato ads: setuid bit (esecuzione con i privilegi dell'owner)accesso diretto risorse HW da parte di utenti

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Permessi del gruppor: tutti gli utenti del gruppo root possono leggereil file

Informatica - A.A. 2009/2010 - LInux 0.29

-: tutti gli utenti del gruppo root non possono scrivere il filex: tutti gli utenti del gruppo root possono eseguire il file

Page 16: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

16

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Permessi di tutti gli altrir: tutti gli altri possono leggere il file-: tutti gli altri non possono scrivere il file

Informatica - A.A. 2009/2010 - LInux 0.30

x: tutti gli altri possono eseguire il file

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

Informatica - A.A. 2009/2010 - LInux 0.31

Page 17: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

17

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Owner del filel'utente root

Gruppo del file il gruppo root

Informatica - A.A. 2009/2010 - LInux 0.32

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

Informatica - A.A. 2009/2010 - LInux 0.33

Page 18: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

18

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

Informatica - A.A. 2009/2010 - LInux 0.34

Proprietà dei file

• Visibili con il comando ls -l-rwxr-xr-x 1 root root 75716 Jul 26 17:14 /bin/ls

Path assoluto del file

Informatica - A.A. 2009/2010 - LInux 0.35

Page 19: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

19

Creazione di file e directory• mkdir: creazione di directory• rmdir: rimozione di directory

to ch i di fil ti• touch: creazione di file vuoti• 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 (annullamentosemplice 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

Modifica utente owner e gruppo

chown: permette di modificare owner e gruppoiniziale di un file

chown <opzioni> <owner>:<gruppo> <file>chgrp <opzioni> <gruppo> <directory>-R: opera ricorsivamente sulle sottodirectory

Informatica - A.A. 2009/2010 - LInux 0.37

Page 20: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

20

Modifica permessi su un filechmod: permette di modificare i permessiassociati ad un fileDue modalità:

Ottale - rappresentazione ottale dei permessiSimbolica

Il primo set di caratteri rappresenta il tipo dipermesso: u=user, g=group, o=other, a=all (ugo)Il secondo set di caratteri rappresenta una mascheraIl secondo set di caratteri rappresenta una mascheradei permessi: r=read, w=write, x=executefra i due set di caratteri viene messo un + per abilitare i permessi oppure un – per disabilitarliES: chmod g+x nome_file

chmod ugo+wInformatica - A.A. 2009/2010 - LInux 0.38

Copia e spostamento di file• cp: copia file/directory

– cp <opzioni> <sorgente> <destinazione>-r: copia ricorsivamente sorgente in destinazione– -r: copia ricorsivamente sorgente in destinazione(con tutte le sottodirectory)

– -p: preserva (quando possibile) utenze e permessioriginali dei file

– -a: modalità archivio (equivalente a -r -p, ed altro)• mv: sposta file/directory

– mv <opzioni> <sorgente> <destinazione>

Informatica - A.A. 2009/2010 - LInux 0.39

Page 21: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

21

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 deifilfile– aggiornato tramite il comando updatedb– veloce– non permette di eseguire comandi sui risultati

Informatica - A.A. 2009/2010 - LInux 0.40

Ricerca di contenuti nei file

• grep: cerca la stringa richiesta nell'albero di directoryspecificato, e stampa le corrispondenze (match)– grep <opzioni> <stringa> <directory/file>– -r: opera ricorsivamente nelle sottodirectory– -i: trascura maiuscole/minuscole (case

insensitive)– -H: stampa il file contenente la stringa

n: stampa il numero di riga del file contenente– -n: stampa il numero di riga del file contenentela stringa

Informatica - A.A. 2009/2010 - LInux 0.41

Page 22: Introduzione a Linux - UNIMORE€¦ · Informatica -A.A. 2009/2010 - LInux 0.4 Concetti base di Unix • Unix non è un unico sistema operativo ma una intera famiglia di sistemi operativi

22

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 dilettura

• head: stampa le prime n righe di un file– head -n 10 file

• tail: stampa le ultime n righe di un 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

Informatica - A.A. 2009/2010 - LInux 0.42

Redirezione

• Deviazione dei canali standard (standard input, standard output e standard error) da/verso altre destinazioni

• Usa appositi comandi di redirezione– comando > nome_file– comando < nome_file– comando >> nome_file

Redirezione outputRedirezione input

R di i t t– comando1 | comando2

Informatica - A.A. 2009/2010 - LInux 0.43

Redirezione output con funzione “appendi”

Pipeline