Panoramica su Linux
@
Panoramica su Linux
Un po' di storia
Panoramica su Linux
Un 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
Panoramica su Linux
Un 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:
Panoramica su Linux
Un 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
Panoramica su Linux
Un po' di storia
1991: la nascita
From: torvalds@klaava.Helsinki.FI (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. [...]
Panoramica su Linux
Un 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”
Panoramica su Linux
Un 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
Panoramica su Linux
Un po' di storia
Linux
GNU
Panoramica su Linux
Un 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
Panoramica su Linux
Cosa è Linux?
l'insieme del kernel (Linux) ed una serie di programmi
distribuzione Linux (“distro”)
Panoramica su Linux
Distribuzioni Linux
● principali distribuzioni Linux
● Debian
● Gentoo
● Fedora
● Mandriva
● Slackware
● SUSE
● Ubuntu
● centinaia di altre distribuzioni
Panoramica su Linux
Distribuzioni Linux
● Cosa distingue le varie distribuzioni:
1) tool di configurazione 2) gestione del software 3) modalità di rilascio
4) posizionamento dei file di configurazione
Panoramica su Linux
Distribuzioni 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
Panoramica su Linux
Distribuzioni Linux – tool di configurazione
Distribuzioni con buoni tool di configurazione:
● SUSE
● Fedora
● Mandriva
Panoramica su Linux
Distribuzioni 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
Panoramica su Linux
Distribuzioni Linux – gestione del software
Cosa contiene un pacchetto:
● script pre e post installazione
● file forniti dal programma:
● eseguibili
● librerie
● man pages
● file di configurazione
● ...
Panoramica su Linux
Distribuzioni Linux – gestione del software
Formato Distribuzione Gestore
Alto livello Basso livello rpm
Fedora yum
Mandriva urpmi rpm
SUSE zypper
deb Debian
apt-get / aptitude dpkg Ubuntu
Principali metodi di pacchettizazione
NOTA: è sconsigliato installare sw pacchettizzato per altre
Panoramica su Linux
Distribuzioni Linux – gestione del software
GUI per gestione pacchetti
Panoramica su Linux
Distribuzioni Linux – gestione del software
Vantaggi legati alla pacchettizazione:
● installazione facilissima (meglio che windows[1])
● risoluzione automatica delle dipenze
● aggiornamenti automatici di tutto il sistema
Panoramica su Linux
Distribuzioni Linux – gestione del software
SUSE apt-get update
apt-get upgrade
apt-cache search XYZ apt-get install XYZ Ope r azione D e bia n-like aggiornam ento lista
program m i zypper refresh
aggiornam ento
sistem a zypper update
ricerca softw are zypper search XYZ
installare softw are zypper install XYZ
Panoramica su Linux
Distribuzioni Linux – modalità di rilascio
Due “filosofie”:
● rolling release:
● Debian
● Gentoo
● versions release:
● Fedora
● Mandriva
● Slackware
● SUSE Ubuntu
November 2009: “Fichte” 11.2 July 2010: “Rousseau” 11.3 March 2011: “Voltaire” 12.0
November 2011: “Lessing” 12.1
Panoramica su Linux
Distribuzioni Linux – Posizionamento dei file
E' possibile che alcuni file/directory siano in posti diversi
MA
Il contenuto e l'organizzazione dei file raramente cambia
Panoramica su Linux
Distribuzioni Linux – Brain dump
Panoramica su Linux
Interagire con Linux
GUI Terminale
Due “strade”
Panoramica su Linux
Interagire con Linux - GUI
Window manager: semplice gestione delle finestre
● blackbox, fluxbox,...
● icewm
● twm
● afterstep
● enlightenment
Desktop environment: window manager + programmi integrati
● GNOME
Panoramica su Linux
Breve 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
Panoramica su Linux
Breve 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:
Panoramica su Linux
Breve 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
Panoramica su Linux
Breve 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
[AZ]*.jpg
*.{h,cpp,c}
Panoramica su Linux
Breve introduzione alla console
Trovare file:
find <path> iname <pattern>
Cancellare tutti i file trovati:
find ./ iname *.svn | xargs rm rf
Panoramica su Linux
Breve 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:
Panoramica su Linux
Breve 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
Panoramica su Linux
Breve introduzione alla console
$ cat values foo
foo bar foo bar
Rimuovere duplicati:
$ uniq values Meglio usare:
$ sort values | uniq
Panoramica su Linux
Breve introduzione alla console
$ cut d ':' f1 /etc/passwd | \ sort | \
xargs n1 i echo "hello user '{}'"
Output:
hello user 'at' hello user 'avahi' [...]
Panoramica su Linux
Demo
Panoramica su Linux
Demo
● Gestione del file system
● Interprete di comandi (bash, ruby)
● Gestione dei permessi
● Esecuzione programmi
Panoramica su Linux
Demo
● 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
Panoramica su Linux
Demo
● 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
Panoramica su Linux
Demo
● “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
Panoramica su Linux
Demo
● “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
Panoramica su Linux
Demo - conclusa
Panoramica su Linux
Breve 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!!
Panoramica su Linux
Considerazioni
● è possibile utilizzare Linux in tutti gli esami/progetti universitari
● conoscere Linux vi arricchirà personalmente e professionalmente
Panoramica su Linux
Domande?
Panoramica su Linux
Riferimenti
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 –