Hands-on Guide to the Debian GNU Operating System



Documenti analoghi
IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Terza lezione: Directory e File system di Linux

Manuale di KSystemLog. Nicolas Ternisien

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Il web server Apache Lezione n. 3. Introduzione

Corso di Informatica

NOZIONI BASE PER ESERCITAZIONI

Il calendario di Windows Vista

Corso di Informatica

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

1.0 GUIDA PER L UTENTE

Risolvere i problemi di avvio di Windows XP

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Corso ForTIC C2 LEZIONE n. 3

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Il database management system Access

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

FAQ 07/01 - ACCORGIMENTI PER LA VISUALIZZAZIONE DEL NUOVO SITO ISS

Il sistema operativo: interazione con l utente

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Installazione LINUX 10.0

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

GENERALE. Cos è la rete IRC? Differenza tra Mirc e DeXdcc?

NOZIONI BASE SHELL E SCRIPT LINUX

Introduzione al sistema operativo Il file system: file, directory,...

Crotone, maggio Windows. Ing. Luigi Labonia

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Creare e ripristinare immagine di sistema con Windows 8

Breve guida a Linux Mint

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

1 -Introduzione MODULO L1

Il Sistema Operativo (1)

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Mac Application Manager 1.3 (SOLO PER TIGER)

MANUALE EDICOLA 04.05

USARE JOOMLA 1.7/2.5 per gestire il vostro sito.

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Procedure di ripristino del sistema.

File, Modifica, Visualizza, Strumenti, Messaggio

Corso basi di dati Installazione e gestione di PWS

Servizio on-line di Analisi e Refertazione Elettrocardiografica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Come modificare la propria Home Page e gli elementi correlati

Procedure di ripristino del sistema.

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

REVISIONI ottobre 2010 RTI Prima stesura

Sistema Operativo di un Router (IOS Software)

CTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.

FPf per Windows 3.1. Guida all uso

3. Installare Wamp Server

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

MODEM USB MDC525UP Guida Rapida LINUX

Il software del PC. Il BIOS

Manuale Servizio NEWSLETTER

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

Corso di Alfabetizzazione Informatica

CERTIFICATI DIGITALI. Manuale Utente

Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto

Modulo 2 Uso del computer e gestione dei file

STUDIUM.UniCT Tutorial per gli studenti

Procedure di ripristino del sistema.

Joomla: Come installarlo e come usarlo. A cura di

Formattare un PC con Windows 7. Guida Completa

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

Installazione di GFI WebMonitor

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Laboratorio di Programmazione

FtpZone Guida all uso Versione 2.1

L interfaccia utente di Office 2010

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Come masterizzare dischi con Nero 11

1. Avviare il computer

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Manuale per i redattori del sito web OttoInforma

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Come gestire le directory con R

Guida rapida all uso di Moodle per gli studenti

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Online Help StruxureWare Data Center Expert

Architetture Applicative

Avvio di Internet ed esplorazione di pagine Web.

GESGOLF SMS ONLINE. Manuale per l utente

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

FRANCESCO MARINO - TELECOMUNICAZIONI

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

Cosa è un foglio elettronico

Impostare il browser per navigare in sicurezza Opzioni di protezione

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

Manuale Utente Albo Pretorio GA

Transcript:

Hands-on Guide to the Debian GNU Operating System Davor Ocelic docelic@spinlocksolutions.com SPINLOCK - Advanced Unix-based networks for commercial and education sectors. Vieri Giugni v (dot) giugni (at) gmail (dot) com (Traduzione ed adattamenti in italiano) Beatrice Torracca beatricet (at) libero (dot) it (Revisione della traduzione in italiano)

Hands-on Guide to the Debian GNU Operating System Davor Ocelic Vieri Giugni v (dot) giugni (at) gmail (dot) com (Traduzione ed adattamenti in italiano) Beatrice Torracca beatricet (at) libero (dot) it (Revisione della traduzione in italiano) Copyright 2002-2008 Davor Ocelic This documentation is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You can find a copy of the GNU General Public License in the common-licenses (file:///usr/share/common-licenses/) directory on your system. If not, visit the GNU (http://www.gnu.org) website. La copia più recente di questa Guida può essere trovata su http://techpubs.spinlocksolutions.com/dklar/. La Guida, insieme con il repository Git, può anche essere trovata nella AFS di hcoop.net, in org/spinlock. Questo articolo è parte della serie introduttiva in 5 parti di Spinlock Solutions (http://www.spinlocksolutions.com/) contenente Debian GNU (debian.html), MIT Kerberos 5 (kerberos.html), OpenLDAP Guide (http://techpubs.spinlocksolutions.com/dklar/ldap.html), OpenAFS (kerberos.html) e FreeRADIUS Guide (http://techpubs.spinlocksolutions.com/dklar/radius.html).

Sommario Prefazione... vii 1. Convenzioni... viii 2. Prerequisiti...ix 1. Uno sguardo d insieme...1 1.1. La distribuzione software Debian GNU...1 1.2. Advanced Package Tool (APT) - Gestore avanzato dei pacchetti...1 1.2.1. Configurazione di APT...1 2. Primi passi in giro per il sistema...3 2.1. Installazione Debian GNU di base...3 2.2. Shell e filesystem...3 2.3. Gestione dei pacchetti software...5 2.4. Account di amministrazione...6 2.5. Editor di testo Unix...7 2.6. Comandi di sistema di base...7 2.7. Documentazione di sistema e di riferimento...10 3. Compiti di base per l amministrazione del sistema...13 3.1. Avvio della macchina, runlevel e servizi di sistema...13 3.2. Console virtuali...15 3.3. Messaggi di sistema e file di registro...18 3.4. Uno sguardo più approfondito agli strumenti per i pacchetti Debian...20 3.4.1. Formato dei file di pacchetto Debian...22 3.5. Pacchetti extra utili...23 3.6. Monitoraggio della correttezza dei file installati...23 3.7. Spegnere il sistema...24 4. Interazioni con l hardware di sistema...25 4.1. Introduzione...25 4.2. Kernel di sistema operativo...26 4.3. Driver del kernel...27 4.4. Tecniche di identificazione dell hardware...28 4.5. Tecniche di identificazione del nome del driver...29 4.6. Impostazioni comuni dell hardware e prestazioni; linee guida ed esempi pratici...30 4.6.1. Interfacce di rete (LAN)...30 4.6.2. Hard disk (dischi fissi)...32 4.6.3. Lettori CD-Rom...33 4.6.4. Schede video...34 4.6.5. I modem...35 4.6.6. I mouse (console)...39 4.6.7. Schede audio...40 4.6.8. Fotocamere digitali...40 4.6.9. Stampanti...41 iii

5. Tecnologie software di Unix: parti costitutive e concetti...43 5.1. Introduzione...43 5.2. Login sul sistema...43 5.2.1. Login in console...44 5.2.2. La shell di login...45 5.2.3. Impostazione del login all account...46 5.3. PAM - Pluggable Authentication Modules...46 5.4. Metodi di elaborazione programmata dei compiti di sistema...47 5.4.1. At...48 5.4.2. Cron...48 5.5. Meta-demone Inet...50 5.6. E-Mail...51 5.7. Contenitori Tcp (wrapper Tcp)...51 6. Contenitore temporaneo...53 6.1. Nota del traduttore e del revisore...53 6.2. Sessioni condivise...53 6.2.1. screen...53 6.2.2. ttysnoop...54 6.3. Il sistema Debian alternatives...56 6.4. Verifica periodica dello spazio disco disponibile...56 6.5. Creazione ed estrazione di archivi di file...57 6.6. Copiare, fare il mirror e riscaricare i pacchetti Debian...58 6.6.1. Riscaricare tutti i pacchetti.deb installati...58 6.6.2. Impostare un mirror Debian o una sorgente apt sul disco locale...58 6.6.3. Usare apt-move per spostare i pacchetti nel repository sull hard disk locale...59 6.7. Ricompilazione di pacchetti...61 6.7.1. Costruire i pacchetti.deb da sorgente...61 6.7.2. dpsyco - I pacchetti Debian di configurazioni di sistema...61 6.7.3. equivs - informa dpkg riguardo i pacchetti installati localmente...62 6.8. Collegamento al proprio fornitore di servizio internet locale...62 6.8.1. Dial-up...62 6.8.2. ADSL con pppoe...62 6.8.3. Si è connessi a Internet, e adesso?...63 6.9. Classifica di popolarità dei pacchetti...63 6.10. Accedere ai dati su partizioni MS Windows...64 6.11. Utilizzo di Debian GNU...65 6.11.1. Comuni scorciatoie da tastiera...66 6.11.2. Impostazioni del terminale...66 6.11.3. Collegamenti ai tasti e funzioni readline...66 6.11.4. File di configurazione dell utente...67 6.11.5. Alias per i comandi...67 6.11.6. Caratteristiche avanzate della riga di comando...68 6.11.7. Personalizzare la sessione X...69 6.11.8. Segnalare dei bug...70 6.12. Kernel Debian GNU...71 6.12.1. Informazioni di base sul kernel...71 6.12.2. Ricompilazione del kernel...71 iv

6.12.3. Installazione dell immagine del kernel...74 6.13. Software per l avvio del sistema operativo (bootloader)...76 6.14. Prima prova a fare da solo...76 6.14.1. Un elenco generico di compiti...76 6.15. Ottenere aiuto su IRC...77 6.15.1. Server e canali IRC...77 6.15.2. Come non fare domande su IRC...77 6.16. Termini utilizzati frequentemente...79 6.16.1. dpkg, apt, dselect, tasksel...79 6.16.2. Pagine di manuale e info...80 6.16.3. Amministratore di sistema, superutente, root...80 6.16.4. La directory home...80 6.16.5. Directory root...80 6.16.6. /etc...80 6.16.7. /proc...81 6.16.8. Binario...81 6.16.9. Immagine...81 6.16.10. Demone...81 6.16.11. X11R6, XFree86...82 6.16.12. RMS...82 6.16.13. curses...82 6.16.14. The Unix Epoch (l epoca Unix)...82 6.17. Collegamenti internet (non verificati, N.d.T)...83 6.18. Il sistema X Window, principi di base e impostazione Debian...84 6.18.1. Il Progetto XFree86, un implementazione a codice aperto del sistema X Window...85 6.18.2. X Strike Force: il supporto XFree86/X Window per Debian...85 6.18.3. Installazione di XFree86...85 6.18.4. Configurazione del server XFree86...86 6.18.5. Impostare la risoluzione in X...87 6.18.6. Autoriconoscimento dei dispositivi...87 6.18.7. Il modello client-server...88 6.18.8. La Direct Rendering Infrastructure (DRI)...89 6.18.9. Annotazioni su XFree86...89 6.18.10. Risoluzione dei problemi...89 6.18.11. Window manager...89 6.18.12. Font (tipi di carattere) per X...90 6.18.13. Gpm (il driver del mouse per console) e XFree86...91 6.19. I firewall...91 6.19.1. Cos è un firewall...91 6.19.2. Impostazione del firewall in Debian GNU/Linux...92 6.19.3. Maggiore protezione...94 6.20. Impostare l IP Masquerading/NAT...94 Glossario dei termini...96 v

Lista degli Esempi 1-1. /etc/apt/sources.list...2 4-1. /etc/network/interfaces...31 4-2. /etc/ppp/peers/provider...36 4-3. /etc/chatscripts/provider...36 4-4. /etc/ppp/pap-secrets...37 4-5. /etc/wvdial.conf...37 4-6. /etc/gpm.conf...39 vi

Prefazione Benvenuti. La seguente Guida dovrebbe aiutare a compiere i primi passi con Debian GNU (http://www.debian.org/), un sistema operativo in stile Unix. Questo articolo è una delle cinque parti della serie introduttiva alle reti Unix basate sull infrastruttura, costituita da Debian GNU (debian.html), MIT Kerberos 5 (kerberos.html), OpenLDAP (kerberos.html), OpenAFS (kerberos.html) e FreeRADIUS (kerberos.html). Se si incontrano problemi inaspettati durante il viaggio, non si perdano motivazione, calma e pazienza: Unix è una collezione molto colorita di più di 40 anni di ricerche e sviluppo professionali applicati all hardware e al software per computer; le soluzioni Unix sono una combinazione di intelletto, hardware e software di prima qualità; la loro superiorità tecnica è indiscutibile ma per varie ragioni, esse non sono sempre comprensibili o ovvie a chi possiede un personal computer in casa per hobby. È nostra intenzione colmare questo gap, per aiutarvi a imparare le basi delle architetture e dei sistemi operativi Unix in maniera corretta ed efficiente, così che si possa facilmente meditare su un ampio spettro di argomenti Unix ed espandere ulteriormente la propria conoscenza con una curva esponenziale. Di tutti gli Unix e Linux, perché esattamente Debian GNU? Bene, le soluzioni tecniche, l immediata disponibilità di capacità intellettiva e l organizzazione della comunità in Debian GNU (http://www.debian.org/), superano qualsiasi competizione con un largo margine. Ci sono alcuni sistemi operativi o kernel (tipo Solaris (http://www.sun.com/) e OpenSolaris (http://www.opensolaris.org/) di Sun, IRIX (http://www.sgi.com/) di SGI o QNX (http://www.qnx.com/)) che realizzano alcuni specifici compiti meglio, ma Debian GNU (http://www.debian.org/) è decisamente vincitore nell utilizzo generale con un potenziale di personalizzazione enorme. Si può leggere questa Guida dopo avere installato con successo qualche variante del sistema Debian GNU sul proprio computer (con o senza l aiuto del manuale di installazione di Debian (http://www.debian.org/releases/stable/installmanual)). La Guida è un mix bilanciato tra la guida dell amministratore e quella utente; probabilmente troppo vasta per coloro che appartengono ad una o all altra delle due categorie estreme. Il tipo di approccio utilizzato si presta meglio agli utenti casalinghi, persone che hanno a portata di mano una installazione Debian e vogliono imparare e sperimentare. Il nostro obbiettivo finale è quello che si sviluppi la mentalità di risolvere i problemi futuri per proprio conto; quello che conta è la comprensione di base e la logica generale, non l esatta implementazione o i dettagli di utilizzo. In termini molto generici, potremmo dire che proveremo a spiegare i principi del design dei sistemi Unix, e come questi funzionino nella pratica usando strumenti a riga di comando ed elaboratori di testo; non ci preoccuperemo di descrivere GUI e menu punta-e-clicca : tale vii

documentazione è disponibile altrove (come sui siti web di Gnome (http://www.gnome.org), XFCE (http://www.xfce.org), CDE (http://www.opengroup.org/cde/) o KDE (http://www.kde.org)). Prefazione In una guida Debian, non esiteremo ad utilizzare caratteristiche e comandi Debian-specifici, ma si noti che molte delle nostre discussioni saranno, almeno genericamente, applicabili anche ad altri sistemi Linux o Unix. In aggiunta, affermando che questa è una guida per novizi, non ci limiteremo affatto alle basi del sistema; questa Guida nasconde molti dettagli che anche utenti esperti potrebbero trovare utili o piacevoli. Per cortesia, si leggano le seguenti due sezioni accuratamente (la Sezione 1 e la Sezione 2) dato che spiegano alcune idee e presupposti di base seguiti in tutta la Guida. 1. Convenzioni I nomi di applicazioni sono specificati in stile applicazione, che appare come testo semplice senza formattazioni speciali. Gli eseguibili (comandi di sistema che si possono avviare) sono resi in modalità marcata comando (come in free, top o ps) e sono, nei punti dove ciò aiuta la leggibilità, racchiusi tra virgolette (come in rm ). Nei punti in cui faremo esplicito riferimento alle pagine di manuale (documentazione del programma), useremo lo stile nome(sezione), come in man(1). Tutti i nomi di file e directory vengono dati in stile nomefile e, quando il contesto richiede l esatta posizione sul sistema, iniziano con un carattere slash ( / ) o tilde ( ~ ), (/etc/syslog.conf, ~/.bash_profile o /etc/init.d/). Sebbene non sia obbligatorio per il funzionamento del sistema, noi includeremo sempre / alla fine di ogni nome di directory per rendere le directory immediatamente distinguibili dai file regolari. I simboli che necessitano di essere sostituiti con il proprio valore specifico utilizzano lo stile RIMPIAZZABILE, essi semplicemente vengono dati tutto in maiuscolo, e il loro aspetto finale dipende dall elemento contenitore del quale fanno parte. In aggiunta sono leggermente in corsivo. Per esempio in un comando di shell kill -9 PID, PID dovrebbe essere sostituito da un valore appropriato. Gli esempi di sessioni utente (consistenti in input dell utente e nel corrispondente output del sistema) utilizzano la modalità schermata. L input utente è visivamente preceduto da $ per l utente regolare, e da # per i comandi dell amministratore. L output del programma è modificato per brevità e non ha prefissi. Unix, GNU, Debian e Linux sono parole che possono qualche volta, in funzione del contesto, essere utilizzate in alternativa. Nella stesura della guida, siamo coerenti e, in ogni occasione, usiamo la parola con il significato più ampio. Per esempio potremmo parlare di riga di comando Unix, strumenti di sviluppo GNU, infrastruttura Debian e gestione dei processi di Linux. Quando sarà necessario un nome utente concreto per illustrare un esempio, mario interpreterà il ruolo di un utente innocente. In rari casi nei quali saranno necessari due nomi utente concreti, dante apparirà per aiutarci. Si scoprirà che la Guida contiene molti collegamenti a risorse esterne. Questo potrebbe rendere infelici se si trova che molte di esse sono interessanti e distraggono dall obbiettivo principale, vale a dire la Guida stessa. Quindi: viii

Prefazione Includeremo sempre il minimo del testo, la parte che è cruciale per comprendere l argomento, direttamente nella Guida. I collegamenti esterni forniranno solo informazioni maggiormente dettagliate. Come risultato, sarà possibile leggere la Guida senza seguire ogni collegamento esterno. Raggrupperemo tutti i collegamenti che compaiono nella Guida in una appendice separata, insieme a descrizioni appropriate. Come risultato renderemo possibile focalizzarsi esclusivamente sulla Guida e pensare a tutte le risorse aggiuntive più tardi. 2. Prerequisiti Per essere sicuri di poter seguire questa Guida con successo, ci sono alcuni punti sui quali è necessario mettersi d accordo. Presupponiamo che: si sia installata Debian da zero (zero = nuova installazione pulita). Altrimenti, se si sta leggendo questa Guida su un sistema Debian esistente ed utilizzabile, si tenga a mente che molti dei passi della configurazione di base qui descritti sono già stati effettuati sul proprio sistema; si abbia la rete correttamente configurata. Questo è importante se si possiede un collegamento internet decente (384 kbit/s o più) e si vuole installare software direttamente dai repository Debian su internet o sulla propria LAN locale. Si è fatta questa scelta nella fase di installazione; le istruzioni relative sono contenute nella manuale di installazione di Debian (http://www.debian.org/releases/stable/installmanual) (sezione Configurazione della rete (http://www.debian.org/releases/stable/i386/ch-install-system.en.html#s-configure-network) ) o qui sotto, ne la Sezione 4.6.1. Se si ha una installazione Debian su CD-ROM (un set di almeno tre CD), questo passo non è importante; si abbia installato solo il sistema base (circa 110 megabyte in totale). Per ottenere un sistema di questo tipo, non si avvii dselect o tasksel durante la installazione. Ma se lo si è fatto, e al termine ci si ritrova con un ampio insieme di pacchetti installati, si tenga a mente che molti dei pacchetti di base sono già installati sul proprio sistema; si inizi a lavorare con il sistema effettuando il login nell account del superutente (il proprio nome di login è root e la password è quella che si è definita durante l installazione). ix

Capitolo 1. Uno sguardo d insieme Nel nostro Campus il sistema Unix ha dato prova di essere non solo uno strumento software efficace, ma anche un agente di cambiamento tecnico e sociale all interno dell università. in memoriam, John Lions (University of New South Wales) 1.1. La distribuzione software Debian GNU Le distribuzioni Free Software (http://www.gnu.org/) come Debian GNU (http://www.debian.org/) comprendono, com è implicito nel nome, un grande numero di programmi Free Software (http://www.gnu.org/). Questo perché, quando si sceglie Debian GNU (http://www.debian.org/), non si ottiene solo un sistema operativo di base, bensì un ambiente completo con più (molti di più) di 15000 programmi software precompilati, preimpacchettati e pronti per l uso. Come esattamente sia fatto in pratica questo complesso lavoro è un argomento a parte, ma la cosa importante è che è possibile solo perché tutti i programmi inclusi sono rilasciati sotto una delle licenze libere compatibili con le DFSG (http://www.debian.org/social_contract#guidelines) (gli autori di software che utilizzano licenze per software libero meritano il più grande rispetto). Per l utente finale questo significa che non è necessario girare la città con un portafogli pieno in cerca di venditori di software proprietario e dei loro miseri prodotti, perché tutto il software di cui si possa avere bisogno è già pronto, testato e in attesa nei repository Debian. I repository Debian consistono di una gerarchia di directory standard, dei pacchetti software (file *.deb) e dei relativi meta dati che descrivono i contenuti del repository. I medesimi repository non sono legati ad un particolare metodo di accesso o dispositivo di memorizzazione, così si può accedervi da praticamente ovunque: internet, LAN, hard disk locali o CD-Rom. 1.2. Advanced Package Tool (APT) - Gestore avanzato dei pacchetti Molti ambienti per computer riconoscono il concetto di installazione software, e così fa Debian GNU (http://www.debian.org/). I programmi per computer che si possono installare sono, in forma impacchettata, archiviati nei repository Debian. Prima di utilizzarli, è necessario che siano recuperati dal repository, installati (spacchettati all interno del sistema e registrati tramite lo strumento di gestione del software) e configurati. Debian, nello specifico, ha sviluppato uno strumento molto sofisticato per questa gestione di alto livello dei pacchetti chiamato APT (l Advanced Package Tool) che vince con buona distanza qualsiasi competizione con altri sistemi. In combinazione con un facile e diretto processo di configurazione, apt è sicuramente una delle idee vincenti di Debian. 1

Capitolo 1. Uno sguardo d insieme 1.2.1. Configurazione di APT C è molto poco che è necessario fare per configurare il proprio sistema di gestione dei pacchetti, ma è un passaggio critico ed è necessario farlo bene. rimuovere il file /etc/apt/sources.list, se esiste (dare il comando rm /etc/apt/sources.list); se si possiede un collegamento internet funzionante, avviare apt-setup; i menu di apt-setup permetteranno di configurare i repository Debian senza bisogno di alcuna reale conoscenza (se si possiede un collegamento internet ma non ancora operativo, si veda il manuale di installazione Debian (http://www.debian.org/releases/stable/installmanual), sezione Configurazione della rete (http://www.debian.org/releases/stable/i386/ch-install-system.en.html#s-configure-network), o la Sezione 4.6.1 in questa Guida). Se la propria installazione Debian non ha apt-setup (che è stato rimosso dalle nuove release), si veda sotto per una configurazione utilizzabile; se si possiede qualche CD-Rom Debian GNU, si dia il comando apt-cdrom add per ciascuno dei CD posseduti; dare il comando apt-get update per fare sì che apt legga /etc/apt/sources.list, recuperi gli indici dei pacchetti e prepari la cache locale. Si faccia attenzione a qualsiasi errore in uscita; se viene richiesto di ripetere il comando, farlo; I comandi apt-setup e apt-cdrom add configureranno solo il proprio file /etc/apt/sources.list, che contiene tutto il necessario per apt. Qui c è un esempio di file /etc/apt/sources.list appropriato. Esempio 1-1. /etc/apt/sources.list deb http://ftp.cc.debian.org/debian stable main deb-src http://ftp.cc.debian.org/debian stable main deb http://security.debian.org/ stable/updates main deb http://ftp.cc.debian.org/debian testing main deb-src http://ftp.cc.debian.org/debian testing main deb http://security.debian.org/ testing/updates main deb http://ftp.cc.debian.org/debian unstable main deb-src http://ftp.cc.debian.org/debian unstable main Per sfruttare i siti mirror di Debian, ridurre il traffico internet ed ottenere la migliore velocità si rimpiazzi CC con il proprio codice nazionale, tipo it, ch o fr. Se non si è sicuri, la cosa migliore è mettere uno di quelli, o us. Avendo configurato apt, si potrà ora installare tutto il software addizionale necessario. Ci si accerti solamente di dare apt-get update per partire con le liste dei pacchetti aggiornate (darlo due volte non guasta). 2

Capitolo 2. Primi passi in giro per il sistema Ora so che qualcuno dichiarerà bene, allora Unix è intuitivo, perché è necessario solamente imparare 5000 comandi, e poi ogni cosa deriva da questo! Ha-ha.ha! Andy Bates in comp.os.linux.misc, on "intuitive interfaces", slightly defending Macs 2.1. Installazione Debian GNU di base Se si è mai provata qualcuna delle distribuzioni Linux commerciali (tipo Red Hat, Mandrake o Suse), allora la prima cosa che si noterà riguardo a Debian è che non si avrà il sistema X Window o un desktop attraente durante l installazione (tuttavia il nuovo installatore d-i effettuerà l autorilevamento hardware per voi). In sostanza, non si otterrà niente altro che un minimo di software di sistema installato. Le compagnie Linux commerciali hanno impostato, come si può immaginare, i propri interessi commerciali come priorità ed entrambe le idee dell autorilevamento e del pronto per l uso sono presenti solo per rendere i loro prodotti maggiormente appetibili sul mercato. Queste compagnie hanno giocato, giocano, e giocheranno un ruolo positivo sia nell accettazione che nello sviluppo del software libero (in modo particolare i recenti driver per hardware PC), ma i loro sistemi sono lontani dal meglio che si possa ottenere. I sistemi commerciali tendono a sacrificare la correttezza tecnica in favore di un lavoro finito in tempo (e ciò accade molte volte durante la vita dei loro prodotti), e forniscono piattaforme per insegnamento o professionali molto scadenti. Debian, d altra parte, è un organizzazione non-profit fedele al proprio manifesto originale e può facilmente concedersi il lusso di perseguire l eccellenza tecnica prima del tempo del mercato. Per quelle e per altre ragioni che verranno a galla durante il nostro viaggio, si vedrà che Debian fa le cose nel modo in cui devono essere fatte, anche se, mancando una approfondita conoscenza, non si vede subito il punto cruciale. Infine, quando si arriva a comprendere quanto vicino all hardware sia un utente Unix e come sia semplice (anche banale) realizzare la configurazione hardware in Debian, si sorriderà a chiunque giudica o sceglie le distribuzioni Linux da usare in base all ammontare di auto configurazione preconfezionata e alla grafica affascinante. Con Debian GNU (http://www.debian.org/) tutto quello che si ottiene automaticamente funzionante è una installazione minimale e un prompt di login: su una console nera. Ci muoveremo da lì in avanti. 2.2. Shell e filesystem Quando si effettua il login (solitamente ci si autentica con il proprio nome utente e password al prompt di Login:), ci si confronta con una riga di comando testuale, qualcosa che può ricordare il DOS, ma qui finisce la somiglianza (perciò non si cada in confronti inappropriati). Quello che si sta guardando di fatto 3

Capitolo 2. Primi passi in giro per il sistema è bash uno dei popolari programmi shell. In generale i programmi shell servono da agenti tra l utente e il sistema (accettano comandi, restituiscono output) e sono tutti, in realtà, linguaggi di programmazione più o meno sofisticati. Il software del computer è basato su file. I file abitano nelle directory (non cartelle), che sono collocate su partizioni di disco virtuali, fisiche, locali o in rete. In Unix, ogni sistema ha una partizione root che è montata (si pensi ad associata ) nella directory root (indicata da /) e funziona come punto di accesso al filesystem. Per esempio /home/mario/.profile (chiamato pathname o percorso, percorso assoluto o percorso completo) significa che esiste un file chiamato.profile che si trova nella directory /home/mario/. In questo esempio, mario/ è ovviamente una sottodirectory di home/ e home/ è una sottodirectory di /, la directory root. Nota: I file che iniziano con un punto (come.profile subito sopra), sono chiamati dotfile. Essi solitamente contengono impostazioni di configurazione per vari programmi e sono pertanto considerati di interesse secondario e abitualmente omessi durante la visualizzazione delle directory. È il magico punto (.) all inizio che li rende invisibili, ma solo allo scopo di non aggiungere rumore di fondo all output e decisamente non nella speranza di nascondere i file. Ciascun file in Unix appartiene ad un utente e ad un gruppo di utenti. In aggiunta ci sono modi file (http://qref.sourceforge.net/debian/reference/ch-tutorial.en.html#s-file-perm) (o permessi sui file) che controllano quali operazioni sono permesse al proprietario del file, al gruppo del file e a chiunque altro. Le uniche directory che gli utenti normali possono modificare sono le loro directory home (abitualmente /home/nomeutente) e le directory temporanee di sistema (/tmp e /var/tmp). Permessi Unix sul filesystem: Seppure, nel concetto tradizionale, un file o directory appartengono ad un utente e ad un gruppo, varie evoluzioni sono state rese disponibili nel tempo. Tra queste due importanti sono le soluzioni ACL (Lista di Controllo di Accesso) e RBAC (Controllo di Accesso Basato sul Ruolo). Le ACL permettono di avere file (e naturalmente directory) con permessi potenzialmente differenti per ogni utente o gruppo di sistema. I sistemi RBAC permettono di assegnare agli utenti dei ruoli e poi garantire loro accessi ai file correlati con il ruolo. È importante notare, tuttavia, che il tradizionale concetto, seppur banale in principio, offre una straordinaria flessibilità e soddisfa completamente tutte le necessità generali. Riguardo alla navigazione del filesystem, c è il concetto di directory corrente che fornisce la posizione attiva (di lavoro) nel filesystem. Si può scoprire la directory di lavoro in qualsiasi momento digitando pwd nella propria shell. Quando si effettua il login sul sistema e si avvia la shell, essa porta alla propria directory home, che è così il proprio punto di partenza. In aggiunta, con Unix, generalmente non si ha la necessità di inventare la posizione delle directory per il software di sistema che si vuole installare. Il software è installato in posizioni predeterminate, seguendo uno schema superiore. Alcune directory che è necessario conoscere sono: /home - directory home degli utenti; 4

Capitolo 2. Primi passi in giro per il sistema /etc - file di configurazione del sistema; /bin, /usr/bin, /usr/local/bin - directory con file eseguibili (cioè programmi che si possono avviare). bin deriva da binary, non da dust bin; /lib, /usr/lib, /usr/local/lib - librerie condivise necessarie per supportare le applicazioni; /sbin, /usr/sbin, /usr/local/sbin - directory con eseguibili che dovrebbero essere avviati dal Superutente; /tmp, /var/tmp - directory temporanee, si faccia attenzione perché /tmp è in maniera predefinita svuotata ad ogni riavvio; /usr/share/doc, /usr/share/man - documentazione completa di sistema; /dev - file di dispositivo del sistema. In Unix i dispositivi hardware sono rappresentati come file; /proc - directory virtuale (essa non esiste realmente sul disco) contenente file attraverso i quali si possono interrogare o calibrare le impostazioni del kernel Linux. Perché il software sia installato in posizioni predeterminate è facile da spiegare: Unix ed i filesystem Unix permettono a directory e subdirectory apparentemente standard di essere montate in posizioni completamente differenti: partizioni di dischi locali, partizioni di rete o dischi RAM per nominarne alcune. Quando si ha la necessità di gestire posizioni di file e directory con grande precisione, allora entrano in gioco i collegamenti simbolici e fisici, GNU Stow (ttp://www.gnu.org/software/stow/) o dpkg-divert (ma questi sono tutti concetti avanzati sui quali ritorneremo in seguito). Nota: Nel precedente elenco di directory, si può avere notato un modello. Per esempio c è la sotto-directory bin in tutte le directory /, /usr/ e /usr/local/. Directory e file che si trovano nella directory radice (/) sono tutti file ufficiali della distribuzione (quelli di Debian GNU (http://www.debian.org/) o di altri pacchetti a seconda di quale Unix stiamo parlando) e di fatto quelli che sono essenziali al sistema per avviarsi. Questa è una sorta di reminiscenza storica, dai tempi in cui i sistemi venivano avviati usando il nastro root e poi un altro nastro, user, montato in /usr/. Questa tecnica è per la sua facilità d uso ancora utilizzata oggi con tutti i sistemi Unix impostati correttamente (beh, eccetto forse the Hurd (http://www.gnu.org/software/hurd/), se lo si considera essere parte della medesima squadra). Anche le directory e i file in /usr/ sono file ufficiali della distribuzione, ma non essenziali per l avvio del sistema. Una larga maggioranza del software appartiene a questo gruppo. Infine, le directory in /usr/local/ contengono software installato localmente (che non proviene dalla distribuzione ufficiale del sistema operativo), da cui la posizione e il nome separato local. C è anche la directory share che si può incontrare in giro; contiene file che sono indipendenti dalla piattaforma hardware e sono i medesimi su tutte le architetture supportate. 5

2.3. Gestione dei pacchetti software Capitolo 2. Primi passi in giro per il sistema Ora, ritorniamo ad apt che abbiamo menzionato qualche paragrafo sopra. Siccome si è rimasti con un sistema minimale, si ha la necessità di installare alcuni pacchetti per render più facile la propria vita Unix. Iniziamo digitando ed eseguendo apt-get install less sudo man-db manpages nella propria shell. Per vedere a cosa esattamente serva ciascuno dei programmi, si può avviare apt-cache show NOME PACCHETTI. Se l output scorre fuori dal proprio schermo troppo velocemente, ci si aiuti con i tasti Shift+PGSU/PGGIÙ. Se l area recuperabile è ancora troppo piccola, avviare il comando con un buffer: apt-cache show NOMI DI PACCHETTO less (per uscire dal programma paginatore less, premere q). Ad ogni modo diventerà presto chiaro a che cosa servano i precedenti programmi, ma non lasciare che ciò impedisca di apprendere i suggerimenti presentati implicitamente (apt-cache, Shift+PGSU/PGGIÙ, less). Per un elenco di tutti i pacchetti installati, avviare dpkg -l. Per vedere l elenco dei file installati da pacchetti specifici, avviare dpkg -L NOMI PACCHETTO, tipo dpkg -L sysvinit. Per scoprire da quale pacchetto provenga un file, avviare dpkg -S PERCORSOCOMPLETO, tipo dpkg -S /bin/bash. Per rimuovere un pacchetto, avviare apt-get --purge remove NOME PACCHETTO. L interruttore --purge cancella gli eventuali file di configurazione (che normalmente vengono lasciati sul sistema) oltre al programma stesso. Alcune volte non è così facile recuperare i nomi di pacchetto, così si ha la necessità di ricercarli (basandosi su parole chiave). Per farlo, si usi apt-cache search PAROLE CHIAVE, come in apt-cache search console ogg player. Adesso andiamo ad utilizzare quei programmi che abbiamo installato poco fa. 2.4. Account di amministrazione Eseguire il comando id per determinare il proprio nome utente. Si dovrebbe vedere l UID 0 (Unique User ID zero) e il nome utente root. Gli Unix tradizionalmente mantengono il concetto di superutente o root, un account speciale con UID 0, che è libero di svolgere qualsiasi compito amministrativo. Ciò è appena un po diverso nella pratica con Linux perché esso utilizza un meccanismo di capacità molto più flessibile, ma il principio è il medesimo. Fare il login come root è fortemente sconsigliato, così vedremo adesso come aggirare il problema. Si dovrà sempre utilizzare un account di utente regolare ed eseguire solo specifici comandi privilegiati usando sudo, un programma che servirà come un contenitore (wrapper) per comandi amministrativi. Adesso si crei un account non privilegiato eseguendo il comando adduser mario. Una volta fatto questo, eseguire echo "mario ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers. Il metodo sudo è il 6

Capitolo 2. Primi passi in giro per il sistema contenitore amministrativo menzionato prima ed esso garantisce a mario i privilegi di avviare qualsiasi comando con i privilegi di root. Fatto questo, effettuare un logout completo (uscendo da tutte le shell, cioè digitando logout, exit o premendo Ctrl+d in tutti i terminali attivi). Poi si rieffettui il login con il nome utente non privilegiato appena creato. Per vedere il sistema sudo al lavoro, eseguire id; dovrebbe dire che mario è il proprio user ID attivo. Poi dare sudo id e si veda come il programma id sia eseguito con privilegi di root. Si può utilizzare sudo e non si dovrà mai fare il login come superutente. Useremo sudo estesamente; per modificare file di configurazione del sistema per esempio, si utilizzerà: sudo nano NOME FILE. 2.5. Editor di testo Unix Molta della configurazione di un sistema Unix è mantenuta in file di testo semplice, così si vorrà certamente scegliere un proprio editor di testo preferito (tra la piccola miriade di quelli disponibili). Si può iniziare con joe, nano o pico (nano è probabilmente il migliore perché è incluso nel sistema base Debian GNU (http://www.debian.org/)). Questi editor sono semplici e le loro scorciatoie da tastiera sono elencate alla base della schermata. Si provi adesso ad avviare nano per vedere da soli la sua semplicità. (Si tenga a mente che il carattere ^, necessario per accedere al menu di nano, rappresenta il tasto Control o Ctrl sulla propria tastiera.) La categoria degli editor di testo professionali, tuttavia, è riservata ai due vecchi rivali, GNU Emacs di Richard M. Stallman e Visual IMproved di Bram Moolenaar (o il vecchio tradizionale vi). Oltre ad avere velocissime scorciatoie da tastiera, macro, abbreviazioni, modalità di modifica, sintassi evidenziata e completamento automatico, Vim può letteralmente trovare da solo l uscita da un labirinto (si dia uno sguardo a /usr/share/doc/vim/macros/maze/). Un altro vantaggio di vi è che esso è installato su praticamente ogni sistema Unix che si può immaginare. Riferimenti alle rilevanti pagine di tutorial di Vim sono fornite alla fine della Guida. Se non si ha idea di che editor utilizzare, si provi ad usare nano. Poi, più tardi, si potrà installare Vim e avviare vimtutor per impararne le basi. Ma non si prenda questo aspetto sotto gamba; Unix si basa su testo (molto testo, anche se probabilmente si preferiscono inizialmente le interfacce grafiche) e imparare ad usare Vim o GNU Emacs è una necessità assoluta. Perciò si invochi adesso sudo update-alternatives --config editor e si selezioni il proprio editor di testo preferito del momento. (Una volta selezionato, questo editor sarà richiamato quando viene avviato il comando generico editor.) D ora in poi presumeremo che si sappia come aprire un file, modificarlo e salvare le modifiche su disco. 7

2.6. Comandi di sistema di base Capitolo 2. Primi passi in giro per il sistema Non si può iniziare ad addentrarsi all interno del sistema Unix senza aver fatto prima la conoscenza dei comandi di base disponibili. Ora che si sta utilizzando un account non privilegiato e che non si può danneggiare la propria installazione Debian GNU (http://www.debian.org/) in nessun modo, faremo un viaggio intorno ai comandi per la manipolazione dei file e delle directory del sistema. Per cambiare directory, usare il comando cd. Eseguire alcune varianti dello stesso e verificare la directory corrente con pwd o echo $PWD. Si provi a vedere dove porta ciascuno dei seguenti comandi: cd /etc, cd -, cd.., cd $OLDPWD, cd../.. e cd ~. Il carattere tilde (~) nei nomi di file viene espanso nella directory home dell utente che invoca il comando. Per l utente mario, cd ~ e cd /home/mario sarebbero equivalenti. In aggiunta, se mario volesse raggiungere la directory home di dante dovrebbe solo digitare cd ~dante. (Questa capacità di raggiungere la directory home di un utente utilizzando una sintassi indipendente dalle attuali impostazioni del sistema, è un altro dei concetti vincenti di Unix.) Il trattino (-) e la variabile d ambiente $OLDPWD fanno la stessa cosa: esse riposizionano alla directory di lavoro precedente. Eseguire il comando più volte fa andare avanti e indietro tra i due percorsi utilizzati più di recente. Si può controllare il contenuto di una directory con il comando ls (da list, elenca); si provino: ls, ls -al /etc o ls -al / (-a è necessario per permettere a ls di visualizzare i dotfiles, quelli che iniziano con un punto e sono considerati nascosti, vi ricordate? -l visualizza l output in formato elenco). Si creino nuovi file nella propria directory home utilizzando un editor di testo: usare il comando cd per riposizionarsi nella propria directory home e poi avviare, per esempio, nano test. In alternativa, si può usare una variante del comando che non dipende dalla directory di lavoro corrente, per esempio: nano ~/test. Si provi a rimuovere (cancellare) i file creati con rm. Creare directory con mkdir, cancellarle con rm -r o rmdir. In breve, si noti che gli esempi precedenti utilizzano la propria tastiera come dispositivo di input e il proprio monitor come dispositivo di output. È importante comprendere che Unix può redirigere ogni flusso di dati in posizioni arbitrarie (file, pipe, stampanti, socket di rete e altri). Per esempio, eseguire ls -al / grep bin. L output del comando ls -al / sarà inviato con una pipe o rediretto al comando successivo, grep, che filtrerà l input e mostrerà solo le righe che contengono la stringa bin. Questo uso di pipe (un caso speciale di redirezione, nel quale l output viene deviato ad un programma) è, come si sarà capito, indicato dal carattere pipe ( ). Se si vuole redirigere l output di un comando in un file (invece che al comando successivo, come fatto con la pipe precedente), si utilizzino i redirettori > o >>; la differenza è che la coppia >> aggiunge il contenuto in un file senza prima troncarlo (in poche parole cancellarlo). Si provi ls -al / > /tmp/dirlisting. 8

Capitolo 2. Primi passi in giro per il sistema Alcune volte si può desiderare che l output appaia sia sullo schermo, sia che venga salvato in un file. Questo è Unix e qui è facile a farsi: ps aux tee /tmp/ps-aux.listing. Possiamo citare il fatto che, in modo simile, l output può essere duplicato su un altra console (propria o, in base ai permessi di accesso, su una appartenente a un utente diverso). Per coloro che si domandano come inviare l output ad una stampante, basti dire che è sufficiente un ps aux lp una volta che la stampante è configurata. Alcune altre volte, si ha la necessità di creare un file vuoto. Per esempio, si provi touch test2, > test2 o >> test2. La differenza è che, se il file esiste già, touch ne aggiorna solo la data di modifica, mentre il simbolo di redirezione singolo lo troncherebbe. Alcune persone usano anche echo > test2 ma non si accorgono che il loro file non è esattamente vuoto, bensì che ha dimensione di 1 byte e contiene 1 carattere ASCII che rappresenta una newline (questo succede poiché echo aggiunge una newline (un carattere a capo) alla fine, a meno che non venga fornita l opzione -n). Adesso si conoscono quattro metodi a riga di comando per creare un file: si provi a testare la conoscenza dei propri amici. Per salvare una copia della propria sessione interattiva (input ed output utente) in un file chiamato typescript si avvii semplicemente script. Per terminare la trascrizione, si esca dalla shell (per esempio, digitando Ctrl+d su una riga vuota). Come abbiamo detto precedentemente, Ctrl+d è una combinazione standard per fine dell input. Quando si digita ad esempio ls, una istanza del programma /bin/ls diventa un processo (un programma in esecuzione). Ci occuperemo dei processi in maniera esauriente in un capitolo separato ma, per il momento, si sappia solo che il programma avviato ha un ID di processo unico (il PID) che gli viene assegnato, inizia a girare sul processore (la CPU) entra in competizione con gli altri programmi in esecuzione per il tempo processore. Per vedere i propri processi correnti, avviare ps. Per vedere un elenco completo dei processi sul sistema, avviare ps aux. Quando un compito è completo, il corrispondente processo termina, e il numero di PID viene reclamato dal pool (su Linux, la tabella dei processi contiene 32768 voci disponibili). Per una visualizzazione interattiva dei processi, si veda top. Si verifichino le informazioni sulla memoria di sistema con free. Se si entra nella matematica della memoria totale/libera, tenere però in mente che tanta memoria utilizzata non è una cosa cattiva e non significa che il proprio sistema la stia sprecando; discuteremo di questo più avanti nella Guida. Programmi aggiuntivi interessanti correlati con il sistema e lo stato della memoria che si possono installare sono sysstat, memstat e htop. Per vedere un elenco di filesystem montati, il loro punto di mount (montaggio) e le relative opzioni, si avvii mount. Per vedere le statistiche di utilizzo del disco, eseguire df. Nota: Si noti che mount legge solamente un file, /etc/mtab, e lo abbellisce un po prima di visualizzarlo. /etc/mtab, a sua volta, dovrebbe avere un contenuto che è essenzialmente lo stesso di /proc/mounts, ma ciò non è sempre vero (per esempio, se /etc/ era montata in sola lettura al momento in cui mount voleva aggiornare il file). 9

Capitolo 2. Primi passi in giro per il sistema A meno che non si sia molto coraggiosi, non capiterà di vedere l output del comando mount che non è corretto, ma si ricordi che solo /proc/mounts dice la verità definitiva. Ora, diciamo che si vogliano eseguire i comandi uptime, free e df contemporaneamente. Si potrebbe farlo avviando semplicemente uptime; echo; free; echo; df. (È qui importante il punto e virgola ;, echo senza argomenti serve solamente per produrre righe vuote tra un comando e l altro). Si usi w o who per vedere l elenco degli attuali utenti del sistema. Eseguire last -20 per vedere gli ultimi 20 accessi al sistema. Se si desidera una variante interattiva di w (in stile top), si usi il comando di utilizzo generale watch: watch -n 1 w (terminare premendo Ctrl+c, il generico segnale di arresto ). watch è piuttosto interessante, utilizzando le virgolette semplici, si può anche avviare watch -n 1 uptime; echo; free; echo; df. Eseguire uname -a per vedere le principali informazioni sul sistema: il tipo e le versioni di hardware e kernel. Per le statistiche attuali, avviare uptime; il programma riporta l ora attuale, il tempo trascorso dall avvio (l uptime della macchina), il numero di utenti che attualmente accedono al sistema e il carico medio (utilizzo del processore) per gli ultimi 1, 5 e 15 minuti. Per portare l idea ad un altro livello ancora, diciamo di avere una sequenza complessa di comandi salvati in un file e si voglia eseguire l intero file in una volta sola (in modalità batch, come spesso si dice). Questo, naturalmente, si può fare facilmente con il concetto di pipe ricordato sopra. Per prima cosa si esegua echo -e "uptime; echo\nfree; echo\ndf" > comandi per creare il proprio file batch. (In aggiunta, eseguire cat comandi per vedere quale sia l aspetto reale del file e per comprendere l effetto del carattere newline \n). Per eseguirlo in modalità batch, tutto quello che dovremmo fare è avviare cat comandi sh, o sh < comandi, o solo sh comandi. In più, se si imposta un bit eseguibile sul file batch (chmod +x comandi) e si aggiunge una appropriata riga di lancio (shebang) al file (aprendolo ed inserendovi in cima #!/bin/bash), lo si può avviare invocando./comandi o, più in generale, /percorso/verso/comandi. I programmi Unix sono forniti in molte varianti. Abitualmente comprendono un grande insieme di opzioni supportate e interagiscono fruttuosamente uno con l altro, moltiplicando di fatto l elenco delle loro funzionalità. Difatti, da qualche parte ho letto un pensiero interessante: che un programma Unix può essere considerato di successo se viene utilizzato in situazioni mai previste dal suo autore. Tutti i programmi che ho menzionato sopra sono cruciali per Unix e sono di successo. Le loro potenzialità complete superano di gran lunga gli esempi di utilizzo di base che abbiamo fornito. 2.7. Documentazione di sistema e di riferimento Debian GNU (http://www.debian.org/) è un sistema libero e aperto. Tutte le situazioni che possono essere un problema per l utente sono già documentate e spiegate da qualche parte. Sicuramente una pietra miliare nella propria esperienza Unix è imparare dove siano le sorgenti di quelle informazioni, 10

Capitolo 2. Primi passi in giro per il sistema come interpretare i loro contenuti e, generalmente, come aiutarsi da sé in situazioni prevedibili o meno senza aiuto di qualcun altro. La documentazione di Unix è esaustiva e facilmente disponibile. Molta di essa è scritta dagli stessi autori del software (e non dal vicino dipartimento commerciale) così si ha l attuale privilegio di comunicare con gli autori medesimi. L insieme di persone che scrive i programmi e la documentazione Free Software (http://www.gnu.org/) comprende una larga comunità di tecnici professionisti. Il processo inizia per conto proprio leggendo la documentazione fornita per vedere cosa hanno da dire gli autori del software e per comprendere un poco la loro mentalità. Debian ha uno speciale riguardo nei confronti della documentazione; se non è disponibile direttamente dall autore originale, allora gli sviluppatori Debian scrivono da sé i pezzi mancanti. In Debian, ciascun pacchetto che si installa crea una directory /usr/share/doc/pacchetto/ e ci posiziona almeno i file changelog. La directory in aggiunta spesso contiene i file INSTALL, README e altri file della fonte originale che sono alcune volte irrilevanti per i propri scopi, dato che i compiti ivi descritti sono già stati realizzati dagli sviluppatori Debian (ma il resto delle note, naturalmente, fornisce comunque buone informazioni riguardo il programma). In definitiva quello che si sta cercando sono annotazioni specifiche di Debian (nei file README.Debian). Questo è il primo posto che si visita per maggiori informazioni riguardo un pacchetto. Non è insolito che i pacchetti Debian contengano un enorme valore aggiunto grazie ai file README ed ai consigli pratici forniti dai manutentori. Alcune volte, se la documentazione è massiccia, viene seguita una nomenclatura convenzionale e la documentazione stessa viene distribuita in un paccketto PACCHETTO-doc separato. L altra parte, molto utilizzata, della documentazione sono le pagine di manuale del sistema, accessibili con i comandi man e info. man segue il tradizionale approccio alla pagina man di Unix mentre info è la raccolta in stile GNU texinfo. Le pagine man sono ordinate per volumi o sezioni che includono i comandi utente, chiamate di sistema, subroutine, dispositivi, formato dei file, giochi, varie e argomenti di amministrazione del sistema. I sistemi man e info non leggono le pagine di manuale dell altro, ma coesistono pacificamente sul proprio sistema, spesso in un modo in cui le pagine info sono ignorate dall utente. Una delle ragioni, secondo la mia opinione, è l interfaccia utente molto noiosa di info (a meno che non si sia abituati a GNU (http://www.gnu.org/) Emacs, nel qual caso si percepirebbe la visualizzazione come normale). Per rimediare in parte al problema, si provi ad installare il browser alternativo pinfo (sudo apt-get install pinfo). Per prendere confidenza con le pagine man si provi avviando man mkdir. Si noterà che tutte le pagine man seguono una struttura piuttosto standard; spesso includono le sezioni NOME, SINTASSI (di utilizzo), DESCRIZIONE, AUTORE, BUG, COPYRIGHT e VEDERE ANCHE. La pagina specifica che avete aperto (mkdir) dice che tutte le opzioni del programma (quelle che iniziano con - o -- ) sono facoltative (indicate da parentesi quadre, [], nella riga sintassi), ma è obbligatorio (richiesto) almeno un nome di directory da creare. In alcune pagine di manuale, le opzioni obbligatorie sono racchiuse tra i simboli <minor/maggiore di> (come in <-s dimensione>). Si vedano i comandi man ps o pinfo ls. È assolutamente necessario sviluppare l abitudine di leggere le pagine di manuale. Ogni qualvolta menzioniamo un comando di sistema o un file di 11