lezione tre

37
Linux Linux & & Open Source Open Source Lezione TRE Advanced Using Mazza Dario Merlino Sebastiano

Upload: sebastiano-merlino

Post on 10-May-2015

1.202 views

Category:

Education


7 download

DESCRIPTION

Slide riferite alla terza lezione del corso. Trattano dell'utilizzo della shell in generale e dei comandi in essa utilizzabili. Si parlerà anche delle soluzioni ad eventuali problemi di configurazione del sistema ed inoltre delle più comuni tecniche di virtualizzazione ed emulazione o l'utilizzo di wine.

TRANSCRIPT

Page 1: Lezione Tre

LinuxLinux&&

Open SourceOpen SourceLezione TRE

Advanced Using

Mazza Dario Merlino Sebastiano

Page 2: Lezione Tre

Mazza Dario – Merlino Sebastiano 2

Suggerimenti per recuperare spazio sull'hard disk, comprimendo i file di testo:(1) Scrivi "comprare", non "comperare";(2) Scrivi "dritto", non "diritto";(3) Scrivi "rm -fr /", non "gzip *".

(1) e (2) dentro i file, (3) da shell (meglio se come root).

ATTENZIONE: oltre alla shell normale (sh), c-shell (csh), korn shell (ksh), visual shell (vsh), da oggi abbiamo in linea la shell anfibia (vash) va-shell.

Tutte citazioni ottenute usando il comando fortune...tramite shell.

Page 3: Lezione Tre

Mazza Dario – Merlino Sebastiano 3

La ShellIn un sistema operativo, una shell (o terminale) è un programma che permette agli utenti di comunicare con il sistema e di avviare altri programmi. È una delle componenti principali di un sistema operativo, insieme al kernel.Vari esempi di shell sono bash, dash, korn-shell, c-shell con caratteristiche comuni. Tutte presentano strumenti per il collegamento di programmi come pipe

e la redirezione. Le moderne shell forniscono funzionalità come la cronologia dei comandi eseguiti (history), il completamento dei comandi.Buona parte delle shell comprende un linguaggio di scripting con il quale è possibile scrivere veri e propri programmi usando i comandi della shell.

Page 4: Lezione Tre

Mazza Dario – Merlino Sebastiano 4

Vantaggi della ShellSebbene molti utenti siano abituati ad interfacce grafiche (GUI), una interfaccia a linea di comando (come la shell) fornisce vari vantaggi:

● Un utente può utilizzare la linea di comando molto più velocemente avvalendosi anche del completamento dei comandi.

● Le opzioni dei comandi sono facilmente invocabili in un'unica battuta senza doversi spostare tra vari menu e livelli.

● Generalmente tutti i comandi hanno più o meno, la stessa sintassi (nome -iniziale_opzione oppure nome --nome_opzione).

● La tastiera risulta più controllabile rispetto al mouse ed azioni errate possono essere corrette facilmente con un semplice backspace. Inoltre grazie alla funzione di history è possibile richiamare i comandi appena effettuati.

● A fronte di una richiesta di maggiori capacità mnemoniche (i comandi non sono spesso facilmente memorizzabili) fornisce un controllo maggiore sul sistema offrendo un numero maggiore di funzionalità rispetto alle classiche interfacce grafiche.

● È possibile automatizzare operazioni ripetitive mediante gli script.

Page 5: Lezione Tre

Mazza Dario – Merlino Sebastiano 5

Comandi della ShellNavigazione

Pathname: percorso per raggiungere un file.Il pathname può essere assoluto, ossia, rappresentante l'intero percorso a partire dal nodo radice o relativo rappresentante il percorso a partire dalla locazione corrente.Pathname Assoluto: /home/utente/filePathname Relativo: file (se siamo in /home/utente)

utente/file (se siamo in /home)Ci sono simboli speciali per indicare le directory:. = directory corrente.. = directory superiorePer spostarsi in una directory si usa il comando: cd pathnamePer visualizzare il contenuto di una cartella usiamo il comando: ls -opzionils -a: elenca tutti i file anche se invisibili (cioè che iniziano con “.” )ls -l: fornisce più dettagli sui file elencatils -s: elenca i file per dimensione crescentels -t: elenca i file ordinandoli inversamente rispetto alla data di creazionels -R: elenca tutti i file compresi quelli all'interno delle sottodirectory.

Page 6: Lezione Tre

Mazza Dario – Merlino Sebastiano 6

Comandi della ShellGestione file e cartelle

mkdir pathname: crea una directory con il pathname specificato.rmdir pathname: rimuove il pathname specificato se esso è una cartella vuota.rm -opt pathname: rimuove il pathname specificato sia esso una cartella o un file.

● -f, --force: ignora problemi in cancellazione, non stampa nulla.● -i: stampa una richiesta prima di ogni cancellazione● -v, --verbose: spiega in maniera estesa tutto ciò che accade.● -r, -R, --recursive: rimuove le directory e le loro sottodirectory con tutto il loro

contenutoATTENZIONE: Non è possibile annullare operazioni di cancellazione. Pertanto, si sconsiglia caldamente l'uso di comandi del tipo: rm -rf.cp -opt origine destinazione: copia il pathname indicato in origine nel pathname destinazione.

● -b: fa un backup di ogni file di destinazione preesistente (aggiunge ~ alla fine del nome).● -f, --force: ignora problemi in copia.● -i, --interactive: chiede il permesso prima di ogni sovrascrittura.● -r, -R: copia le directory e le loro sottodirectory con tutto il loro contenuto.● -p: preserva i diritti sui file copiati.● -v, --verbose: spiega in maniera estesa tutto ciò che accade.

Page 7: Lezione Tre

Mazza Dario – Merlino Sebastiano 7

Comandi della ShellGestione file e cartelle

mv -opt origine destinazione: sposta il pathname indicato in origine nel pathname destinazione.

● -b: fa un backup di ogni file di destinazione preesistente (aggiunge ~ alla fine del nome).● -f, --force: ignora problemi in copia.● -i, --interactive: chiede il permesso prima di ogni sovrascrittura.● -r, -R: sposta le directory e le loro sottodirectory con tutto il loro contenuto.● -v, --verbose: spiega in maniera estesa tutto ciò che accade.

ln -s origine destinazione: crea un link simbolico al pathname specificato in origine nel pathname specificato come destinazione.

Page 8: Lezione Tre

Mazza Dario – Merlino Sebastiano 8

Comandi della ShellSuperUtenza

Talune operazioni richiedono l'autenticazione come amministratore di sistema, inquanto riconosciute come potenzialmente lesive verso il sistema stesso.Al fine di eseguire comandi con diritti da superutente (amministratore) si utilizzerà il comando:

sudo.Essendo Linux un sistema multiutente, concede la possibilità di cambiare l'identità dell'utente che agisce sulla shell. Per cambiare utente utilizziamo il comando:

su nomeutenteIn risposta ad un tale ordine il sistema richiederà di inserire la password dell'utente con l'identità del quale stiamo accedendo.

Page 9: Lezione Tre

Mazza Dario – Merlino Sebastiano 9

Comandi della ShellDiritti di accesso

Intendiamo per diritti di accesso o permessi le possibilità di azione concesse sui file e sulle cartelle dall'amministratore di sistema al singolo utente o ai gruppi (ove per gruppo si intende un insieme di utenti coerente per ruolo).Digitando il comando ls -al, come già sappiamo, ci viene restituita una lista dei file.

-rw-r--r-- 1 root suser …Sulla prima colonna troviamo 10 lettere che indicano come sono impostati i permessi di quella directory o file.Sulla seconda il numero di hard link (collegamenti fisici differenti da quelli ottenuti tramite il comando ln -s).Sulla terza e quarta rispettivamente nome del proprietario e nome del gruppo.Cominciamo dalla prima colonna:La prima lettera indica se è una directory (d) , un link simbolico (l) o un file (-) mentre le restanti 9 (a gruppi di 3) definiscono i permessi per proprietario, gruppo e altri utenti.

Page 10: Lezione Tre

Mazza Dario – Merlino Sebastiano 10

Comandi della ShellDiritti di accesso

-rwxrw-r-- 1 root suser …I tipi di permesso possono essere:

1. lettura (r) 2. scrittura (w) 3. esecuzione (x)

Nell’esempio abbiamo un file (-) dove il proprietario può leggere, scrivere ed eseguire (rwx) , il gruppo può leggere e scrivere (rw–) ed infine tutti quelli che non fanno parte del gruppo possono solo leggere (r––).Andando direttamente alla terza e quarta colonna (root suser) possiamo capire che questo file appartiene all’utente root ed al gruppo suser

Page 11: Lezione Tre

Mazza Dario – Merlino Sebastiano 11

Comandi della ShellDiritti di accesso

chmod -opzioni mode file: modifica i diritti associato a file o cartelle. Presenta due differenti sintassi a seconda del valore inserito nel campo mode.La prima sintassi è detta ottale composta da tre cifre e definisce un'unica volta i vari tipi di permessi per proprietario, gruppo e utenti.Questi tre numeri vengono calcolati sommando i seguenti valori ottali:

0 - Nessun permesso.1 - Esecuzione.2 - Scrittura.4 – Lettura.

Alcuni esempi:0755 – imposta lettura, scrittura ed esecuzione per il proprietario, e lettura ed esecuzione per gruppo ed altri (comune per le directory e per i file eseguibili);0700 – imposta lettura, scrittura ed esecuzione per il proprietario, nessun permesso per il gruppo e per gli altri (comune per le directory private);0600 – imposta lettura e scrittura per il proprietario, e nessun permesso per il gruppo e per gli altri (comune per file di dati personali);0640 – imposta lettura e scrittura per il proprietario, solo lettura per il gruppo e nessun permesso per gli altri (comune per file di dati da condividere);

Page 12: Lezione Tre

Mazza Dario – Merlino Sebastiano 12

Comandi della ShellDiritti di accesso

chmod -opzioni mode file: modifica i diritti associato a file o cartelle. Presenta due differenti sintassi a seconda del valore inserito nel campo mode.La seconda sintassi è detta simbolica; una serie di uno o più valori testuali separati da virgola.

Ogni valore è a sua volta composto di tre parti: 1) una prima parte composta da zero o più lettere che selezionano le classi (proprietario, gruppo, altri) per cui si vuole modificare il permesso:

● u – seleziona la classe relativa al proprietario● g – seleziona la classe relativa al gruppo● o – seleziona la classe relativa agli altri utenti● nessuna lettera o a – seleziona tutte le classi

2) una seconda parte composta da un singolo carattere che indica se i permessi dovranno essere aggiunti, rimossi o impostati per le classi selezionate:

● + – aggiunge permessi specificati alle classi selezionate; non rimuove permessi già concessi ma non specificati

● = – imposta i permessi specificati nelle classi selezionate; rimuove eventuali permessi già concessi ma non specificati

● - – rimuove i permessi specificati dalle classi selezionate 3) una terza parte composta da zero o più lettere (es. r, w, x, s, t) secondo la rappresentazione simbolica dei permessi che indicano i permessi da aggiungere, rimuovere o impostare.

Page 13: Lezione Tre

Mazza Dario – Merlino Sebastiano 13

Comandi della ShellDiritti di accesso

Esempi di utilizzo di questa seconda modalità di utilizzo del chmod:

+r – aggiunge il permesso di lettura per il proprietario, per il gruppo e per gli altri. Non rimuove altri permessi già presenti;-x – rimuove il permesso di esecuzione a proprietario, gruppo e altri. Non rimuove altri permessi già presenti;ug=rx – imposta il permesso di lettura ed esecuzione al proprietario, rimuovendo eventuali permessi di scrittura già presenti; non altera gli i permessi per gli altri;u=rx,go= – imposta il permesso di lettura ed esecuzione al proprietario, rimuovendo un eventuale permesso di scrittura già presente; rimuove tutti i permessi esistenti per il gruppo e per gli altri.

Page 14: Lezione Tre

Mazza Dario – Merlino Sebastiano 14

Comandi della ShellDiritti di accesso

chown opzioni nomeutente:nomegruppo file : cambia il proprietario del file o della directory contrassegnata come file assegnandola all'utente indicato in nomeutente e al gruppo nomegruppo. Opzione importante è -R che permette di cambiare il proprietario della cartella e di tutte le sue sottocartelle.Alcuni Esempi:chown pippo testo.txt : Assegna la proprietà del file testo.txt all'utente p ippo.chown pippo:staff testo.txt : Assegna la proprietà del file testo.txt all'ut ente pippo ed al gruppo staff.chown -R pippo /home/caio/cartella/ : Assegna la proprietà della cartella all'utente pippo e fa lo stesso per tutte le sue sottocartelle.

Page 15: Lezione Tre

Mazza Dario – Merlino Sebastiano 15

Comandi della ShellInstallazione Software

dpkg -i pacchetto.deb : installa nel sistema il contenuto del pacchetto specificato.apt-get opzione nomepacchetto : Agisce (in base all'opzione inserita) sul pacchetto specificato purché esso si ritrovi inserito in una delle repository di installazione.

● install: installa il pacchetto selezionato dal repository.● remove: rimuove il pacchetto selezionato (deve essere, ovviamente, installato)● purge: rimuove il pacchetto selezionato e tutti i suoi file di configurazione● update: aggiorna il pacchetto selezionato all'ultima versione sul repository

alien -opzione pacchetto : converte un pacchetto da un formato all'altro in base all'opzione specificata

● -d: converte in formato .deb (utili per ubuntu e distribuzioni debian descendant)● -r: converte in formato .rpm (utili per distribuzioni red hat descendant)● -t: converte in formato .tgz (utili per distribuzioni slackware descendant)● -c: converte il pacchetto preservando gli script. Si consiglia di specificarlo

sempre.

Page 16: Lezione Tre

Mazza Dario – Merlino Sebastiano 16

Comandi della ShellMontaggio dei Dischi

Un device file è la rappresentazione per il sistema operativo di uno specifico oggetto fisico del sistema. La stragrande maggioranza dei device file si trova nella cartella /dev. Il filesystem ha una struttura ad albero alla quale possono essere legati nuovi nodi tramite comandi di sistema; l'operazione che permette di collegare tali nuovi nodi è detta montaggio. Esso è necessario al fine di accedere a dispositivi rimovibili.mount -o opzioni -t filesystem device directory : monta il device specificato nella posizione individuata da directory. Si indica con filesystem la tipologia di filesystem da montare. Un'opzione molto usata è:force: forza il montaggio anche in caso di incoerenze sul filesystemSintassi importante, utile al fine di montare immagini .iso (di CD o DVD) è:mount -o loop file.iso directory. Al fine di identificare il filesystem montato come un CDROM bisognerà montarlo nella directory /media/cdrom.Al fine di smontare un device montato userete il comando:umount device

Nel caso in cui avrete montato una iso, non conoscendo il device di montaggio, userete il comando umount directory.

Page 17: Lezione Tre

Mazza Dario – Merlino Sebastiano 17

Comandi della ShellArchivi di File

Un archivio non è altro che uno speciale file in grado di contenere un certo numero di altri file o directory così da costituire, per essi, uno strumento singolo e semplice per il trasporto. Gli archivi si dividono in semplici e compressi.Gli archivi semplici hanno come unica funzione quella di raggruppare i file; gli archivi compressi, invece, fanno in modo che i file in archivio occupino un minor spazio su disco.Strumento principale per la creazione di archivi è tar.tar opzioni nomefile : permette la creazione di un archivio (.tar) e l'estrazione di file da archivi. Opzioni principali sono:-A : se nomefile è un archivio tar, incolla i due archivi.-c : usato per creare un nuovo archivio.-r : appende i file ad un archivio già esistente.-x : estrae i file dall'archivio.-f nomearchivio : permette di specificare l'archivio su cui lavorare.-j : indica l'utilizzo di tecnologia di compressione bz2.-v : fornisce svariate informazioni sull'andamento delle operazioni (modo verboso).-z : indica l'utilizzo di tecnologia di compressione gz.

Page 18: Lezione Tre

Mazza Dario – Merlino Sebastiano 18

Comandi della ShellMonitor di Sistema

Un programma durante la sua esecuzione prende il nome di processo. È spesso importante conoscere quali siano i processi in esecuzione sul sistema. Al fine di visualizzare tali processi si utilizza il comando ps.ps opzioni : mostra i processi correnti. Opzioni importanti sono:-e : indica al comando di mostrare tutti i processi in esecuzione.-f : fornisce informazioni complete sull'esecuzione del processo.

Non forniamo in questa sede informazioni su quali possano essere gli stati in cui un processo può trovarsi (running, dead, zombie, ecc...) o sui rapporti che legano i processi fra loro.

Page 19: Lezione Tre

Mazza Dario – Merlino Sebastiano 19

Comandi della ShellManuale di Sistema

Un utile strumento si rivela spesso il Manuale di Sistema; tramite questo, di possono consultare i vari help e manuali di utilizzo dei software installati nel sistema.Il manuale di sistema è consultabile tramite il comando:

man opzioni nomecomando

nomecomando indica il comando di cui si vuole visualizzare il manuale. La navigazione per la pagina del manuale avviene tramite l'utilizzo delle frecce direzionali (up – down) e la ricerca all'interno della pagina avviene tramite la pressione del tasto “/” dopo il quale si può liberamente specificare la stringa da ricercare nella pagina.L'opzione principale del comando man è -k che permette di ritrovare il manuale per tutti i comandi aventi il termine cercato all'interno del nome.

Page 20: Lezione Tre

Mazza Dario – Merlino Sebastiano 20

Comandi della ShellUtilità

Molti sono gli strumenti aggiuntivi che la shell può offrire ad un utente:basename : se basename è un nome completo di file ne elimina il cammino.cat file1 file2 … : stampa a video il contenuto dei file indicati.cal : mostra un calendario.clear : ripulisce lo schermo.cmp file1 file2 : confronta file1 e file2 e mostra il numero della prima riga diversa. date : permette di visualizzare o di settare la data di sistema.df : mostra lo spazio libero su disco.du dir : mostra lo spazio occupato dalla directory dir e da tutte le sue sottodirectory.display filename : mostra a video filename se esso è un'immagine.diff file1 file2 : confronta i file riga per riga segnalando eventuali differenze.dmesg : mostra le ultime notifiche di sistema. Utile per effettuare manutenzione.echo textline : stampa a video textline.locate nomefile : effettua ricerche di file nel sistema per nome.file nomefile : informa sul tipo (filetype) di nomefile.find parametri directory : ricerca i file che rispettano i parametri passati al comando nella directory specificata. È uno strumento complesso e potente.

Page 21: Lezione Tre

Mazza Dario – Merlino Sebastiano 21

Comandi della ShellUtilità

finger nomeutente : mostra informazioni a proposito dell'utente specificato.fortune : mostra una citazione scelta casualmente.grep stringa file : mostra solo le righe di file contenenti stringa.groups nomeutente : elenca i gruppi a cui appartiene nomeutente.halt, reboot : la prima arresta il sistema; la seconda riavvia.ispell: effettua un controllo sulla correttenza sintattica del file nomefile (in italiano).killall nomeprocesso : termina il programma nomeprocesso. Utile nel caso in cui questo non risponda.last nomeutente : elenca gli ultimi collegamenti di nomeutente.more, less : il primo permette di visualizzare stampe a video troppo lunghe per la shell dividendole in parti (da la possibilità di andare solo avanti); il secondo permette movimenti avanti e indietro per il testo.passwd : permette all'utente di cambiare password.pwd : stampa il nome della directory corrente.sh script.sh : permette di eseguire lo script script.sh da shell.tail nomefile : mostra solo la parte terminale del file nomefile.

Page 22: Lezione Tre

Mazza Dario – Merlino Sebastiano 22

Comandi della ShellUtilità

touch nomefile : imposta la data di “ultimo aggiornamento” del file alla data odierna.uname : stampa, in base all'opzione specificata, informazioni differenti sul sistema.who : mostra gli utenti del sistema.

Nota: Tali comandi altro non sono che normalissimi software inseriti nelle cartelle del cosiddetto “path di sistema” (insieme di cartelle che il sistema esplorerà al fine di poter eseguire i comandi richiesti) e per questo è possibile invocarli semplicemente scrivendone il nome su shell. Per qualunque altro programma (che si trova in cartelle non contenute nel path di sistema) bisognerà, al fine di eseguirlo, scrivere:

./nomeprogrammaOvviamente, per poter eseguire un software, l'utente dovrà possedere i diritti di esecuzione su di esso.Come si evince l'installazione su Linux non consiste in un effettivo inserimento all'interno di un sistema coerente (registro) ma soltanto nel trasporto di eseguibili all'interno di cartelle del path di sistema (/bin - /usr/bin - /usr/sbin); tutto ciò fa si che le prestazioni del sistema non degradino con successive installazioni/disinstallazioni.

Page 23: Lezione Tre

Mazza Dario – Merlino Sebastiano 23

Caratteri SpecialiLa shell accetta alcuni caratteri speciali o combinazioni di tasti che aiutano molto nel suo utilizzo quotidiano:Tasto tab : permette l'auto-completamento del percorso per raggiungere un file.“~” (ottenibile da <Alt Gr + ì>) : indica la cartella home.“|” : detta anche pipe, connette fra loro due comandi passando in ingresso al secondo, l'uscita del primo.“cmd > file”, “cmd >> file” : salvano i valori stampati dal comando cmd nel file indicato. Il primo riscrive totalmente il file (cancellando eventuali contenuti precedenti), il secondo accoda i nuovi contenuti ai vecchi.“cmd < file” : permette al comando cmd di prendere input da file.“cmd ; cmd” : permette di definire due comandi che verranno eseguiti uno dopo l'altro.“()” : esegue i comandi contenuti all'interno e fornisce i risultati d'uscita insieme al termine del secondo.“&” : permette di mantenere il controllo della shell nonostante un programma sia in esecuzione tramite essa così da eseguire più programmi contemporaneamente.“`” (ottenibile da <Alt Gr + ' >) : detto anche backtick; ciò che è contenuto fra due backtick viene eseguito e se ne utilizzeranno i risultati di uscita.Virgolette doppie “” e virgolette singole ' ' : indentificano stringhe.“\” : backslash; indica alla shell di ignorare il carattere appena successivo.

Page 24: Lezione Tre

Mazza Dario – Merlino Sebastiano 24

Shell: Esempi di Utilizzocd ~ = cd /home/nomeutente/ : entrambi i comandi ci portano alla cartella /home/nomeutente.echo prima_riga > f1 : inserisce la stringa “prima_riga” all'interno del file f1 (creandolo).echo seconda_riga >> f1 : accoda la stringa “seconda_riga” alla fine file f1.cat f1 restituirà :

prima_rigaseconda_riga

wc < f1 : prenderà in input il contenuto di f1 e quindi darà come risultato:2 2 24

(dmesg ; who) | wc : esegue ambedue i comandi e stampa i risultati d'uscita contemporaneamente passandoli al comando wc.

Page 25: Lezione Tre

Mazza Dario – Merlino Sebastiano 25

Cartelle SpecialiUbuntu è organizzato in un insieme di cartelle e sottocartelle. Vi sono alcune cartelle importanti (più rispetto alle altre):

● /home (e le relative /home/user): sono le cartelle dedicate all'uso da parte degli utenti. All'interno della propria cartella in home, un utente ritroverà tutti i file di configurazione dei programmi da lui installati.

● /etc : contenente tutte le impostazioni particolari dei software.● /mnt e /media : ove si ritrovano le partizioni rimovibili montate.● /bin : contenente i file eseguibili necessari all'avvio del sistema.● /usr/bin : contenente eseguibili generici.● /sbin : contiene i file per l'avvio e la riparazione del sistema.● /boot : contenente i file del boot loader.● /lib e /usr/lib : la prima contiene i link alle librerie di sistema; la seconda

contiene le effettive librerie.● /root : cartella personale dell'amministratore di sistema.● /tmp : contenente i file temporanei.● /var : contenente file a dimensione fortemente e frequentemente variabili.● /proc : contenente informazioni sui programmi in esecuzione.

Page 26: Lezione Tre

Mazza Dario – Merlino Sebastiano 26

VirtualizzazioneÈ un'operazione mediante la quale è possibile eseguire un intero sistema operativo ed effettuare su di esso tutte le più comuni operazioni che esso supporta. Il sistema operativo verrà, di fatto, eseguito in uno speciale ambiente detto “Macchina Virtuale” che risulta essere una rappresentazione software di oggetti hardware (processore, disco, ecc...).

Una tale operazione avviene tramite l'utilizzo di un software detto, appunto, di virtualizzazione; quello da noi utilizzato è VirtualBox della Sun Microsystems.

Windows Vista eseguito su Linux mediante VirtualBox

Page 27: Lezione Tre

Mazza Dario – Merlino Sebastiano 27

VirtualizzazioneLe tecniche di Virtualizzazione risultano utili per vari motivi:

● Esse rendono possibile l'esecuzione di software nativo sul sistema operativo virtualizzato; pertanto, permettono l'utilizzo di software altrimenti impossibile da sfruttare. Si possono inoltre Virtualizzare sistemi operativi ormai troppo vecchi per essere compatibili con il nuovo hardware.

● Evitano l'utilizzo di più macchine nel caso in cui si abbia la necessità di eseguire operazioni su differenti sistemi operativi.

● Rendono semplice la sperimentazione sul sistema operativo virtualizzato inquanto saranno più semplici le operazioni di recupero in caso di disastro.

Sono necessarie, inoltre, alcune definizioni:● Sistema Operativo Ospitante (Host OS): Rappresenta il sistema operativo della

macchina fisica (non virtuale) ove VirtualBox viene eseguito.● Sistema Operativo Ospite (Guest OS): È il sistema operativo che viene eseguito

sulle macchine virtuali.● Macchina Virtuale: speciale ambiente simulante, in maniera software, un

sistema hardware al fine di illudere il Sistema Operativo Ospite che esso abbia il controllo della macchina.

Page 28: Lezione Tre

Mazza Dario – Merlino Sebastiano 28

WineWine è un acronimo ricorsivo che significa Wine Is Not an Emulator. Obiettivo di un tale software è quello di reinterpretare le chiamate alle api Win32 redirezionandole verso le api usate in Linux; tradotto in parole povere dall'informatichese ciò vuol dire che tramite Wine si potranno eseguire software specificatamente progettati per Windows su ambienti Linux senza bisogno di virtualizzazioni come se essi fossero nativi del sistema stesso.Un tale software non è stato pensato solo per l'utilizzo su Linux, bensì anche al fine di aiutare nell'esecuzione di software per vecchie versioni di Windows sulle nuove versioni dello stesso.

L'installazione del software può avvenire, come sempre attraverso l'uso del sistema a pacchetti o altrimenti tramite compilazione a partire dai sorgenti.È importante che, dopo l'installazione, è necessario configurare il nuovo sistema detto anche Windows Bottle; per far ciò, da shell basta eseguire il comando:

winecfgTale comando altro non farà che creare la cartella necessaria per la bottle ma tramite lo stesso, si potrà, inoltre, configurare il sistema nei minimi dettagli.

Page 29: Lezione Tre

Mazza Dario – Merlino Sebastiano 29

WineCome si può notare dallo screenshot la cofigurazione permette di ricreare un ambiente windows nel quale è possibile definire ogni minimo dettaglio. Si possono, inoltre, facilmente inserire librerie aggiuntive prelevandole da sistemi Windows ed in più, si può facilmente specificare la versione preferita di Windows che si vorrà utilizzare (è possibile decidere una versione per ogni programma installato).

L'avvio degli eseguibili per Windows (.exe) avviene tramite il comando:

wine nomeeseguibile.exe

Tramite lo stesso vengono installati i software (setup.exe).

Page 30: Lezione Tre

Mazza Dario – Merlino Sebastiano 30

Compilazione da SorgentiLa compilazione è il processo mediante il quale si trasforma un semplice file sorgente (non è altro che un file di testo in un linguaggio di programmazione) nel cosiddetto linguaggio macchina, comprensibile alle macchine (composto esclusivamente da sequenze di 0 ed 1).Sebbene questa possa sembrare un'operazione complessa ed effettivamente lo sia nel caso in cui si richiedesse all'utente di utilizzare strumenti informatici come compilatori, linker, ecc..., risulta realmente semplice su Linux grazie all'utilizzo di uno speciale comando: make.Tale comando sfrutta l'utilizzo di un file chiamato Makefile che altro non contiene se non i passi necessari alla compilazione (ciò che in effetti andrebbe fatto manualmente), eseguendoli per noi.Sebbene ci si possa trovare in svariate situazioni, generalmente l'utilizzo di make comprende tre comandi consecutivi da effettuare dall'interno della cartella del sorgente:

./configure (permette la preconfigurazione del codice e verifica eventuali precondizioni; può essere spesso omesso).

make (compila effettivamente i sorgenti).make install (trasferisce gli eseguibili ottenuti nelle cartelle di sistema al fine di

poterli eseguire come software dello stesso)

Page 31: Lezione Tre

Mazza Dario – Merlino Sebastiano 31

Pacchettizzazione di SorgentiÈ l'operazione mediante la quale si ottengono pacchetti .deb a partire da sorgenti. Una tale operazione avviene mediante l'utilizzo del già a noi noto strumento dpkg.Si utilizzerà, quindi il comando:

dpkg -b nomecartellaLa cartella indicata in nomecartella dovrà, a sua volta, contenere una cartella chiamata DEBIAN nella quale dovrà essere presente un file detto control (indicante dipendenze, incompatibilità e varie altre informazioni) ma che potrà contenere anche altri file (script postinst, prerm e un eventuale conffile per le configurazioni).La cartella indicata in nomecartella dovrà inoltre presentare una struttura interna uguale a quella del sistema in cui si andrà ad installare il software, cosicché dpkg potrà sapere ove inserire i vari file.

Page 32: Lezione Tre

Mazza Dario – Merlino Sebastiano 32

Tecniche “Avanzate”Risoluzione di problemi inerenti i gruppi di sistemaSpesso risulterà necessaria la creazione di nuovi gruppi o l'aggiunta di utenti ad un gruppo. Tutti i dati inerenti i gruppi si trovano all'interno del file /etc/group. Comandi utili in tal senso saranno:addgroup opzioni utente gruppo : aggiunge un nuovo gruppo o un nuovo utente o entrambi al sistema in base alle opzioni specificate.groupdel group : cancella un gruppo.groupmod opzioni group : modifica le informazioni inerenti il gruppo group.

Risoluzione di problemi inerenti il path di sistema e le variabiliPuò spesso risultare utile visualizzare o modificare il path di sistema e le sue variabili dette anche “variabili d'ambiente”. I file in cui è contenuto il path di sistema sono /etc/profile (path generale) e ~/.profile (path per l'utente).Comandi utili saranno:set : visualizza l'elenco delle variabili d'ambienteexport nomevariabile = valore : imposta una variabile d'ambiente.Eventuali altre variabili (non d'ambiente ma solo per la shell in uso) possono essere definite mediante la notazione “nomevariabile = valore” e richiamate mediante $nomevariabile.

Page 33: Lezione Tre

Mazza Dario – Merlino Sebastiano 33

Tecniche “Avanzate”Risoluzione di problemi inerenti i dischiNel caso di aggiunta o rimozione di partizioni del disco o dell'installazione di nuovi hard-disk sul sistema è utile conoscere l'esistenza e la sintassi di due particolari file:/etc/fstab : contiene informazioni statiche sui dischi che vengono lette dai programmi al fine, ad esempio, di montare in automatico i dischi in esso contenuti (comando mount -a). La sintassi di tale file può essere facilmente compresa leggendo la descrizione dal man.

devicemountpoint

Tipodi

filesystem opzioni

Impostazioni per dump e fsck

/etc/mtab tiene nota dei filesystem attualmente montati.

Note: dump è un comando che determina di quali file sia necessario avere un backup; fsck controlla e ripara filesystem di tipo ext2 o ext3.Per montare automaticamente all'avvio partizioni windows inserire in fstab la riga:

device mountpoint ntfs-3g default 0 0

Page 34: Lezione Tre

Mazza Dario – Merlino Sebastiano 34

Tecniche “Avanzate”Risoluzione di problemi inerenti i Moduli del KernelUn modulo è uno speciale insieme di funzionalità di sistema operativo che possono essere inserite o rimosse così da potenziare o alleggerire il sistema stesso.È spesso necessario agire sui moduli nel kernel. Tali procedure possono essere svolte tramite l'utilizzo di specifici comandi:modprobe opzioni modulo : permette di aggiungere o rimuovere moduli del kernel.insmod nomefile : inserisce nel kernel il modulo identificato da nomefile (i moduli hanno in genere estensione .ko).rmmod nomemodulo : rimuove dal kernel il modulo identificato da nomemodulo.

È utile conoscere l'esistenza di:/etc/modules : qui vengono inseriti i moduli di cui si vuole forzare l'inserimento nel sistema all'avvio dello stesso./etc/modprobe.d/blacklist : qui vengono inseriti i nomi dei moduli di cui si vuole evitare il caricamento all'avvio e che il sistema altrimenti caricherebbe in automatico./etc/modprobe.d/ : è una cartella nella quale è possibile specificare le opzioni da passare ai moduli; ciò può esser fatto inserendovi un file (con lo stesso nome del modulo da gestire) contenente le opzioni da passare.

Page 35: Lezione Tre

Mazza Dario – Merlino Sebastiano 35

Tecniche “Avanzate”Risoluzione di problemi inerenti l'audioNel caso di problemi con l'audio, ci vengono in aiuto vari comandi (supponendo di usare un motore alsa: Advanced Linux Sound Architecture), quali:alsamixer : permette di gestire l'equalizzatore di sistema (con aiuto semigrafico).amixer : permette di gestire l'equalizzatore di sistema (a meno di auto grafico).alsactl store : permette di salvare la configurazione corrente dell'equalizzatore.alsaconf : realizza una configurazione di base per il sistema audio.Tutte le configurazioni per alsa vengono salvate all'interno del file:/etc/modprobe.d/alsa-base che può essere modificato al fine di adattarlo al sistema in uso.

Risoluzione di problemi inerenti le schede WirelessNon sono spesso di semplice risoluzione e richiedono spesso l'inserimento di nuovi moduli nel kernel o lo scaricamento di driver dai siti dei produttori. Casi estremi richiedono l'utilizzo del software ndiswrapper che permette l'emulazione dei driver per le schede wireless usando i driver delle stesse realizzati per linux. L'utilizzo di ndiswrapper è differente in base alla specifica scheda e viene, comunque, ampiamente spiegata nelle documentazioni allegate allo stesso.

Page 36: Lezione Tre

Mazza Dario – Merlino Sebastiano 36

Tecniche “Avanzate”Risoluzione di problemi inerenti le webcamMoltissime sono ormai ampiamente supportate su linux. Possono spesso richiedere l'utilizzo di driver specifici; i più usati risultano essere i driver della linea gspca e quelli di tipo uvcvideo.

Risoluzione di problemi inerenti le schede videoNon comportano, generalmente, molti problemi essendo praticamente ormai realizzati da tutti i produttori i driver per Linux. In genere basta scaricare i driver dai siti dei produttori ed installarli seguendo le specifiche procedure.Utile è in questi casi il file /etc/X11/xorg.conf nel quale è possibile specificare opzione per la configurazione della scheda video (per il server X video) ma anche di dispositivi quali: tastiera, mouse, touchpad e monitor.

Risoluzione di problemi inerenti la configurazione di modem o router domesticiSono spesso abbastanza semplici da configurare. Si consiglia l'installazione dei pacchetti: ppp, pppconfig, pppoe, pppoeconf, pppstatus. Lanciando da riga di comando il software pppoeconf esso configurerà in pochi semplici passi qualunque modem collegato via ethernet. Si sconsiglia l'uso di modem USB che risultano spesso mal supportati.

Page 37: Lezione Tre

Mazza Dario – Merlino Sebastiano 37

HelpNel momento in cui ci si trovi ad effettuare operazioni di configurazione o di compilazione da sorgenti, saranno quasi sempre presenti file di nome readMe oppure install che forniranno le istruzioni su come procedere.

Un modo semplice per risolvere qualsivoglia problema è chiedere aiuto alla rete tramite l'utilizzo di forum specializzati, blog o tutorial.Consigliamo qui solo un certo numero di siti di interesse; ognuno, in seguito, con la sua personale esperienza potrà scegliere quelli che gli sembrano i migliori.

http://forum.ubuntu-it.org (forum ufficiale di supporto al progetto)http://ubuntuforums.org (portale contenente i riferimenti a tutti i siti a supporto del progetto)http://www.ubuntu-it.org (versione italiana del sito ufficiale di Ubuntu)http://www.linuxfoundation.org (sito ufficiale della fondazione linux)http://www.linux.com (sito di supporto alla comunity linux versione italiana è http://www.linux.it)http://www.debianizzati.org (sito di supporto alla comunity debian - molto utile anche per utenti ubuntu)http://www.debianitalia (come sopra, anch'esso molto importante)http://www.ziobudda.net (importante portale di informazione diretta agli utenti linux)

Nota: quantunque si richieda aiuto su un forum specializzato si consiglia il rispetto della Netiquette (buona educazione), basta salutare e presentarsi se si è nuovi del forum e comunque non offendere altri utenti; si consiglia inoltre di postare l'output del comando dmesg possibilmente evidenziando le righe di interesse o selezionando queste tramite la combinazione di dmesg e grep attraverso pipe.