1
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione a Unix e GNULinux
Autore Michael OpdenackerFree Electrons httpfreeshyelectronscom
Traduzione Gianluca Morohttpwwwgiammycom
2
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
RingraziamentiAl progetto OpenOfficeorg per i loro ottimi strumenti di presentazione e di word processing
Alla comunitagrave Handheldsorg per avermi dato il loro aiuto e lopportunitagrave di aiutare
A tutti i membri della comunitagrave Free Software e Open Source per aver condiviso il meglio di seacute il loro lavoro le loro conoscenze la loro amicizia
Alle persone che hanno inviato commenti e correzioni Jeff Ghislain Leif Thande Freacutedeacuteric Desmoulins Przemysław Ciesielski
3
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di riproduzione
Attribuzione shy Condividi allo stesso modo 20Tu Sei ibero
di riprodurre distribuire comunicare al pubblico esporre in pubblico rappresentare eseguire o recitare loperadi creare opere derivatedi usare lopera a fini commerciali
Alle seguenti condizioniAttribuzione Devi riconoscere il contributo dellautore originarioCondividi allo stesso modo Se alteri trasformi o sviluppi questrsquoopera puoi distribuire lrsquoopera risultante solo per mezzo di una licenza identica a questa
In ogni atto di riutilizzazione o distribuzione devi chiarire agli altri i termini della licenza di questrsquooperaSe ottieni il permesso dal titolare del diritto dautore egrave possibile rinunciare ad ognuna di queste condizioni
Le tue utilizzazioni libere e gli altri diritti non sono in nessun modo limitati da quanto sopra
Licenza httpcreativecommonsorglicensesbyshysa20legalcode
copy Copyright 2004shy2005Michael Opdenacker
michaelfreeshyelectronscom
Sorgenti aggiornamenti e traduzioni httpfreeshyelectronscomtrainingintro_unix_linux
Correzioni suggerimenti contributi e traduzioni sono i benvenuti
4
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia del DocumentoSe non diversamente specificato i contributi sono di Michael Opdenacker
28 Lug 2005 Traduzione di Gianluca Moro
14 Giu 2005 Ultimo aggiornamento correzioni e miglioramenti minori
6 Dic 2004 Nuova sezione di amministrazione di sistema per principianti ed alcune modifiche
28 Sett 2004 Prima edizione pubblica
5
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cosegrave il presente documento
Scopo di questo documento egrave di essere usato come supporto visuale in una presentazione o in una lezione egrave solo un riassunto o un complemento a ciograve che egrave detto Quindi le spiegazioni possono non essere esaustive
Comunque questo documento intende anche essere un riferimento per il pubblico Inoltre egrave indicato per lettori autodidatti Cosigrave spesso si va piugrave in dettaglio rendendo il documento esteticamente meno accattivante
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
2
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
RingraziamentiAl progetto OpenOfficeorg per i loro ottimi strumenti di presentazione e di word processing
Alla comunitagrave Handheldsorg per avermi dato il loro aiuto e lopportunitagrave di aiutare
A tutti i membri della comunitagrave Free Software e Open Source per aver condiviso il meglio di seacute il loro lavoro le loro conoscenze la loro amicizia
Alle persone che hanno inviato commenti e correzioni Jeff Ghislain Leif Thande Freacutedeacuteric Desmoulins Przemysław Ciesielski
3
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di riproduzione
Attribuzione shy Condividi allo stesso modo 20Tu Sei ibero
di riprodurre distribuire comunicare al pubblico esporre in pubblico rappresentare eseguire o recitare loperadi creare opere derivatedi usare lopera a fini commerciali
Alle seguenti condizioniAttribuzione Devi riconoscere il contributo dellautore originarioCondividi allo stesso modo Se alteri trasformi o sviluppi questrsquoopera puoi distribuire lrsquoopera risultante solo per mezzo di una licenza identica a questa
In ogni atto di riutilizzazione o distribuzione devi chiarire agli altri i termini della licenza di questrsquooperaSe ottieni il permesso dal titolare del diritto dautore egrave possibile rinunciare ad ognuna di queste condizioni
Le tue utilizzazioni libere e gli altri diritti non sono in nessun modo limitati da quanto sopra
Licenza httpcreativecommonsorglicensesbyshysa20legalcode
copy Copyright 2004shy2005Michael Opdenacker
michaelfreeshyelectronscom
Sorgenti aggiornamenti e traduzioni httpfreeshyelectronscomtrainingintro_unix_linux
Correzioni suggerimenti contributi e traduzioni sono i benvenuti
4
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia del DocumentoSe non diversamente specificato i contributi sono di Michael Opdenacker
28 Lug 2005 Traduzione di Gianluca Moro
14 Giu 2005 Ultimo aggiornamento correzioni e miglioramenti minori
6 Dic 2004 Nuova sezione di amministrazione di sistema per principianti ed alcune modifiche
28 Sett 2004 Prima edizione pubblica
5
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cosegrave il presente documento
Scopo di questo documento egrave di essere usato come supporto visuale in una presentazione o in una lezione egrave solo un riassunto o un complemento a ciograve che egrave detto Quindi le spiegazioni possono non essere esaustive
Comunque questo documento intende anche essere un riferimento per il pubblico Inoltre egrave indicato per lettori autodidatti Cosigrave spesso si va piugrave in dettaglio rendendo il documento esteticamente meno accattivante
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
3
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di riproduzione
Attribuzione shy Condividi allo stesso modo 20Tu Sei ibero
di riprodurre distribuire comunicare al pubblico esporre in pubblico rappresentare eseguire o recitare loperadi creare opere derivatedi usare lopera a fini commerciali
Alle seguenti condizioniAttribuzione Devi riconoscere il contributo dellautore originarioCondividi allo stesso modo Se alteri trasformi o sviluppi questrsquoopera puoi distribuire lrsquoopera risultante solo per mezzo di una licenza identica a questa
In ogni atto di riutilizzazione o distribuzione devi chiarire agli altri i termini della licenza di questrsquooperaSe ottieni il permesso dal titolare del diritto dautore egrave possibile rinunciare ad ognuna di queste condizioni
Le tue utilizzazioni libere e gli altri diritti non sono in nessun modo limitati da quanto sopra
Licenza httpcreativecommonsorglicensesbyshysa20legalcode
copy Copyright 2004shy2005Michael Opdenacker
michaelfreeshyelectronscom
Sorgenti aggiornamenti e traduzioni httpfreeshyelectronscomtrainingintro_unix_linux
Correzioni suggerimenti contributi e traduzioni sono i benvenuti
4
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia del DocumentoSe non diversamente specificato i contributi sono di Michael Opdenacker
28 Lug 2005 Traduzione di Gianluca Moro
14 Giu 2005 Ultimo aggiornamento correzioni e miglioramenti minori
6 Dic 2004 Nuova sezione di amministrazione di sistema per principianti ed alcune modifiche
28 Sett 2004 Prima edizione pubblica
5
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cosegrave il presente documento
Scopo di questo documento egrave di essere usato come supporto visuale in una presentazione o in una lezione egrave solo un riassunto o un complemento a ciograve che egrave detto Quindi le spiegazioni possono non essere esaustive
Comunque questo documento intende anche essere un riferimento per il pubblico Inoltre egrave indicato per lettori autodidatti Cosigrave spesso si va piugrave in dettaglio rendendo il documento esteticamente meno accattivante
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
4
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia del DocumentoSe non diversamente specificato i contributi sono di Michael Opdenacker
28 Lug 2005 Traduzione di Gianluca Moro
14 Giu 2005 Ultimo aggiornamento correzioni e miglioramenti minori
6 Dic 2004 Nuova sezione di amministrazione di sistema per principianti ed alcune modifiche
28 Sett 2004 Prima edizione pubblica
5
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cosegrave il presente documento
Scopo di questo documento egrave di essere usato come supporto visuale in una presentazione o in una lezione egrave solo un riassunto o un complemento a ciograve che egrave detto Quindi le spiegazioni possono non essere esaustive
Comunque questo documento intende anche essere un riferimento per il pubblico Inoltre egrave indicato per lettori autodidatti Cosigrave spesso si va piugrave in dettaglio rendendo il documento esteticamente meno accattivante
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
5
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cosegrave il presente documento
Scopo di questo documento egrave di essere usato come supporto visuale in una presentazione o in una lezione egrave solo un riassunto o un complemento a ciograve che egrave detto Quindi le spiegazioni possono non essere esaustive
Comunque questo documento intende anche essere un riferimento per il pubblico Inoltre egrave indicato per lettori autodidatti Cosigrave spesso si va piugrave in dettaglio rendendo il documento esteticamente meno accattivante
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
6
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (1)
Introduzione
Storia dello Unix
Unix filosofia e caratteristiche
I vari livelli in un sistema Unix
Il progetto GNU la licenza GPL
Linux Distribuzioni
Altri sistemi Unix liberi
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
7
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (2)
Shell filesystem e gestione file
Interpreti della linea di comando
Struttura del filesystem di Unix
Gestione file e directory
Vedere gestire e ordinare file
Link simbolici e hard
Diritti di accesso ai file
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
8
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (3)
Standard IO ridirezione e pipe
Standard input e output
Ridirezionare lo standard input e output su file
Pipe ridirezionare lo standard output ad altri comandi
Standard error
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
9
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (4)Controllo dei processi
Unix multitask dallinizio
Esecuzione in background sospensione ripresa e terminazione
Lista dei processi attivi
Terminazione di 1 o piugrave processi
Variabili dambiente
Variabile dambiente PATH
Alias nella shell file bashrc
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
10
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (5)
Varie
Editor di testo
Compressione e archiviazione
Stampa di file
Confronto tra file
Ricerca di file
Ottenere informazioni sugli utenti
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
11
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Contenuto delle lezioni (6)
Elementi base di gestione del sistema
Varie proprietagrave dei file spegnimento
Configurazione della rete
Filesystem crearli e montarli
Un passo avanti
Trovare aiuto accedere alla pagine del manuale in linea
Cercare risorse in internet
Usare GNULinux a casa
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
12
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Introduzione
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
13
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Albero genealogico dello UnixTime1970 19901980 2000
Bell Labs (ATampT)
Ken ThompsonDennis Ritchie (Linguaggio Ccreato per implementare un OS portabile)
BSD (Berkeley Software Distribution)
Sun Solaris
SunOS (Stanford University Network)
NetBSD
NextStep
AIX (IBM)
HPshyUX
IRIX (SGI)
SRV5
OpenBSD
FreeBSD
MacOS X
GNULinuxGNU
Bill Joy
Richard Stallman Linus Torvalds
Famiglia BSD
Famiglia System V
Tu sei qui
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
14
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Architettura del sistema Unix
Hardware e periferiche
Kernel del Sistema operativo
Libreria C
Librerie condivise
Applicazioni da linea di comando
Applicazioni Grafiche
Linux Hurd
Libreria GNU C uClibc
libjpeg libstdc++ libxml
ls mkdir wget ssh gcc busybox
Browser Web ufficio multimedia
Spazio Utente
Spazio Kernel
Hardware
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
15
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La filosofia di Unix
Piccolo egrave bello
Fa fare ad ogni programma una sola cosa ma bene
Preferire la portabilitagrave allefficienza
Evitare interfacce utenti limitanti
Astrazioni di sistema
Kernel livello hardware
Shell livello in modalitagrave testo
X Windows livello GUI
I sistemi piugrave potenti di oggi sono basati su progetti di 35 anni fa
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
16
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali caratteristiche di Unix
Multiutente e sicuroUtenti normali non possono modificare i file degli altri (di default)In particolare utenti normali non possono modificare impostazioni di sistema neacute cancellare programmi etc
root utente amministratore con tutti i privilegi
Preemptive multishytasking
Supporto per processori multipli
Estremamente flessibile
Supporto della rete
Portabilitagrave
Scalabilitagrave
Unix egrave stato creato per grandi sistemi multiutente
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
17
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il Progetto GNUGNU = GNU Non egrave Unix (un acronimo ricorsivo)
Progetto per implementare un sistema operativo come Unix completamente libero
Iniziato da Richard Stallman nel 1984 un ricercatore del MIT in un periodo in cui i sorgenti di Unix non erano piugrave liberi
Componenti iniziali compilatore C (gcc) make (GNU make) Emacs libreria C (glibc) coreutils (ls cp )
Comunque nel 1991 il progetto GNU non aveva ancora un kernel e veniva eseguito su macchine Unix proprietarie
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
18
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero
Il Software Libero garantisce le seguenti 4 libertagrave allutente
La libertagrave di eseguire un programma per ogni scopo
La libertagrave di studiare come il programma funzionae adattarlo ai suoi bisogni
La libertagrave di ridistribuire copie per aiutare gli altri
La libertagrave di migliorare il programma e rilasciare i propri miglioramenti al pubblico
Vedi httpwwwgnuorgphilosophyfreeshyswhtml
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
19
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Licenze di software libero tipo BSD
Naturalmente garantisce le 4 libertagrave agli utenti
Consente di scrivere software proprietario
Licenze di esempio BSD Apache
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
20
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La Licenza GNU (GPL)Il maggior contributo del progetto GNU
Le Licenze Copyleft usano le leggi del copyright per consentire allautore di chiedere che versioni modificate siano anchesse software liberohttpwwwgnuorgcopyleftcopylefthtml
La GNU GPL chiede che modifiche e lavori derivati siano GPL
Si applica solo a software rilasciato
Ogni programma che usa codice GPL (sia con link statici che dinamici) egrave considerato una estensione del codice
GPL FAQ httpwwwgnuorglicensesgplshyfaqhtml
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software
21
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU Lesser General Public License
httpwwwgnuorgcopyleftlesserhtml
La licenza Copyleft egrave simile alla GNU GPLLe modifiche devono essere condivise alle stesse condizioni
Consente il linkaggio con moduli non liberi
Egrave usata da parecchie librerie di Software libero Esempiglibc GTK Wine SDL
22
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Software Libero e Open Source
Il Movimento del Software libero
Approccio centrato sullobiettivo
Orientato alla libertagrave individuale e allutilitagrave sociale della cooperazione Vedi httpwwwgnuorgphilosophyfreeshysoftwareshyforshyfreedomhtml
Il Movimento Open Source
Approccio pragmatico
Evidenzia principalmente i vantaggi della condivisione dei sorgenti e fa scelte basate sulla superioritagrave tecnica
Sebbene i motivi di base siano diversi entrambi i movimenti lavorano assieme e cooperano molto bene
23
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Linux
Kernel libero tipo Unix creato nel 1991 da Linus Torvalds
Lintero sistema usa i tool della GNUlibreria C gcc binutils fileutils make emacs
Cosigrave lintero sistema si chiama ldquoGNULinuxrdquo
Condiviso dallinizio come software libero (licenza GPL) ha attirato sempre piugrave contributi e utenti
Dal 1991 sta crescendo piugrave velocemente di qualsiasi altro sistema operativo
24
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni GNULinuxSi occupano di rilasciare versioni compatibili di kernel librerie C compilatori e utilitagrave Veramente un grosso lavoro
Le utilitagrave sono disponibili in pacchetti che possono essere facilmente installati rimossi o aggiornati La dipendenza dalle varie versioni e gestita automaticamente
Distribuzioni Commerciali includono lassistenza I sorgenti sono liberi ma i binari di solito no
Distribuzioni Community sia i sorgenti che i binari sono liberi Nessuna assistenza di solito
Non confondete la versione della distribuzione con la versione del kernel di Linux
25
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni Commerciali
Red Hat httpwwwredhatcomLa piugrave popolare Affidabile sicura facile da usare e da installare supportata da tutti i venditori di hardware e software
Suse (Novell) httpwwwsusecomLa principale alternativa Facile da installare e da usare stabilesupportata da tutti i venditori di hardware e software
Mandriva (ex Mandrake) httpmandrivalinuxcomFacile da usare e da installare piugrave aggiornata ma meno stabilePiugrave orientata ad utenti individuali Poco supporto da parte del venditore
26
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Distribuzioni CommunityFedora Core httpfedoraredhatcomStabile sicura facile da usare e da installare Frequenti aggiornamenti
Ubuntu Linux httpubuntushylinuxorgDistribuzione in crescita Basata su Debian ma rilascia una nuova versione ogni 6 mesi Facile da usare Ottima per chi inizia
Debian httpdebianorgMolto stabile e sicura ma piugrave difficile da configurare e installare Buona per gli sviluppatori ma non ancora per gli utenti Le nuove versioni non sono abbastanza frequenti (ogni 2 o 3 anni) Ottima per i server ma non per i principianti
Mandriva Community httpmandrivalinuxcomFacile da installare e da usare sicura rilascia frequenti ma meno stabile (ci sono pochi test e manca la gestione del feedback dellutente)
27
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix Liberi (1)GNU Hurd httpwwwgnuorgsoftwarehurdhurdhtml
Utilitagrave GNU con Hurd il kernel GNU (microkernel)
Sta maturando ma non abbastanza per un uso genericoAl momento (2005) usato per lo piugrave da sviluppatori Hurd
Famiglia BSD
FreeBSD httpwwwfreebsdorgSistema BSD potente multi piattaforma sicuro e popolare
OpenBSD httpopenbsdorgCostruito mirando alla massima sicurezza e affidabilitagrave Popolare nei server Internet
NetBSD httpnetbsdorgDistribuzione BSD progettata per essere portabile (disponibile su ARM e altri)
28
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altri sistemi Unix liberi (2)
ECOS httpecossourcewareorgSistema in tempo reale molto leggero per dispositivi embedded sviluppato da Red HatCygnus solutionsEgrave conforme alle API POSIX
29
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
I file system di Unix
30
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Tutto egrave un file
File regolari
DirectoryLe directory sono semplicemente file che elencano un insieme di file
Link simboliciFile che si riferiscono al nome di un altro file
Device e perifericheLeggi e scrivi da dispositivi come fossero file regolari
Pipe ldquo|rdquoUsati per mettere in sequenza programmicat log | grep error
SocketComunicazione tra processi
Quasi tutto in Unix egrave un file
31
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di fileCaratteristiche dei nomi dei file fin dagli inizi di Unix
Distingue maiuscolominuscolo
Nessun limite (stretto) di lunghezza
puograve contenere qualsiasi carattere (incluso lo spazio escluso ldquordquo)I tipi dei file sono memorizzati nei file stessi (ldquomagic numbersrdquo)Le estensioni dei file non sono necessarie e non sono interpretate Sono usate per comoditagrave
Esempi di nomi di fileREADME bashrc Windows Buglistindexhtm indexhtml indexhtmlold
32
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
File path
Un path egrave una sequenza di directory con un file o una directory alla fine separati dal carattere ldquordquo
Path relativo documentsfunmicrosoft_jokeshtmlRelativo alla directory corrente
Path assoluto homebillbugscrash9402031614568
ldquordquo directory rootInizio dei path assoluto per tutti i file presenti sul sistema (anche per i file su dispositivi rimovibili e condivisi in rete)
33
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (1)
Non egrave imposta dal sistema Puograve variare da un sistema ad un altro persino tra due installazioni GNULinux
Directory rootbin Comandi di sistema di baseboot Immagini del kernel initrd e configurazionidev File che rappresentano dispositivi ad esempio
devhda primo Hard Disk IDEetc File di configurazione del sistemahome Directory degli utentilib Librerie condivise di base del sistema
34
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (2)
lost+found File danneggiati che ha cercato di recuperaremnt Filesystem montati
mntusbdisk mntwindows opt Programmi specifici installati da sysadmin
Spesso si usa usrlocal invece
proc Accesso ad informazioni di sistemaproccpuinfo procversion
root home directory dellutente rootsbin Comandi riservati allamministratoresys Controlli del sistema e dei dispositivi
(frequenza cpu alimentazione dispositivi etc)
35
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Struttura del filesystem di GNULinux (3)
tmp File temporaneiusr Programmi dellutente (non essenziali al sistema)
usrbin usrlib usrsbinusrlocal Software specifico installato dallamministratore
(spesso preferito a opt)var Dati usati dal sistema o dai server di sistema
varlog varspoolmail (mail in arrivo) varspoollpd (code di stampa)
36
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Shell e gestione file
37
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Interpreti della linea di comando
Shell programma per eseguire comandi utente
Chiamato ldquoshellrdquo percheacute nasconde i dettagli del sottostante sistema operativo come un guscio
I comandi sono inseriti testualmente in un terminale in una finestra in un ambiente grafico o in una console solo testo
Anche i risultati sono mostrati sul terminale Non serve nessuna grafica
Si possono usare degli script fornisce tutte le risorse per scrivere programmi complessi (variabili if iterazioni)
38
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Le shell piugrave noteLe shell piugrave famose e popolari
sh La Bourne shell (obsoleta)Tradizionale shell base presente nei sistemi Unix di Steve Bourne
csh la shell C (obsoleta)Una shell popolare tempo fa con sintassi simile al C
tcsh la TC shell (ancora molto popolare)Una implementazione compatibile con la C shellcon caratteristiche evolute (completamento dei comandi editing della storia e altro)
bash la Bourne Again shell (la piugrave popolare)Una versione migliorata di sh con molte caratteristiche in piugrave
39
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comando ls
ls shya (allshytutti)Elenco di tutti i file (inclusi i file )
ls shyl (lungo)Elenco lungo (tipo data dimensione permessi proprietagrave)
ls shyt (tempo)Elenco dei file piugrave recenti
ls shyS (sizeshydimensione)Elenco dai file piugrave grandi
ls shyr (rovescio)Inverti lordinamento
ls shyltr (le opzioni possono essere combinate) elenco lungo con i file piugrave recenti alla fine
Elenca i file nella directory corrente in ordine alfanumericoeccetto i file che iniziano con il carattere ldquordquo
40
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sostituzione dei caratteri specialiMeglio procedere per esempi
ls txtLa shell sostituisce txt con tutti i file e i nomi di directory che finiscono per txt (incluso txt) esclusi quelli che iniziano per e poi esegue il comando ls
ls shyd Elenca tutti i file e directory che iniziano con shyd dice a ls di non mostrare il contenuto delle directory
cat logMostra tutti i file che iniziano con un solo carattere e finiscono per log
41
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (1)
La directory corrente Utile per comandi che vogliono come argomento una directory Utile anche per eseguire comandi nella directory corrente (vedi piugrave avanti)
dunque readmetxt e readmetxt sono equivalenti
La directory padre (superiore) a cui appartiene la directory (vedi ls shya) Unico riferimento alla directory padre
Uso tipicocd
42
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Directory speciali (2)
~
Non egrave una vera directory speciale La shell la sostituisce con il nome della directory dellutente attuale
Non puograve essere usata in molti programmi non essendo una directory reale
~sydney
Analogo sostituito dalla shell con il nome della directory dellutente sydney
43
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cd e pwdcd ltdirgtcambia la directory corrente a ltdirgtpwdMostra la directory corrente (directory di lavoro)
44
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando cpcp ltfile_sorgentegt ltfile_destinazionegtCopia il file sorgente nella destinazionecp file1 file2 file3 dirCopia i file nella directory destinazione (ultimo argomento)
cp shyi (interattivo)Chiede conferma se il file destinazione esiste giagravecp shyr ltdir_sorgentegt ltdir_destinazionegt (ricorsivo)Copia lintera directory
45
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Copia intelligente di directory con rsyncrsync (sync remoto) egrave pensato per mantenere in sincronizzazione
directory su 2 macchine con un collegamento lento
Copia solo i file che sono stati cambiati I files della stessa dimensione sono confrontati con un checksum
Trasferisce solo i blocchi di un file che sono diversi
Puograve comprimere i blocchi trasferiti
Mantiene i link simbolici e i permessi dei file utile anche per copie nella stessa macchina
Puograve lavorare con ssh (shell remota sicura) Molto utile per aggiornare i contenuti di un sito web ad esempio
46
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (1)rsync shya homearvinsd6_agents homesydneymisc
shya modo archivio Equivalente a shyrlptgoD un modo facile per dire che vuoi la ricorsione preservando quasi tutto
rsync shyPav shyshydelete homesteveideas homebillmy_ideas
shyP shyshypartial (tieni i file parzialmente trasferiti) and shyshyprogress (mostra i progressi durante il trasferimento)
shyshydelete cancella i file che non esistono nei sorgenti
Attenzione i nome delle directory devono finire con altrimenti si ottiene la directory my_ideasideas nella destinazione
47
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di rsync (2)
Copiare su una macchina remota
rsync shyPav homebilllegalarguments billwwwscocomhomelegalarguments
Lutente bill deve inserire la password
Copiare da una macchina remota con ssh
rsync shyPav shye ssh homertankduffcomprodbeer fridgehomerbeer
Lutente homer deve inserire la sua password
48
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi mv e rmmv ltvecchio_nomegt ltnuovo_nomegt (muovi)Rinomina i file o le directory
mv shyi (interattivo)Se il nuovo file esiste chiedi conferma allutente
rm file1 file2 file3 (cancella)Cancella i file dati
rm shyi (interattivo)Chiedi conferma allutente
rm shyr dir1 dir2 dir3 (ricorsivo)Rimuove le directory date e il loro contenuto
49
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare e cancellare le directory
mkdir dir1 dir2 dir3 (crea le directory)Crea le directory con i nomi dati
rmdir dir1 dir2 dir3 (cancella directory)Cancella le directory dateEgrave piugrave sicuro funziona solo con directory vuoteAlternativa rm shyr
50
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Mostrare il contenuto dei fileCi sono parecchi modi per mostrare il contenuto dei file
cat file1 file2 file3 (concatena)Concatena e mostra il contenuto dei file dati
more file1 file2 file3 Dopo ciascuna pagina chiede allutente di premere un tastoSi puograve anche andare direttamente alla parola voluta (comando)
less file1 file2 file3 Fai piugrave di more e con meno faticaNon legge lintero file prima di iniziareGestisce il movimento allindietro nel file (comando )
51
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
I comandi head e tailhead [shyltngt] ltfilegtMostra le prime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file per fare questo
tail [shyltngt] ltfilegtMostra le ultime ltngt linee (o 10 di default) del file datoNon deve leggere lintero file in RAM Utile per file grandi
tail shyf ltfilegt (insegui)Mostra le ultime 10 linee del file e continua a mostrare le nuove linee quando vengono aggiunteMolto utile per controllare i cambiamenti di un file di log
Esempihead windows_bugstxttail shyf outlook_vulnerabilitiestxt
52
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando grep
grep ltpatterngt ltfilesgtCerca nei file dati e mostra le linee che corrispondono allo schema dato
grep error logMostra tutte le linee che contengono la parola error nei file log
grep shyi error logLo stesso senza distinguere tra maiuscolo e minuscolo
grep shyri error Lo stesso ma ricorsivamente in tutti i file in e nelle sue sottodirectory
grep shyv info logMostra tutte le linee nei file log eccetto quelle contenenti info
53
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando sort
sort ltfilegtOrdina alfanumericamente le linee del file dato e le mostrasort shyr ltfilegtLo stesso ma in ordine inversosort shyru ltfilegtu unico Lo stesso ma mostra una sola volta linee identiche
Molte altre possibilitagrave seguiranno a breve
54
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Link simbolici
Un link simbolico egrave un file speciale che contiene solo un riferimento al nome di un altro file o directory
Utile per ridurre loccupazione del disco e il disordine quando 2 file hanno lo stesso contenuto
Esempioanakin_skywalker_biography shygt darth_vador_biography
Come identificare un link simbolico
ls shyl mostra shygt e il nome del file collegato
GNU ls mostra i link in un colore diverso
55
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare link simbolici
Per creare un link simbolico (stesso ordine usato in cp)ln shys file_name link_name
Per creare un link con un file in unaltra direcotry con lo stesso nomeln shys READMEtxt
Per creare link multipli con un comando solo in una directory dataln shys file1 file2 file3 dir
Per cancellare un link (questo non cancella il file originale)rm link_name
56
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Hard link
Il comportamento di default di ln egrave di creare hard link
Un hard link ad un file egrave un file regolare con esattamente lo stesso contenuto fisico
Si risparmia spazio ma gli hard links non si possono distinguere dai file originali
Se si cancella il file originale il contenuto dellhard link non subisce cambiamenti
Il contenuto egrave rimosso quando non vi sono piugrave file (hard links) che fanno riferimento ad esso
57
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Nomi di file e inodes
Come capire i link simbolici (soft) e hard
Inode
File Hard linkSoft link
Inodeinterface
File name interface
Filesystem
Users
rmrm
58
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Diritti di accesso ai file
3 tipi di diritti di accesso
Accesso in lettura (r)
Accesso in scrittura (w)
Diritto di esecuzione (x)
3 tipi di livello di accesso
Utente (u) per il proprietario del file
Gruppo (g) ciascun file ha anche un attributo di gruppo corrispondente ad una lista di utenti
Altri (o) per tutti gli altri utenti
Usa ls shyl per verificare i diritti di accesso ai file
59
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Limiti nei diritti di accesso
x senza r egrave legale ma non serve a nienteBisogna essere in grado di leggere un file per eseguirlo
Per le directory serve sia r che x x per entrare r per vedere il contenuto
Non si puograve rinominare cancellare copiare file in una directory se non si ha il permesso di accesso in scrittura (w) alla directory
Se hai accesso w a una directory PUOI cancellare un file anche se non hai il permesso di scrittura su quel file (ricorda che una directory egrave solo un file che contiene una lista di file) Questo consente di modificare (cancellare + ricreare) un file anche senza accesso ad esso
60
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di diritto daccessoshyrwshyrshyshyrshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli altri
shyrwshyrshyshyshyshyshy
Leggibile e scrivibile per il proprietario del file solo leggibile per gli utenti appartenenti allo stesso gruppo
drwxshyshyshyshyshyshyDirectory accessibile solo dal proprietario
shyshyshyshyshyshyshyrshyxFile eseguibile dagli altri ma non da te o dai tuoi amici Bella protezione per una trappola
61
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
chmod cambiare i permessichmod ltpermessigt ltfilegt2 formati per i permessi
Formato ottale(abc) abc = r4+w2+x (r w x booleani)Esempio chmod 644 ltfilegt(rw for u r per g e o)
O formato simbolico Facile da capire con esempichmod go+r aggiungi permesso di lettura a gruppo e altrichmod ushyw togli permesso di scrittura allutentechmod ashyx (a all) rimuovi permesso di esecuzione per tutti
62
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (1)
chmod shyR a+rX linuxRende linux e tutto ciograve che vi si trova disponibile a chiunque
R esegue i cambiamenti ricorsivamente
X x applica x solo alle directory e ai file giagrave eseguibili eMolto utile per consentire in maniera ricorsiva laccesso alle directory senza aggiungere il diritto di esecuzione a tutti i file
63
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Ancora chmod (2)
chmod a+t tmp
t (sticky) Permesso speciale per directory per consentire solo al proprietario della direcotry e del file di cancellare un file nella directory
Utile per directory con diritto di scrittura per tutti come tmp
Mostrato da ls shyl con il carattere t
64
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Standard IO ridirezione e pipe
65
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard output
Osservazioni sulloutput dei comandi
Tutti i comandi che mostrano output di testo sul terminale lo fanno scrivendo sul loro standard output
Lo standard output puograve essere scritto su un file (ridirezione) usando il simbolo gt
Lo standard output puograve essere aggiunto in coda a un file esistente usando il simbolo gtgt
66
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi ridirezione dello standard output
ls ~saddam gt ~gwbweapons_mass_destructiontxt
cat obiwan_kenobitxt gt starwars_biographiestxtcat han_solotxt gtgt starwars_biographiestxt
echo ldquoREADME No such file or directoryrdquo gt READMEUn modo per creare un file senza editor di testiIn questo caso egrave anche uno scherzo di Unix
67
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard inputAlcune osservazioni sullinput dei comandi
Molti comandi quando non hanno argomenti di input leggono il loro input dallo standard input sortwindowslinux[Ctrl][D]linuxwindows
sort lt participantstxtLo standard input di sort egrave preso dal file dato
sort prende il suo input dallostandard input in questo casoquello che inserisci dal terminale(terminato da [Ctrl][D])
68
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pipe
I pipe di Unix sono molto utili per ridirezionare lo standard output di un comando allo standard input di un altro
Esempicat log | grep shyi error | sort
grep shyri error | grep shyv ldquoignoredrdquo | sort shyu gt serious_errorslog
cat homehomeworktxt | grep mark | more
Questa egrave una delle caratteristiche piugrave potenti delle shell di Unix
69
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando tee
tee [shya] file
Il tee comando puograve essere usato per inviare lo standard output contemporaneamente ad un file e sul videomake | tee buildlogEsegue il comando make e memorizza loutput in buildlog
make install | tee shya buildlogEsegue il comando make install e aggiunge il suo output a buildlog
70
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Standard errorI messaggi di errore sono di solito stampati (se il programma egrave scritto bene) su standard error invece che su standard output
Lo standard error puograve essere redirezionato con 2gt o 2gtgt
Esempiocat f1 f2 nofile gt nuovofile 2gt errfile
1 egrave il descrittore di standard output cioegrave 1gt egrave equivalente a gt
Si puograve ridirezionare sia lo standard output che lo standard error allo stesso file usando ampgtcat f1 f2 nofile ampgt wholefile
71
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando yes
Utile per riempire lo standard input con una stringa ripetutayes ltstringagt | ltcomandogtContinua a riempire lo standard input di ltcomandogt con ltstringagt (y di default)
Esempiyes | rm shyr dirbankgt yes no | credit_applicantyes | make oldconfig (equivalente a premere Enter per accettare tutte le scelte di default)
72
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Device speciali
Sembrano file reali ma
devnullIl buco nero dei dati Butta via tutti i dati scritti su questo fileUtile per liberarsi di output non voluto tipicamente informazioni di logmplayer black_adder_4thavi ampgt devnull
devzeroLeggendo da questo file si ottiene sempre il carattere 0Utile per creare file riempiti con zeridd if=devzero of=diskimg bs=1k count=2048
73
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Controllo dei processi
74
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi
Unix fin dalle origini gestisce un vero multitasking preemptivo
Capacitagrave di eseguire molti processi in parallelo e terminarli anche se corrompono il loro stato e i loro dati
Possibilitagrave di scegliere quali programmi eseguire
Capacitagrave di scegliere quale input dare ai tuoi programmi e dove mandare loutput
75
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Processi
ldquoTutto in Unix egrave un fileTutto ciograve che non egrave un file egrave un processordquo
Processi
Istanze di un programma in esecuzione
Diverse istanze dello stesso programma possono essere in esecuzione allo stesso tempo
Dati associati ai processiFile aperti memoria allocata stack numero di processo padre prioritagrave stato
76
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Eseguire processi in background
Luso egrave lo stesso per tutte le shells
Utile
Per compiti da linea di comando il cui output puograve essere esaminato piugrave tardi in particolare per programmi che richiedono un lungo tempo di esecuzione
Per iniziare applicazioni grafiche dalla linea di comando e poi continuare a controllarle con il mouse
Per far partire un processo in background aggiungi amp alla fine del comando
find_prince_charming shyshycute shyshyclever shyshyrich amp
77
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo dei processi in backgroundjobsRestituisce la lista dei processi in background nella shell usata
[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
fgfg ltngtPorta in foreground lultimoennesimo processo in background
Mette il processo corrente in modo background[Ctrl] Zbg
kill ltngtUccide lennesimo processo
78
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempio di controllo processigt jobs[1]shy Running ~binfind_meaning_of_life shyshywithoutshygod amp[2]+ Running make mistakes amp
gt fgmake mistakes
gt [Ctrl] Z[2]+ Stopped make mistakes
gt bg[2]+ make mistakes amp
gt kill 1[1]+ Terminated ~binfind_meaning_of_life shyshywithoutshygod
79
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco di tutti i processi in qualsiasi modo siano stati fatti partire
ps shyuxElenco di tutti i processi che appartengono allutente corrente
ps shyaux (Note ps shyedf on System V systems)Elenco di tutti i processi in esecuzione nel sistemaps shyaux | grep bart | grep bashUSER PID CPU MEM VSZ RSS TTY STAT START TIME COMMANDbart 3039 00 02 5916 1380 pts2 S 1435 000 binbashbart 3134 00 02 5388 1380 pts3 S 1436 000 binbashbart 3190 00 02 6368 1360 pts4 S 1437 000 binbashbart 3416 00 00 0 0 pts2 RW 1507 000 [bash]
PID Identificatore del processoVSZ Dimensione Virtuale del processo (codice + dati + stack)RSS Dimensione residente del Processo numero di KB attualmente in RAMTTY TerminaleSTAT Stato R (In esecuzione) S (Addormentato) W (In attesa) Z (Zombie)
80
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (1)kill ltpidsgtManda un segnale di abort al processo dato Consente al processo di salvare i dati e di uscire di sua volontagrave Dovrebbe essere usato per primo Esempiokill 3039 3134 3190 3416
kill shy9 ltpidsgtManda un segnale di terminazione immediata Il sistema stesso uccide il processo Utile quando un processo egrave veramente bloccato (non risponde a kill shy1)kill shy9 shy1Termina tutti i processi (opzione shy1) dellutente corrente
81
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Terminare i processi (2)killall [shyltsignalgt] ltcommandgtTermina tutti i processi lanciati con ltcommandgt Esempio killall bashxkillTi lascia terminare una applicazione grafica selezionandola con il mouseMolto veloce Utile quando non conosci il comando che ha lanciato lapplicazione
82
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Attivitagrave dei processitop ndash Mostra i processi piugrave importanti in ordine di occupazione di tempo macchina
top shy 154433 up 111 5 users load average 098 061 059Tasks 81 total 5 running 76 sleeping 0 stopped 0 zombieCpu(s) 927 us 53 sy 00 ni 00 id 17 wa 03 hi 00 siMem 515344k total 512384k used 2960k free 20464k buffersSwap 1044184k total 0k used 1044184k free 277660k cached
PID USER PR NI VIRT RES SHR S CPU MEM TIME+ COMMAND3809 jdoe 25 0 6256 3932 1312 R 938 08 02149 bunzip22769 root 16 0 157m 80m 90m R 27 160 52101 X3006 jdoe 15 0 30928 15m 27m S 03 30 02240 kdeinit3008 jdoe 16 0 5624 892 4468 S 03 02 00659 autorun3034 jdoe 15 0 26764 12m 24m S 03 25 01268 kscd3810 jdoe 16 0 2892 916 1620 R 03 02 00006 top
Puoi cambiare lordine premendo M Memoria P CPU T Tempo
Puoi terminare un task premendo k e il numero del processo
83
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Recuperare una sessione grafica bloccataSe la tua sessione grafica egrave bloccata e non puoi piugrave usare i tuoi terminali non fare un reboot
Probabilmente il tuo sistema egrave ancora funzionante Prova ad accedere ad una console premendo la sequenza [Ctrl][Alt][F1](o [F2][F3] per altre console di testo)
Nella console di testo puoi provare ad uccidere lapplicazione bloccata
Una volta fatto puoi tornare alla sessione grafica premendo [Ctrl][Alt][F5] o [Ctrl][Alt][F7] (dipende dalla distribuzione)
Se non puoi identificare il programma bloccato puoi uccidere tutti i puoi processi kill shy9 shy1Poi compare la schermata di login
84
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Sequenze di comandi
Puoi scrivere il prossimo comando sul terminale anche se il comando corrente non egrave terminato
Puoi separare i comandi con il simbolo echo ldquoI love theerdquo sleep 10 echo ldquo notrdquo
Condizionali usa ldquo||rdquo (o) oppure ldquoampamprdquo (e)more God || echo ldquoSorry God doesnt existrdquoEsegue echo solo se il primo comando fallisce
ls ~sd6 ampamp cat ~sd6 gt ~sydneyrecipestxtEsegue il cat del contenuto della directory se il comando ls ha successo (cioegrave ha diritti di accesso in lettura)
85
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (1)
Doppi apici o virgolette () possono essere usati per evitare che la shell interpreti gli spazi come separatori di argomenti e per evitare lespansione dei nomi dei file con caratteri speciali
gt echo Hello WorldHello World
gt echo You are logged as $USERYou are logged as bgates
gt echo logfind_prince_charminglog cosmetic_buyslog
gt echo loglog
86
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Uso delle virgolette (2)
Un singolo apice egrave simile ma non viene eseguita nessuna sostituzione di ciograve che si trova tra apici
gt echo You are logged as $USERYou are logged as $USER
Lapice rovescio (`) puograve essere usato per chiamare un comando da dentro un altro
gt cd libmodules`uname shyr` pwdlibmodules269shy16_FC2
Lapice rovescio puograve essere usato dentro i doppi apici
gt echo You are using Linux `uname shyr`You are using Linux 269shy16_FC2
87
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare il tempo trascorsotime find_expensive_housing shyshynearltcommand outputgtreal 0m2304s (tempo trascorso effettivamente)user 0m0449s (tempo in cui la CPU ha eseguito il codice del programma)sys 0m0106s (tempo in cui la CPU ha eseguito chiamate di sistema)
reale = utente + sistema + attesaattesa = tempo di attesa di IO + tempo idle (altri programmi in esecuzione)
88
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabili dambiente
Le shell consentono di definire delle variabiliPossono essere usate in comandi shellConvenzione caratteri minuscoli
Si possono anche definire variabili dambiente variabili che sono visibili anche allinterno di script o programmi eseguibili chiamati dalla shellConvenzione caratteri maiuscolienvElenco di tutte le variabili dambiente e il loro valore
89
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di variabili shell
variabili shell (bash)projdir=homemarshallcoolstuffls shyla $projdir cd $projdir
Variabili ambiente (bash)cd $HOME
export DEBUG=1trova_vita_extraterreste(mostra informazioni di debug se DEBUG egrave impostato)
90
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Principali variabili dambiente standard
LD_LIBRARY_PATH
Dove sono le librerie condiviseDISPLAY
Identificativo del monitor su cui mostrare applicazioni XEDITOR
Editor di default (vi emacs)HOME
Directory Home dellutenteHOSTNAME
Nome della macchina locale
MANPATH
Dove sono le pagine manualePATH
Dove sono i comandiPRINTER
Stampante di defaultSHELL
Nome della shell correnteTERM
Nomemodo del terminaleUSER
Nome dellutente attuale
Usate da moltissime programmi
91
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Variabile dambiente PATHPATHIndica alla shell lordine in cui cercare i programmi
homeacoxbinusrlocalbinusrkerberosbinusrbinbinusrX11R6binbinusrbin
LD_LIBRARY_PATHIndica lordine in cui cercare le librerie condivise (librerie di codice condiviso dalle applicazioni come la libreria C) per ld
usrlocallibusrliblibusrX11R6lib
MANPATHIndica lordine in cui cercare le pagine del manuale
usrlocalmanusrshareman
92
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Accorgimenti nelluso di PATH
Si raccomanda di non mettere la directory ldquordquo nella variabile dambiente PATH in particolare mai allinizio
Un cracker potrebbe mettere un file ls modificato in una directory Verrebbe eseguito quando si lancia ls in questa directory e potrebbe causare danni ai dati
Se hai un file eseguibile chiamato test in una directory questo viene eseguito al posto del programma di sistema test e alcuni script potrebbero non funzionare
Ogni volta che esegui un cd in una nuova directory la shell perde tempo ad aggiornare la lista dei comandi disponibili
Invoca i comandi locali con la seguente sintassi test
93
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
AliasLa shell consente di definire comandi alias abbreviazioni di comandi usati molto spesso
Esempialias ls=ls shylaUn modo utile per eseguire comandi con argomenti di default
alias rm=rm shyiUtile per far chiedere sempre conferma a rm
alias frd=find_rambaldi_device shyshyasap shyshyriskyUtile per sostituire una linea di comando lunga e frequente
alias cia= homesydneyenvciashUtile per impostare una variabile dambiente in maniera veloce( egrave un comando di shell per eseguire il contenuto di uno shell script)
94
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando which
which ti dice dove si trova un comando eseguibile
bashgt which lsalias ls=ls shyshycolor=tty binls
tcshgt which lsls aliased to ls shyshycolor=tty
bashgt which aliasusrbinwhich no alias in (usrlocalbinusrbinbinusrX11R6bin)
tcshgt which aliasalias shell builtshyin command
95
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il file ~bashrc
~bashrcUno shell script letto ogni volta che la shell bash egrave eseguita
Puoi usare questo file per definire
Le tue variabili dambiente (PATH EDITOR)
I tuoi alias
Il tuo prompt (vedi il manuale bash per dettagli)
Un messaggio di saluto
96
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Utilitagrave varie
97
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Edit dei comandi
Puoi usare i tasti freccia destra e sinistra per muovere il cursore nella linea di comando
Puoi usare [Ctrl][a] per andare allinizio della linea e [Ctrl][e] per andare alla fine
Puoi usare i tasti freccia su e giugrave per selezionare comandi precedenti
98
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (1)historyMostra gli ultimi comandi che hai eseguito e il loro numero Puoi fare copia e incolla sulle righe dei comandi
Puoi richiamare lultimo comando
Puoi richiamare un comando con il suo numero1003
Puoi richiamare lultimo comando corrispondente ad una stringa datacat
99
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Storia dei comandi (2)
Puoi fare sostituzioni sullultimo comando^more^less
Puoi eseguire un altro comando con gli stessi argomentimore
100
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Editor di testo
Editor di testo graficiBuoni per la maggior parte degli utilizzi
nedit
Emacs Xemacs
Editor di testo soloshytestoSpesso usati dai gestori e ottimi per utenti esperti
vi
nano
101
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit(1)httpwwwneditorg
102
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
nedit (2)
Il migliore editor di testo per chi non usa vi o emacs
Caratteristiche principali
Selezione e spostamento del testo molto facile
Evidenziazione del testo per molti linguaggi e formati Puograve essere personalizzato per i propri file di log per evidenziare particolari errori e avvertimenti
Facile da personalizzare usando i menu
Non egrave installato di default da tutte le distribuzioni
103
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Emacs Xemacs
Emacs e Xemacs sono simili (dipende dai propri gusti)
Estremamente potente come editor
Fantastico per utenti avanzati
Meno ergonomico di nedit
Abbreviazioni non standard
Molto piugrave di un editor di testi (giochi posta elettronica shell navigatore)
Alcuni potenti comandi richiedono un po di studio
104
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vi
Editor in modalitagrave testo disponibile in tutti i sistemi Unix Creato prima che vi fossero i computer con i mouse
Difficile da imparare ad usare se si egrave abituati ad un editor grafico
Molto produttivo per utenti esperti
Spesso non si puograve evitare di usarlo per editare file di configurazione nellamministrazione di un sistema o in ambienti embedded quando egrave disponibile solo la console in modalitagrave testo
105
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
vim shy vi improved (migliorato)limplementazione di vi che si trova nella maggior parte dei sistemi GNULinux
Implementa molte caratteristiche dei moderni editor evidenziazione del testo storia dei comandi aiuto in linea undo senza limiti e molto altro
Esempio di una interessante caratteristica si possono aprire direttamente i file di testo compressi
Ha una interfaccia grafica in GTK (gvim)
Sfortunatamente non egrave software libero (per una piccola restrizione sulla libertagrave di fare cambiamenti)
106
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi base di vi[Esc] Switch to command mode (when in edit mode)i Insert texta Identical to insert command except starts inserting at character after cursorr Replace character under cursorR Replace multiple charactersJ Join lines (default 2)ndd Delete n lines Deleted lines are copied to buffernyy Yank n lines n lines starting at cursor line are copied to bufferp Paste contents of buffer after the line that contains the cursorD Delete from cursor position to end of linenG Goto line n If n is not specified goes to the last lineH Goto first line of filestring Find next occurrence of string1$sstr1str2g Replaces every occurrence of str1 with str2 starting from line 1 to the end of textn Find next occurrence of the last search stringstring Find previous occurrence of string^f Go forward a page^b Go backward a pageh Move cursor leftl Move cursor rightj Move cursor downk Move cursor up^L Redraw screenu Undo the latest changeU Undo all changes on a line while not having moved off of itwq Save file and exit viw name Save to file ldquonamerdquoxy w name Writes lines x through y to file ldquonamerdquoq Exit vi without saving changesf Displays file information on bottom on screenZZ Write contents of buffer to current file and quit vi
Lancia il comando vimtutor per imparareServono solo 30 minuti per completare il tutorial
107
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNU nano
httpwwwnanoshyeditororg
Un altro piccolo editor solo modalitagrave testo senza mouse
Una imitazione migliorata di Pico (editor non libero di Pine)
Facile da usare e da conoscere per i principianti grazie allelenco dei comandi presenti a video
Eseguibili disponibili per parecchie piattaforme
Unalternativa a vi in sistemi embedded Comunque non egrave disponibile allinterno di busybox
108
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Schermata di GNU nano
109
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComprimere e archiviare
110
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Determinare la dimensione di un file
du shyh ltfilegt (uso del disco)shyh restituisce la dimensione del file dato in un formato leggibile K (kilobytes) M (megabytes) o G (gigabytes) Altrimenti du restituisce il numero di blocchi di disco usati dal file (difficile da leggere)
Nota che lopzione shyh esiste solo nel du di GNU Non egrave disponibile sul du di Sun Solaris per esempio du shysh ltdirgtshys restituisce la somma delle dimensioni di tutti i file della directory data
111
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Misurare lo spazio su discodf shyh ltdirgtRestituisce lo spazio del disco usato e libero per il filesystem contenente la directory dataAnalogamente lopzione shyh esiste solo in GNU df
Esempiogt df shyh Filesystem Size Used Avail Use Mounted ondevhda5 92G 71G 18G 81
df shyhRestituisce le informazioni per tutti i filesystems disponibili nel sistema In caso d errore egrave utile per trovare filesystem pieni
112
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
CompressioneUtilissima per ridurre la dimensione di grossi file e risparmiare
spazio
[un]compress ltfilegtUtilitagrave tradizionale di compressione di Unix Crea file Z Tenuta per compatibilitagrave Medie prestazioni
g[un]zip ltfilegtUtilitagrave di compressione di GNU Crea file gz Buone prestazioni (simili a Zip)
b[un]zip2 ltfilegtLa piugrave recente e migliore utilitagrave di compressione Crea file bz2 Di solito comprime il 20shy25 piugrave di gzipUsate questa Ora egrave disponibile in tutti i sistemi Unix
113
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (1)Utile per fare copie o rilasciare un insieme di file come file
unico
tar in origine ldquoarchivio a nastrordquo
Creare un archiviotar cvf ltarchivegt ltfiles or directoriesgtc creav con molti messaggi Utile per verificare i progressif file Larchivio egrave creato in un file (altrimenti usa il nastro)
Esempiotar cvf backuphometar homebzip2 backuphometar
114
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Archiviazione (2)
Vedere il contenuto di un archivio o verificarne lintegritagravetar tvf ltarchivegtt test
Estrarre tutti i file da un archiviotar xvf ltarchivegt
Estrarre solo alcuni file da un archiviotar xvf ltarchiviogt ltfile o directorygtI file o le directory sono indicati con un path relativo alla directory base dellarchivio
115
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Altre opzioni di GNU tar
tar = gtar = GNU tar su GNULinuxPuograve comprimere e decomprimere archivi al volo Utile per evitare di creare enormi file intermediMolto piugrave semplice che usare tar e bzip2
opzione j [s]comprime al volo con bzip2
opzione z [s]comprime al volo con gzip
Esempi (quale ricordi meglio)gtar jcvf bills_bugstarbz2 bills_bugs
tar cvf shy bills_bugs | bzip2 gt bills_bugstarbz2
116
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando wget
Invece di scaricare i file dal tuo browser fa il copia e incolla dellURL e scaricali con wget
Principali caratteristiche di wget
supporto di http e ftp
Puograve continuare download interrotti
Puograve scaricare interi siti o almeno verificare collegamenti corrotti
Molto utile negli scripts o quando non cegrave disponibile la grafica (gestione di sistema sistemi embedded)
Supporto proxy (variabili dambiente http_proxy e ftp_proxy)
117
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Esempi di wget
wget shyc httpmicrosoftcomcustomersdogswinxp4dogszipContinua un download interrotto
wget shym httplwnnetEsegue la copia di un sito
wget shyr shynp httpwwwxmlcomlddchapterbookScarica ricorsivamente un libro onshyline per un accesso offshylineshynp noshyparent Segue solo i link nella directory corrente
118
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica dellintegritagrave dei file
Una soluzioni molto veloce per la verifica dellintegritagrave dei file
md5sum FC3shyi386shydiskiso gt MD5SUMCalcola un MD5 (Message Digest Algorithm 5) 128 bit checksum del file dato Di solito egrave ridiretto su un file
Esempio di outputdb8c7254beeb4f6b891d1ed3f689b412 FC3shyi386shydisc1iso2c11674cf429fe570445afd9d5ff564e FC3shyi386shydisc2isof88f6ab5947ca41f3cf31db04487279b FC3shyi386shydisc3iso6331c00aa3e8c088cc365eeb7ef230ea FC3shyi386shydisc4iso
md5sum shyc MD5SUMVerifica lintegritagrave dei file in MD5SUM verificando il loro effettivo MD5 con quello originale
119
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieStampa
120
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
La stampa in Unix
Egrave multishyutente multishyprocesso multishycliente multishystampanteIn UnixLinux i comandi di stampa non stampano realmente Mandano la stampa ad una coda di stampa che puograve essere sulla macchina locale su server di stampa in rete o su una stampante di rete
Sistema di stampa indipendenteI server di stampa accetano solo stampe in PostScript o testo I driver di stampa sul server si occupano di convertire i dati in funzione del tipo di stampante
Sistema robustoSe il sistema viene riavviato stamperagrave i lavori sospesi
121
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi di stampa
Una comoda variabile dambiente PRINTERImposta la stampante di default del sistema Esempioexport PRINTER=lp
lpr [shyPltcodagt] ltfilegtManda i file dati alla coda di stampa specificataI file devono essere in formato testo o in Postscript Altrimenti stampa solo simboli senza senso
a2ps [shyPltcodagt] ltfilegtldquoAny to PostScriptrdquo converte molti formati a PostScript e invia loutput alla coda specificata Caratteristiche utili parecchie pagine per foglio numerazione delle pagine informazioni extra
122
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Controllo delle code di stampa
lpq [shyPltcodegt]Elenco di tutti i lavori di stampa sulla coda data o sulla coda di default
lp is not readyRank Owner Job File(s) Total Size1st asloane 84 nsa_windows_backdoorsps 60416 bytes2nd amoore 85 gw_bush_iraq_mistakesps 65024000 bytes
cancel ltjobgt [ltcodagt]Rimuove il lavoro identificato dal numero dato dalla coda di default
123
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare file PostScript e PDFVedere un file PostScript
Esistono visualizzatori di PostScript ma hanno una scarsa qualitagrave
Meglio convertirli a PDF con ps2pdfps2pdf decss_algorithmpsxpdf decss_algorithmpdf amp
Stampare un file PDF
Non serve un visualizzatore di file PDF
Meglio convertirli a PostScript con pdf2pspdf2ps rambaldi_artifacts_for_dummiespdflpr rambaldi_artifacts_for_dummiesps
124
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieConfrontare file e directory
125
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Confrontare file e directory
diff file1 file2Elenca le differenze tra 2 file o non mostra niente se sono ugualidiff shyr dir1 dir2Elenca tutte le differenze tra i file con lo stesso nome nelle 2 directory
Per vedere le differenze in dettaglio egrave meglio usare uno strumento grafico
126
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
tkdiffhttptkdiffsourceforgenet
Strumento grafico utile per confrontare file e fonderli
127
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
kompareUn altro strumento ben fatto per confrontare file e fonderli
Parte del pacchetto kdesdk (Fedora Core)
128
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
gvimdiff
Unaltro programma per vedere le differenze
Disponibile in molte distribuzioni con gvimNon usa diffNon funziona con file con blocchi binari
129
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
MiscCercare file
130
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando find
Meglio mostrare alcuni esempifind shyname ldquopdfrdquoElenco di tutti i file pdf nella directory corrente () o in sottodirectory Servono i doppi apici per evitare che la shell espanda il carattere find docs shyname pdf shyexec xpdf Trova tutti i file pdf nella directory docs e li mostra in sequenza
Vi sono molte altre possibilitagrave Comunque i 2 esempi mostrati risolvono molti problemi
131
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Il comando locateUnalternativa per ricerche con espressioni regolari molto piugrave veloce di find
locate keysElenco di tutti i file nel sistema con keys nel nome
locate ldquopdfrdquoElenco di tutti i file pdf disponibili nellintera macchina
locate ldquohomefridgebeerrdquoElenco di tutti i file beer nella data directory (path assoluto)
locate egrave molto piugrave veloce percheacute ha un indice di tutti i file in un database dedicato che egrave regolarmente aggiornato
find egrave migliore per cercare su file recenti
132
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
VarieComandi vari
133
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Informazioni sugli utentiwhoElenco di tutti gli utenti presenti sul sistema
whoamiMi dice con che nome sono entrato nel sistema
groupsMi dice a quale gruppi appartengo
groups ltusergtMi dice a quali gruppi appartiene lutente ltusergt
finger ltusergtMi fornisce dettagli (nome ecc) su ltusergtDisabilitato in alcuni sistemi (per ragioni di sicurezza)
134
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cambiare nome utente
Non serve eseguire un logout e un login per cambiare utentesu hyde(Raro) Diventa lutente hyde ma mantiene le variabili di ambiente dellutente originalesu shy jekyll(Piugrave frequente) Diventa lutente jekyll con esattamente le stesse impostazioni del nuovo utentesu shySe non viene dato un argomento significa utente root
135
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (1)
sleep 60Aspetta per 60 secondi (non usa risorse di sistema)
wc reporttxt (conteggio parole)438 2115 18302 reporttxtConta il numero delle linee parole e caratteri nel file dato o dello standard input
136
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Comandi vari (2)
bc (calcolatrice)bc egrave una piccola ma potente calcolatrice Include anche un linguaggio di programmazione Usa lopzione shyl per avere il supporto della libreria matematica standarddateRestituisce la data attuale Utile negli script per registrare il tempo di inizio e fine esecuzione dei comandi
137
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Cenni di gestione di sistema
138
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Proprietagrave dei file
chown shyR sco homelinuxsrc (shyR ricorsivo)Rendi lutente sco il nuovo proprietario di tutti i file in homelinuxsrc
chgrp shyR empire homeaskywalkerRendi empire il nuovo gruppo di tutto ciograve che egrave in homeaskywalker
chown shyR borgaliens usss_entreprisechown puograve essere usato per cambiare il proprietario e il gruppo allo stesso tempo
139
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Spegnimentoshutdown shyh +5 (shyh halt)Spegne il sistema dopo 5 minuti Gli utenti vedono un avviso sulle loro console
shutdown shyr now (shyr reboot)init 0Unaltro modo di spegnere (usato da shutdown)init 6Unaltro modo per eseguire il reboot (usato da shutdown)[Ctrl][Alt][Del]Funziona anche questo su GNULinux (almeno sui PC)
140
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (1)ifconfig shyaMostra dettagli su tutte le interfacce di rete disponibili nel sistema
ifconfig eth0Mostra i dettagli relativi allinterfaccia eth0
ifconfig eth0 1921680100Assegna lindirizzo 1921680100 IP a eth0 (1 indirizzo IP per interfaccia)
ifconfig eth0 downSpegne linterfaccia eth0 (libera il suo indirizzo IP)
141
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Installazione della rete (2)route add default gw 19216801Imposta linstradamento di default per pacchetti diretti fuori dalla rete locale Il gateway (qui 19216801) egrave responsabile per inviarli al prossimo gateway ecc fino alla destinazione finalerouteMostra la tabella di instradamento attualeroute del defaultroute del ltIPgtCancella la regola dataUtile per definire una nuova regola di instradamento
142
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Verifica della reteping freshmeatnetping 19216811Prova ad inviare pacchetti alla macchina indicata e aspetta un pacchetto di risposta
PING 19216811 (19216811) 56(84) bytes of data64 bytes from 19216811 icmp_seq=0 ttl=150 time=251 ms64 bytes from 19216811 icmp_seq=1 ttl=150 time=316 ms64 bytes from 19216811 icmp_seq=2 ttl=150 time=271 ms64 bytes from 19216811 icmp_seq=3 ttl=150 time=267 ms
Quando il ping riesce sul proprio gateway linterfaccia di rete egrave a posto
Quando si riesce a fare ping ad un indirizzo esterno la configurazione della rete egrave corretta
143
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Riassunto sullinstallazione della rete
Solo per casi semplici senza server dhcp
Connetti alla rete (cavo scheda wireless )
Identifica linterfaccia di reteifconfig shya
Assegna un indirizzo IP allinterfaccia (esempio eth0)ifconfig eth0 1921680100 (esempio)
Aggiungi una tabella di routing al gateway (assumiamo 19216801) per pacchetti diretti alla rete esternaroute add default gw 19216801
144
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Risoluzione dei nomi
I programmi devono conoscere a quale IP corrisponde un dato nome di macchina (come kernelorg)
Domain Name Servers (DNS) si occupa di questo
Devi solo specificare lindirizzo IP di 1 o piugrave server DNS nel file etcresolvconfnameserver 21719192132nameserver 2122732177
Le modifiche hanno effetto immediato
145
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Creare un filesystemEsempi
mkfsext2 devsda1Formatta la chiave USB (devsda1 1ma partizione) in formato ext2
mkfsext2 shyF diskimgFormatta una immagine di disco in formato ext2
mkfsvfat shyv shyF 32 devsda1 (shyv verbose)Formatta la chiave USB in formato FAT32
mkfsvfat shyv shyF 32 diskimgFormatta una immagine di disco in formato FAT32
Una immagine vuota puograve essere creata come mostrato nellesempiodd if=devzero of=diskimg bs=1024 count=65536
146
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (1)
Per rendere visibile un filesystem presente su un dispositivo qualsiasi (interno o esterno) bisogna montarlo (mount)
La prima volta crea una directory per montarlo nel sistemamkdir mntusbdisk (esempio)
Ora montalomount shyt vfat devsda1 mntusbdiskdevsda1 dispositivo fisicoshyt specifica il tipo di filesystem(ext2 ext3 vfat reiserfs iso9660)
147
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Montare i dispositivi (2)Sono disponibili molte opzioni in particolare per scegliere i permessi o il proprietario dei file ed il gruppo di appartenenza Vedi la pagina del manuale di mount per i dettagli
Le opzioni di montaggio possono essere scritte nel file etcfstab
Si puograve montare anche una immagine di un filesystem presente in un file (loopback device)
Utile per accedere al contenuto di una immagine ISO di un cdrom senza doverlo masterizzare
Utile per creare una partizione Linux su un hard disk con sole partizioni Windows
cp devsda1 usbkeyimgmount shyo loop shyt vfat usbkeyimg mntusbdisk
148
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Elenco dei filesystem montati
Usa il comando mount senza alcun parametrodevhda6 on type ext3 (rwnoatime)none on proc type proc (rwnoatime)none on sys type sysfs (rw)none on devpts type devpts (rwgid=5mode=620)usbfs on procbususb type usbfs (rw)devhda4 on data type ext3 (rwnoatime)none on devshm type tmpfs (rw)devhda1 on win type vfat (rwuid=501gid=501)none on procsysfsbinfmt_misc type binfmt_misc (rw)
Oppure visualizza il file etcmtab(stesso risultato egrave aggiornato da mount e umount ogni volta che vengono eseguiti)
149
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Smontare i dispositiviumount mntusbdiskEsegue tutte le scritture in sospeso e smonta il dispositivo che puograve essere rimosso in maniera sicura
Per poter smontare un dispositivo bisogna chiudere tutti i file aperti su di esso
Chiudi una applicazione che accede a dati nella partizione
Verifica che nessuna shell abbia la sua directory di lavoro su questo dispositivo
Puoi eseguire il comando lsof (list open files) per vedere quali processi hanno file aperti nella partizione montata
150
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare
151
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Aiuto sui comandi
Alcuni comandi Unix e la gran parte dei comandi GNULinux offrono almeno un argomento per avere un aiutoshyh(shy egrave usato per passare argomenti da 1 carattere)shyshyhelp(shyshy egrave usato per passare i corrispondenti parametri con il nome lungo per rendere gli script piugrave leggibili)
Si ottiene un breve elenco di opzioni anche quando si inserisce unopzione invalida
152
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine del manualeman ltkeywordgt
Mostra una o piugrave pagine corrispondenti a ltkeywordgt
man man
Mostra le pagine di manuale disponibili su comandi Unix ma anche alcune relative a funzioni C header o strutture di dati o anche su file di configurazione di sistema
man stdioh
man fstab (for etcfstab)
Le pagine del manuale vengono cercate nelle directory specificate dalla variabile dambiente MANPATH
153
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Pagine info
In GNU le pagine del manuale si stanno sostituendo con le pagine info Alcune pagine di manuale rimandano alle relative pagine info
info ltcommandgt
caratteristiche di info
Documentazione strutturata in sezioni (ldquonodirdquo) e sottosezioni(ldquosottonodirdquo)
Possibilitagrave di navigare in questa struttura indice succ prec su
Le pagine info sono generate dagli stessi sorgenti texinfo delle pagine di documentazione HTML
154
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (1)
Come cercare
Molti gruppi di discussione e archivi di mailing list sono pubblici e sono indicizzati spesso da Google
Se cerchi un messaggio derrore copialo esattamente in un motore di ricerca con i doppi apici (ldquomessaggio derrorerdquo) Ci sono molte possibilitagrave che qualcun altro abbia giagrave trovato lo stesso problema
Non dimenticare i gruppi di Google httpgroupsgooglecomQuesto sito indicizza piugrave di 20 anni di messaggi
155
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Cercare risorse in internet (2)
Cercare documentazione
Cerca lttoolgt o lttoolgt page per trovare il programma o il sito del progetto e da qui la documentazione aggiornata
Cerca lttoolgt documentation o lttoolgt manual nel motore di ricerca preferito
Cercare informazioni tecniche generiche
WikiPedia httpwikipediaorgMolte utili definizioni di informatica Una vera enciclopedia Aperta al contributo di chiunque
156
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a Unix e GNULinux
Per continuare usando GNULinux a casa
157
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Panoramica di applicazioni desktop
Da mostrare a video con un proiettore
Mozilla navigatore internet cliente di posta editor HTML
Firefox versione leggera di Mozilla
OpenOffice completo compatibile con il pacchetto MS Office word processor spreadsheet presentazioni grafica
GIMP editor grafico molto potente
Gqview visualizza album fotografici
Evolution gestore della posta e agenda tipo Outlook
158
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Alternative GNULinux a WindowsInternet Explorer Mozilla
FirefoxIIS ApacheMoney GNU CashMS Office OpenOfficeMS Outlook EvolutionMS Project Mr Project
(Planner)Nero k3bPhotoshop The GIMPWinAmp xmmsW Media Player xine
mplayer
Non conosco abbastanza programmi
Windows
Mandaci altre segnalazioni
159
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (1)
Sicurezza
Nessun VirusLa maggior parte dei virus sono disegnati per sfruttare problemi di sicurezza di Windows e non intaccano GNULinux
A prova di VirusAnche se esegui un virus compatibile con Linux dovrebbe avere permessi di root per modificare il sistema
A prova di errore Altri membri della famiglia non possono modificare il sistema o i file di qualcunaltro Possono solo danneggiare i propri file
Respinge i CrackerAnche se sempre connesso in rete il vostro sistema attrae meno cracker
GNULinux egrave anche una ottima alternativa a Windows a casa
160
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (2)Riservatezza
Il tuo sistema non raccoglie dati di nascosto per trasmettere informazioni sui film che vedi o sui tuoi siti web preferiti
Facile da usare
I tuoi programmi sono fatti da utenti per altri utenti Sono piugrave facilmente adatti alle tue esigenze
Gli sviluppatori possono essere contattati per suggerire nuove caratteristiche
Libertagrave
I dati che produci sono tuoi per sempre Non sono legati a una applicazione proprietaria con un formato proprietario (a volte brevettato)
Sei libero di aiutare i tuoi amici condividendo i tuoi programmi con loro
Sei libero di usare a casa i programmi che hai in ufficio
161
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
GNULinux a casa (3)Puoi passare a GNULinux per
Lavoro con OpenOffice edito di testi foglio elettronico presentazioni database
Internet navigazione web e posta elettronica
Multimedia video suono e grafica (include fotocamere digitali)
Imparare a usare i computer e a programmare
Se hai ancora una copia di Windows puoi tenerla (assieme a Linux) per
Giocare Molti produttori supportano solo Windows o Mac
Usare particolari programmi proprietari o CD educazionali
Usare hardware non supportato da GNULinux
162
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Prova GNULinux senza rischiKnoppix egrave un cdrom live di GNULinuxhttpknoppixnet
Carica GNULinux in RAM niente egrave installato sullHD
Riconosce tantissimo hardware
Piugrave di 2 GB di applicazioni disponibili
Puoi accedere ai tuoi file di Windows aprirli e editarli con applicazioni GNULinux
Un modo fantastico di provare GNULinux
Offre la possibilitagrave di fare una installazione permanente su HD
163
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Usare distribuzioni GNULinux
Distribuzioni GNULinux
Consentono di installare GNULinux su spazio libero del tuo hard disk e tenere una copia di Windows (ldquodoppio bootrdquo)
Avere una interfaccia di installazione molto facile da usare che riconosce automaticamente gran parte dellhardware Non devi installare alcun driver
Ti lascia scegliere quali tipi di applicazioni installare
Fornisce interfacce di configurazione facili da usare
Distribuzioni raccomandate per principiantiFedora Core o Mandrake
164
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Introduzione a GNULinux
Conclusione
165
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Egrave ora di saltare sul treno
100
1980 1990 2000 2010 2020 2030 2040 2050 2060
Tu sei quiQuota di mercato
Anno0
Mappa dei Sistemi operativi
Windows GNULinux Cyborg OS Matrix OS
166
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Documenti collegati
Introduzione a Unix e GNULinuxhttpfreeshyelectronscomtrainingintro_unix_linux
Sviluppo kernel e driver per Linux EmbeddedhttpfreeshyelectronscomtrainingdriversStrumenti di sviluppo per sistemi Linux embeddedhttpfreeshyelectronscomtrainingdevtoolsAudio in sistemi Linux embeddedhttpfreeshyelectronscomtrainingaudioMultimedia in sistemi Linux embeddedhttpfreeshyelectronscomtrainingmultimedia
Java in sistemi Linux embeddedhttpfreeshyelectronscomarticlesjavaNovitagrave in Linux 26httpfreeshyelectronscomarticleslinux26Introduzione a uClinuxhttpfreeshyelectronscomarticlesuclinuxLinux estensioni in tempo realehttpfreeshyelectronscomarticlesrealtime
Questo documento egrave parte di piugrave di 900 pagine di materiale relativo a corsi su embedded GNULinux tenuti da Free Electrons disponibile con licenza libera
167
Introduzione a Unix e GNULinuxcopy Copyright 2004shy2005 Michael Opdenacker
Creative Commons AttributionshyShareAlike 20 licensehttpfreeshyelectronscom 14 set 2005
Servizi di consulenza e istruzione
Queste lezioni o presentazioni sono finanziate dai clienti di Free Electrons che inviano i loro dipendenti ai nostri corsi o sessioni di consulto
Se sei interessato a partecipare a corsi presentati dallautore di questi documenti sei invitato a chiedere alla tua organizzazione di ordinare corsi del genere
Vedi httpfreeshyelectronstraining per altri dettagli
Se vuoi aiutare in questo lavoro non esitare a parlarne ad amici e colleghi e a gruppi locali di Free Software