Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software...

45
© Castelli Flavio - 2012 Panoramica su Linux @

Transcript of Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software...

Page 1: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su Linux

@

Page 2: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

Linus Torvalds

Page 3: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

D: Chi è Richard Stallman?R: Uno degli hacker più talentuosi del MIT

D: Qual'era il suo problema?R: la progressiva chiusura del codice sorgente

● nel 1983 annuncia l'intenzione di creare il SO GNU● nel 1985 rilascia il manifesto del progetto GNU● nel 1985 crea la Free Software Foundation● nel 1989 prima versione della licenza GPL

Page 4: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

● Libertà di eseguire il programma, come desideri.

● Libertà di studiarne il codice sorgente e modificarlo.

● Libertà di fare copie e distribuirle agli altri.● Libertà di pubblicare versioni modificate.

Cosa garantisce una licenza open source come la GPL:

Page 5: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

D: Chi è Linus Torvalds?R: Uno studente universitario Finlandese

D: Cosa voleva fare?R: Accedere al suo account universitario da casa

D: Qual'era il suo problema?R: Minix non funzionava bene sul suo 386

Scrivere un terminale indipendente da Minix

Page 6: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

1991: la nascita

From: [email protected] (Linus Benedict Torvalds)[...]Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. [...]

Page 7: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

Caratteristiche di Linux agli albori:

● il codice sorgente era completamente disponibile

● era possibile modificarne il codice

● la sua licenza non imponeva limitazioni d'uso

Problema:

● mancavano tutti i tool “di contorno”

Progetto GNU

Page 8: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

Progetto GNU:

● nato nel 1983 per mano di Richard Stallman

● scopo: avere un sistema unix like rilasciato con licenza

“aperta”

Cosa aveva:

● compilatori, debugger, editor, coreutils...

Cosa mancava:

● un kernel: Hurd non era ancora completato

Page 9: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

LinuxGNU

Gnu/Linux

Page 10: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxUn po' di storia

Espressione sociale:

● creazione dei Linux User Groups (LUG):

● punto di aggregazione per utenti Linux

● punto di aiuto per i nuovi utenti

● eventi:

● Installation party

● Linux Day

Page 11: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxCosa è Linux?

l'insieme del kernel (Linux) ed una serie di programmi

distribuzione Linux (“distro”)

Page 12: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux

● principali distribuzioni Linux

● Debian

● Gentoo

● Fedora

● Mandriva

● Slackware

● SUSE

● Ubuntu

● centinaia di altre distribuzioni

Page 13: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux

● Cosa distingue le varie distribuzioni:

1) tool di configurazione

2) gestione del software

3) modalità di rilascio

4) posizionamento dei file di configurazione

Page 14: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – tool di configurazione

tutto in unix è configurabile tramite appositi file

● configurazione periferiche (mouse, scanner, stampanti,...)

● configurazione programmi (web server, db,...)

● avvio automatico servizi, programmi

● ...

editing a manuale tool guidati

Page 15: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

Come installare programmi sotto Linux:

● compilare i programmi partendo dal codice sorgente

● installare i programmi usando le versioni pacchettizzate

● risoluzione automatica delle dipendenze

● aggiornamento automatico alle nuove versioni

Page 16: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

Cosa contiene un pacchetto:

● script pre e post installazione

● file forniti dal programma:

● eseguibili

● librerie

● man pages

● file di configurazione

● ...

Page 17: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

Formato DistribuzioneGestore

Alto livello Basso livello

rpmFedora yum

rpmMandriva, Mageia urpmi

SUSE zypper

debDebian

apt-get / aptitude dpkgUbuntu

Principali metodi di pacchettizazione

NOTA: è sconsigliato installare sw pacchettizzato per altre

distro

Page 18: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

GUI per gestione pacchetti

Page 19: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

Vantaggi legati alla pacchettizazione:

● installazione facilissima (meglio che windows[1])

● risoluzione automatica delle dipenze

● aggiornamenti automatici di tutto il sistema

[1] http://tinyurl.com/qsmzph

Page 20: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – gestione del software

SUSE

apt-get update

apt-get upgrade

apt-cache search XYZ

apt-get install XYZ

Operazione Debian-like

aggiornamento lista programmi zypper refresh

aggiornamento sistema zypper update

ricerca software zypper search XYZ

installare software zypper install XYZ

Page 21: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – modalità di rilascio

Due “filosofie”:

● rolling release:

● Debian

● Gentoo

● versions release:

● Fedora

● Mandriva

● Slackware

● SUSE

● Ubuntu

OpenSUSE 12.1 November 2011openSUSE 12.2: July 2012openSUSE 12.3: March 2013openSUSE 13.1: November 2013openSUSE 13.2: July 2014

Page 22: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – Posizionamento dei file

E' possibile che alcuni file/directory siano in posti diversi

MA

Il contenuto e l'organizzazione dei file raramente cambia

Page 23: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDistribuzioni Linux – Brain dump

Page 24: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxInteragire con Linux

GUI Terminale

Due “strade”

NB: l'interfaccia grafica è un componente aggiuntivo ed

opzionale del sistema

Page 25: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxInteragire con Linux - GUI

Window manager: semplice gestione delle finestre

● blackbox, fluxbox,...

● icewm

● twm

● afterstep

● enlightenment

Desktop environment: window manager + programmi

integrati

● GNOME

● KDE

● XFCE4

Page 26: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

● ne esistono diverse: bash (più diffusa), ksh, csh,...

● comandi base:

● creazione directory: mkdir

● spostare/rinominare file/dir: mv

● navigare nelle dir: cd

● rimuovere file/directory: rm

● elencare i file: ls

● è possibile combinare più programmi insieme tramite pipe

● è possibile ridirigere l'output dei programmi

Page 27: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

Combinare più programmi insieme tramite pipe:

ps aux | grep firefox

Redirigere l'output di un comando:

grep users /etc/group > members_of_users_group

Redirigere stderr sullo stdout:

rm /tmp/* 2>&1

Redirigere stderr e stdout su file:

rm /tmp/* >& everything

Page 28: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

Gestione dei permessi:

chmod +x script.sh # man chmod

Processi in esecuzione:

ps aux

Gestione dei processi:

kill <signal> pid # TERM se <signal> e' omesso

killall <signal> program_name

kill -HUP pid

kill -9 pid

Page 29: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

Ricerca all'interno di file di testo:

grep <pattern> <file_name|pattern>

grep -i -r <pattern> <file_name|pattern>

File globbing:

*.jpg

?.jpg

[A-Z]*.jpg

*.{h,cpp,c}

Altri esempi: http://goo.gl/TCFu

Page 30: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

Trovare file:

find <path> -iname <pattern>

Cancellare tutti i file trovati:

find ./ -iname *.svn | xargs rm -rf

Page 31: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

$ cat values

a;12

c;1

b;500

Sort usando la seconda colonna:

$ sort -n -k2 -t ';' values

Sort usando la prima colonna:

$ sort -k1 -t ';' values

Sort ordine descrescente:

$ sort -n -r -k2 -t ';' values

Page 32: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

$ cat values

a;12

c;1

b;500

Sostituire un carattere:

$ sed -e 's/;/ - /g' values

a - 12

c - 1

b - 500

Page 33: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

$ cat values

foo

foo

bar

foo

bar

Rimuovere duplicati:

$ uniq values

Meglio usare:

$ sort values | uniq

Page 34: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

$ cut -d ':' -f1 /etc/passwd | \

sort | \

xargs -n1 -i echo "hello user '{}'"

Output:

hello user 'at'

hello user 'avahi'

[...]

hello user 'uucp'

hello user 'wwwrun'

Page 35: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

Scompattare l'archivio demo.tar.bz2 usando tar e bz2

Page 36: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

● Gestione del file system

● Interprete di comandi (bash, ruby)

● Gestione dei permessi

● Esecuzione programmi

Page 37: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

● std_out_err.rb:

● Redirigere stderr sullo stdout

● Redirigere stdout su file

● Redirigere stdout su file in modalita' append

● Redirigere stderr su file

● Redirigere stderr su file in modalita' append

● Redirigere stdout e stderr su file

● Redirigere stdout e stderr su file in modalita' append

Page 38: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

● Gestione processi:

● bunnies.rb:

● Individuare i processi in esecuzione tramite uso combinato

di ps e grep

● Terminare i processi usando kill e kill -9

● fibonacci.rb:

● Individuare i processi in esecuzione tramite uso combinato

di ps e grep

● Inviare il segnale HUP al processo fibonacci

Page 39: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

● “power-shell” file utilizzati:

● events_stats.rb: concerti in una citta' [last.fm]

● country_stats.rb: top 50 artists in una nazione [last.fm]

● eu_stats: stats paesi europei (21 Aprile 2010)

● world_stats: stats tutto il mondo (21 Aprile 2010)

● european_countries: lista paesi unione europea

● world_countries: lista nazioni

● artists_overall: playcount globale per tutti gli artisti presenti

in world_stats

● commands: soluzione degli esercizi della demo

● artist_total_playcount.sh: script shell – calcola totale

playcount per un artista usando world_stats

Page 40: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo

● “power-shell” esempi:

● Classifica delle nazioni che ascoltano un certo artista.

● Classifica delle nazioni che ascoltano un certo artista e

numero totale degli ascolti.

● Calcolare gli ascolti totali per tutti gli artisti riportati nel file

world_stats

Page 41: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxDemo - conclusa

Page 42: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxBreve introduzione alla console

Tenendo conto che:

● coreutils forniscono dei programmi per diverse esigenze

● bash permette lo scripting

Domanda: perchè non programmare in bash usando coreutils?

Risposta: dipende, rischiate di farvi del male!!

Page 43: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxConsiderazioni

● è possibile utilizzare Linux in tutti gli esami/progetti universitari

● conoscere Linux vi arricchirà personalmente e

professionalmente

Page 44: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su Linux

Domande?

Page 45: Panoramica su Linux - Unibg · Panoramica su Linux Distribuzioni Linux – gestione del software Formato Distribuzione Gestore Alto livello Basso livello rpm Fedora yum Mandriva,

© Castelli Flavio - 2012

Panoramica su LinuxRiferimenti

Siti consigliati:

● bglug: http://bglug.it/

● pluto project: http://www.pluto.it/ildp/howto.html

● appunti Linux: http://a2.pluto.it/

● Advanced bash scripting guide: http://tldp.org/LDP/abs/html/

● The Linux documentation project: http://tldp.org/

Libri:

● Linus Torvalds, David Diamonds – Rivoluzionario per caso –

Garzanti

● Glyn Moody – Codice ribelle - HOPS