introduzione a unix/linux...bsd (berkeley software distribution) sun solaris sunos (stanford...

167
1 Introduzione a Unix e GNU/Linux © Copyright 2004-2005, Michael Opdenacker Creative Commons Attribution-ShareAlike 2.0 license http://free-electrons.com 14 set 2005 Introduzione a Unix e GNU/Linux Introduzione a Unix e GNU/Linux Autore: Michael Opdenacker Free Electrons http://free-electrons.com Traduzione: Gianluca Moro http://www.giammy.com/

Upload: others

Post on 24-Jan-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 2: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 3: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 4: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 5: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 6: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 7: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 8: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 9: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 10: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 11: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 12: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 13: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 14: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 15: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 16: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 17: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 18: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 19: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 20: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 21: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD

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

Page 22: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 23: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 24: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 25: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 26: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 27: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 28: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 29: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 30: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 31: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 32: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 33: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 34: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 35: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 36: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 37: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 38: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 39: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 40: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 41: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 42: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 43: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 44: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 45: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 46: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 47: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 48: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 49: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 50: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 51: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 52: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 53: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 54: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 55: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 56: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 57: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 58: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 59: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 60: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 61: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 62: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 63: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 64: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 65: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 66: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 67: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 68: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 69: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 70: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 71: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 72: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 73: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 74: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 75: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 76: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 77: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 78: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 79: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 80: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 81: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 82: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 83: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 84: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 85: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 86: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 87: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 88: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 89: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 90: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 91: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 92: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 93: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 94: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 95: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 96: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 97: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 98: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 99: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 100: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 101: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 102: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 103: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 104: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 105: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 106: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 107: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 108: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 109: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 110: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 111: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 112: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 113: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 114: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 115: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 116: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 117: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 118: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 119: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 120: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 121: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 122: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 123: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 124: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 125: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 126: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 127: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 128: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 129: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 130: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 131: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 132: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 133: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 134: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 135: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 136: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 137: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 138: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 139: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 140: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 141: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 142: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 143: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 144: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 145: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 146: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 147: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 148: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 149: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 150: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 151: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 152: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 153: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 154: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 155: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 156: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 157: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 158: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 159: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 160: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 161: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 162: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 163: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 164: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 165: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 166: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD
Page 167: Introduzione a Unix/Linux...BSD (Berkeley Software Distribution) Sun Solaris SunOS (Stanford University Network) NetBSD NextStep AIX (IBM) HP UX IRIX (SGI) SRV5 OpenBSD FreeBSD