[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 43.   Documentazione

Esistono diverse fonti di documentazione sui sistemi Unix. La maggior parte di questa è normalmente disponibile all'interno delle distribuzioni, ma la consultazione può risultare un problema per chi non ha esperienza.

43.1   Testo puro

Il modo più semplice con cui può essere stato scritto qualcosa è quello del testo puro. Questo è il caso dei file «leggimi» (readme) e simili, oppure di tutta quella documentazione che, per semplicità, è stata convertita anche in tale formato.

La lettura di questi file può essere fatta attraverso due programmi ben conosciuti: more oppure less. Il programma more è quello tradizionalmente più diffuso negli ambienti Unix; less è il più pratico ed è decisamente più ricco di piccoli accorgimenti. Le funzionalità essenziali di questi due programmi sono simili, anche se il secondo offrirebbe un gran numero di funzioni aggiuntive che qui non vengono considerate.

La sintassi di questi due programmi è la seguente:

more [opzioni] [file]...
less [opzioni] [file]...

Nell'utilizzo normale non vengono fornite opzioni e se non si indicano file negli argomenti, si ottiene lo scorrimento di quanto proviene dallo standard input:

more [opzioni] < [file]
less [opzioni] < [file]

Una volta avviato uno di questi due programmi, lo scorrimento del testo dei file da visualizzare avviene per mezzo di comandi impartiti attraverso la pressione di tasti. Il meccanismo è simile a quello utilizzato da VI: alcuni comandi richiedono semplicemente la pressione di uno o più tasti in sequenza; altri richiedono un argomento e in questo caso, la digitazione appare nell'ultima riga dello schermo o della finestra a disposizione. La tabella 43.1 mostra l'elenco dei comandi comuni ed essenziali di questi due programmi.

Tabella 43.1. Elenco dei comandi comuni ed essenziali di more e less.

Comando Descrizione
[h] Richiama una breve guida dei comandi disponibili.
[H] Come h.
[barra spaziatrice] Scorre il testo in avanti di una schermata.
[Invio] Scorre il testo in avanti di una riga alla volta.
[b] Quando possibile, scorre il testo all'indietro di una schermata.
[/]modello[Invio] Esegue una ricerca in avanti, in base all'espressione regolare indicata.
[n] Ripete l'ultimo comando di ricerca.
[Ctrl l] Ripete la visualizzazione della schermata attuale.
[q] Termina l'esecuzione del programma.
[Q] Come [q].

La differenza fondamentale tra questi due programmi sta nella possibilità da parte di less di scorrere il testo all'indietro anche quando questo proviene dallo standard input, mentre per more non è possibile. Inoltre less permette di utilizzare i tasti freccia e i tasti pagina per lo scorrimento del testo, consentendo anche di effettuare ricerche all'indietro. La tabella 43.2 mostra l'elenco di alcuni comandi aggiuntivi disponibili con less.

Tabella 43.2. Elenco di alcuni comandi particolari di less.

Comando Descrizione
[y] Scorre il testo all'indietro di una riga alla volta.
[?]modello[Invio] Esegue una ricerca all'indietro, in base all'espressione regolare indicata.
[N] Ripete l'ultimo comando di ricerca nella direzione inversa.

Il programma less permette un utilizzo molto più complesso di quanto descritto qui, ma questo va oltre l'uso che se ne fa normalmente. Segue la descrizione di alcuni esempi.

43.1.1   Variabile di ambiente «LESSCHARSET»

Il programma less è sensibile al contenuto della variabile di ambiente LESSCHARSET, che serve a specificare quale insieme di caratteri si utilizza per la visualizzazione. Tuttavia, di solito non è necessario impostare questa variabile, perché le informazioni necessarie a determinare quale insieme di caratteri utilizzare provengono da altre variabili di ambiente di uso più generalizzato.

Tabella 43.3. Alcune voci per la selezione dell'insieme di caratteri visualizzabile con less, attraverso la variabile di ambiente LESSCHARSET.

Valore Descrizione
ascii Identifica alcuni codici come caratteri di controllo; visualizza normalmente i caratteri che appartengono alla codifica ASCII; tutto il resto viene considerato come codice binario.
iso8859, latin1, latin9 Una di queste tre voci, indifferentemente, identifica una codifica ISO 8859 qualsiasi (dipende dalla configurazione del terminale la visualizzazione dei caratteri e quindi la scelta di mostrare questo o quello in abbinamento a un certo codice), ovvero una codifica a 8 bit completa.
utf-8 Utilizza la codifica UTF-8.

43.2   Pagine di guida

Secondo la filosofia dei sistemi Unix, tutti i programmi dovrebbero essere accompagnati da una pagina di manuale, ovvero man page. Si tratta di un documento stringato sull'uso di quel programma particolare, scritto in uno stile abbastanza uniforme.

Si distinguono diverse sezioni di queste pagine di manuale, a seconda del genere di informazioni in esse contenute. Può infatti accadere che esistano più pagine con lo stesso nome, appartenenti però a sezioni diverse. La tabella 43.4 riporta l'elenco di queste sezioni secondo la struttura usata comunemente nei sistemi Unix.

Tabella 43.4. Sezioni delle pagine di manuale nei sistemi Unix.

Sezione Contenuto Descrizione
1 comandi utente Comandi (di uso comune) a disposizione dell'utente.
2 chiamate di sistema Funzioni messe a disposizione dal kernel ai programmi.
3 chiamate di libreria Funzioni messe a disposizione da librerie esterne ai programmi.
4 dispositivi File speciali che si trovano solitamente nella directory /dev/.
5 formati dei file Sintassi dei file di configurazione.
6 giochi
7 varie Convenzioni e altre informazioni.
8 amministrazione Comandi per l'amministrazione del sistema.
9 routine del kernel Non standard

Quando si vuole fare riferimento a una pagina di manuale, se ne indica il nome seguito da un numero tra parentesi, che ne esprime la sezione. Per cui, man(1) indica la pagina di manuale di nome man nella prima sezione. Spesso, nella documentazione, si fa riferimento ai programmi in questo modo, per dare istantaneamente l'informazione di dove raggiungere le notizie che riguardano quel programma particolare.

Questa documentazione viene consultata normalmente attraverso il programma man che a sua volta, solitamente, si avvale di less, oppure more, per scorrere il documento. La tabella 43.1 mostra l'elenco dei comandi comuni essenziali di questi due programmi.

43.2.1   Collocazione fisica e convenzioni nazionali

Le pagine di manuale possono trovarsi in diverse posizioni all'interno del file system. Quelle elencate di seguito sono standard.

Posizione Descrizione
/usr/share/man/ Questa è la collocazione principale delle pagine di manuale.
/usr/X11R6/man/ Raccoglie le pagine di manuale relative al sistema grafico X.
/usr/local/share/man/ È la posizione per le pagine di manuale dei programmi collocati dopo la directory /usr/local/;
/opt/applicativo/man/ È la posizione per le pagine di manuale dei programmi applicativi aggiuntivi (add-on).

Queste directory sono tutte suddivise o suddivisibili nello stesso modo. Si intende indicare una qualsiasi di queste directory di partenza come mandir.

La collocazione effettiva dei file che costituiscono le pagine di manuale è nelle directory esprimibili nella forma seguente:

mandir[/locale]/mansezione[/architettura]

Ciò significa che, oltre alle directory mandir/ già viste, esiste un'altra directory, locale/, eventuale, che poi si scompone in diverse sottodirectory in funzione delle sezioni delle pagine di manuale esistenti (di solito da man1/ a man9/), ognuna delle quali può articolarsi ulteriormente in funzione delle differenze tra un'architettura e l'altra.

La directory locale/ è facoltativa, nel senso che spesso manca. Può essere utilizzata per distinguere tra le pagine di manuale di lingue diverse o di formati diversi. Il nome di questa directory è stabilito dallo standard POSIX 1003.1 secondo la sintassi seguente:

linguaggio[_territorio][.insieme_di_caratteri][,versione]

Nel caso delle pagine di manuale in italiano, queste, ammesso che siano disponibili, dovrebbero trovarsi nelle directory mandir/it_IT/mansezione, oppure in mandir/it/mansezione (senza specificare il territorio). Di solito non si usa l'indicazione dell'insieme di caratteri perché si sottintende essere quello configurato in generale per l'uso del terminale (la variabile LANG e le variabili LC_*). Per fare in modo però che queste directory vengano utilizzate effettivamente, è necessario che la variabile di ambiente LANG contenga il valore it_IT.

Anche la directory che definisce l'architettura è facoltativa ed è necessaria solo quando in una sezione determinata esistono pagine di manuale riferite a programmi o altre informazioni dipendenti da particolari caratteristiche architetturali.

43.2.2   File di configurazione

Il comportamento di man può essere configurato attraverso un file di configurazione, che a seconda dei casi, nei sistemi GNU potrebbe essere il file /etc/man.config o /etc/manpath.config. Tra le tante cose, questo file contiene gli argomenti da fornire ai programmi utilizzati per la formattazione del testo da visualizzare o da stampare. Si osservino gli estratti seguenti, riferiti rispettivamente a /etc/man.config e a /etc/manpath.config:

TROFF           /usr/bin/groff -Tps -mandoc
NROFF           /usr/bin/groff -Tutf8 -mandoc
EQN             /usr/bin/geqn -Tps
NEQN            /usr/bin/geqn -Tutf8
TBL             /usr/bin/gtbl
# COL           /usr/bin/col
REFER           /usr/bin/grefer
PIC             /usr/bin/gpic
VGRIND          
GRAP            
PAGER           /usr/bin/less -is
CAT             /bin/cat
# Program definitions.  These are commented out by default as the value
# of the definition is already the default.  To change: uncomment a
# definition and modify it.
#
#DEFINE         pager   exec /usr/bin/pager -s
#DEFINE         cat     /bin/cat
#DEFINE         tr      /usr/bin/tr '\255\267\264\327' '\055\157\047\170'
#DEFINE         grep    /bin/grep
#DEFINE         troff   /usr/bin/groff -mandoc
#DEFINE         nroff   /usr/bin/nroff -mandoc
#DEFINE         eqn     /usr/bin/eqn
#DEFINE         neqn    /usr/bin/neqn
#DEFINE         tbl     /usr/bin/tbl
#DEFINE         col     /usr/bin/col
#DEFINE         vgrind  /usr/bin/vgrind
#DEFINE         refer   /usr/bin/refer
#DEFINE         grap    /usr/bin/grap
#DEFINE         pic     /usr/bin/pic -S
#
#DEFINE         decompressor    /bin/gzip -dc
#DEFINE         compressor      /bin/gzip -c7

Una cosa che potrebbe essere necessario modificare nel file /etc/man.config è l'opzione -T di groff e di geqn. Utilizzandola nel modo che si vede nell'esempio (-Tutf8), serve a consentire la visualizzazione dei caratteri accentati delle pagine di manuale tradotte in italiano, quando si dispone di una configurazione locale per l'insieme di caratteri ISO 10646, con una codifica UTF-8.

43.2.3   Utilizzo dei programmi per accedere alle pagine di manuale

Come già accennato, per visualizzare il contenuto di una pagina di manuale si utilizza il programma man, ma sono disponibili anche i comandi whatis e apropos per cercare informazioni al loro interno. (1)

man [opzioni] nome...

L'eseguibile man formatta ed emette attraverso lo standard output la pagina di manuale indicata dal nome. Lo scorrimento del testo che compone le pagine di manuale indicate negli argomenti viene fatto attraverso un programma esterno, richiamato automaticamente da man. Solitamente si tratta di more o di less. Di conseguenza, i comandi per lo scorrimento del testo dipendono dal tipo di programma utilizzato. Se si tratta di uno di questi due appena citati, sono sempre validi almeno quelli riportati nella tabella 43.1.

Tabella 43.8. Alcune opzioni.

Opzione Descrizione
numero_di_sezione
Se prima del nome del comando o dell'argomento appare un numero, si intende che si vuole ottenere la pagina di manuale da una sezione determinata, come riportato nella tabella 43.4.
-f
Si comporta come whatis.
-h
Visualizza una breve guida di se stesso.
-k
Equivalente a apropos.

Segue la descrizione di alcuni esempi.

whatis parola...

Il programma whatis cerca la descrizione di una o più pagine di manuale corrispondenti ai nomi indicati come argomento.

Originariamente, la ricerca relativa a whatis e apropos avveniva in elenchi costruiti appositamente per mezzo del comando makewhatis.

Il risultato della ricerca viene emesso attraverso lo standard output. Sono visualizzate solo le corrispondenze con parole intere.

L'esempio seguente visualizza le descrizioni aventi la parola ls nel nome della pagina:

whatis ls[Invio]

apropos stringa...

Il programma apropos cerca la descrizione di una o più pagine di manuale corrispondenti, che contengono al loro interno la stringa indicata (la ricerca viene fatta solo nella descrizione, nome compreso, e non nel corpo della pagina di manuale)

Il risultato della ricerca viene emesso attraverso lo standard output.

L'esempio seguente visualizza le descrizioni contenenti la stringa keyboard:

apropos keyboard[Invio]

43.3   Info

La documentazione Info è un ipertesto realizzato dai file Info e leggibile attraverso il programma info oppure all'interno di Emacs. I file di questo ipertesto si trovano normalmente nella directory /usr/share/info/.

La documentazione Info è organizzata in file contenenti dei nodi. Ogni nodo ha un nome e rappresenta un'unità di informazioni. Trattandosi di un sistema ipertestuale, ogni nodo può avere riferimenti ad altri nodi contenenti informazioni aggiuntive o collegate. Quasi tutti i nodi contengono almeno dei riferimenti standard definiti dalle voci seguenti:

Gli altri riferimenti possono essere organizzati in forma di menù o di riferimenti incrociati (cross-reference). Ogni file Info contiene almeno un nodo principale: Top. I nodi vengono identificati formalmente secondo la notazione seguente:

[(file_info)][nome_del_nodo]

Se si indica solo il nome del nodo, si fa implicitamente riferimento al file utilizzato in quel momento determinato; se si indica solo il nome del file, si fa implicitamente riferimento al nodo Top.

43.3.1   Utilizzo del sistema attraverso l'eseguibile info

L'eseguibile info consente di consultare i file Info senza l'ausilio di Emacs:

info [opzioni] [voce...]

Se non viene indicato alcun argomento, in particolare, se non viene indicato il file Info da consultare, viene aperto il file /usr/share/info/dir.

Tabella 43.9. Alcune opzioni.

Opzione Descrizione
-d percorso
--directory percorso
Specifica un percorso aggiuntivo all'interno del quale possono essere cercati i file Info.
-f file
--file=file
Specifica un file particolare da visitare.
-n nodo
--node=nodo
Specifica un nodo particolare da visitare.

Segue la descrizione di alcuni esempi.

Per poter leggere le informazioni contenute in questi file attraverso l'eseguibile info, occorre conoscere alcuni comandi che non sono necessariamente intuitivi. Questi comandi si impartiscono semplicemente premendo il tasto della lettera o del simbolo corrispondente. Alcuni di questi comandi richiedono degli argomenti, in tal caso si è costretti a inserirli e a farli seguire da [Invio]. I comandi più importanti sono riportati nella tabella 43.10.

Tabella 43.10. Elenco dei comandi principali di info.

Comando Descrizione
[h] Visualizza la guida del programma info (help).
[?] Visualizza l'elenco dei comandi disponibili.
[d] Visualizza il file dir.
[q] Termina l'esecuzione del programma (quit).
[Ctrl g] Interrompe il comando in corso di digitazione.
[Ctrl l] Ripristina l'immagine sullo schermo.
[l] Ritorna al nodo selezionato precedentemente (last).

Quando si usa un ipertesto è molto importante conoscere il modo con cui si può ritornare sui propri passi. In questo caso, il comando [l] permette di tornare indietro ed è particolarmente utile dopo la selezione di un comando di aiuto come [h] o [?].

La figura 43.11 mostra il nodo principale del file info, cioè del documento che spiega il funzionamento di questo tipo di ipertesto.

Figura 43.11. La guida all'uso della documentazione Info.

File: info.info,  Node: Top,  Next: Getting Started,  Prev: (dir),  Up: (dir)

Info: An Introduction
*********************

   Info is a program for reading documentation, which you are using now.

   To learn how to use Info, type the command `h'.  It brings you to a
programmed instruction sequence.  If at any time you are ready to stop
using Info, type `q'.

   To learn advanced Info commands, type `n' twice.  This brings you to
`Info for Experts', skipping over the `Getting Started' chapter.

* Menu:

* Getting Started::             Getting started using an Info reader.
* Advanced Info::               Advanced commands within Info.
* Create an Info File::         How to make your own Info file.

--zz-Info: (info.gz)Top, 20 lines --All----------------------------------------
Welcome to Info version 2.18. "C-h" for help, "m" for menu item.

La prima riga, quella che appare in alto, contiene in particolare il nome del file e del nodo.

File: info.info, Node: Top,  Next: Getting Started,  Prev: (dir), Up: (dir)

La penultima riga, la seconda dal basso, riporta ancora il nome del file e del nodo, oltre alla dimensione del nodo in righe e alla parola All. Si osservi che in questo caso il file è effettivamente info.info.gz, che presumibilmente è stato compresso con Gzip.

--zz-Info: (info.info.gz)Top, 20 lines --All-------------------------------

La parola All indica in questo caso che il nodo appare completamente nello spazio a disposizione sullo schermo o nella finestra. L'ultima riga dello schermo viene usata per dare informazioni all'utilizzatore e come spazio per l'inserimento di argomenti quando i comandi ne richiedono.

Sulla parte iniziale di ogni nodo, insieme al nome del file e del nodo stesso, sono riportati alcuni riferimenti standard (ad altri nodi). Sono rappresentati simbolicamente dai termini Next (successivo), Prev (precedente) e Up (superiore). Chi ha redatto il file Info ha definito quali devono essere effettivamente i nodi a cui queste voci si riferiscono e a tali nodi si accede utilizzando i comandi [n], [p] e [u], rispettivamente.

Tabella 43.14. Elenco dei comandi per la navigazione attraverso i riferimenti standard.

Comando Descrizione
[n] Visualizza il nodo successivo (next).
[p] Visualizza il nodo precedente (previous).
[u] Visualizza il nodo superiore (up).

Il riferimento Up non corrisponde necessariamente al nodo principale (Top) del file che si sta consultando, ma a quello che in quel momento, per qualche motivo, rappresenta un riferimento principale. Lo stesso tipo di ragionamento vale per i riferimenti Next e Prev che rispecchiano solo una sequenza di massima.

Il testo di un nodo può essere più lungo delle righe a disposizione sullo schermo o nella finestra. Per scorrere il testo si utilizza la barra spaziatrice per avanzare e il tasto [Canc] per indietreggiare. È però necessario fare attenzione: se si eccede si prosegue su altri nodi, attraverso un percorso predefinito che solitamente non coincide con i riferimenti Next e Prev già visti.

Tabella 43.15. Elenco dei comandi per lo scorrimento naturale del documento.

Comando Descrizione
[barra spaziatrice] Scorre in avanti.
[Canc] Scorre all'indietro.
[b] Visualizza l'inizio del nodo (back).

L'utilità di un ipertesto sta nella possibilità di raggiungere le informazioni desiderate seguendo un percorso non sequenziale. I documenti Info utilizzano due tipi di riferimenti (oltre a quelli standard): i menù e i riferimenti incrociati. I primi si distinguono perché sono evidenziati dalla sigla * Menu: seguita da un elenco di riferimenti; sono cioè staccati dal testo normale. I riferimenti incrociati appaiono invece all'interno del testo normale e sono evidenziati dalla sigla * Note Cross:.

Le voci di menù possono essere selezionate attraverso il comando [m] seguito dal nome del nodo; le voci dei riferimenti incrociati possono essere selezionate attraverso il comando [f] seguito dal nome del nodo.

L'utilità di avere due comandi diversi sta nel fatto che questi nomi possono essere indicati in forma abbreviata (per troncamento), indicando solo quello che serve per distinguerli dagli altri. Distinguendo i riferimenti raggruppati in menù, rispetto a quelli che appaiono nel testo, si riducono le possibilità di equivoci.

Tabella 43.16. Elenco dei comandi per la selezione dei riferimenti.

Comando Descrizione
[m]nodo[Invio] Richiama un nodo tra quelli indicati nel menù.
[f]nodo[Invio] Richiama un nodo tra quelli indicati nei riferimenti incrociati.
[g]nodo[Invio] Richiama un nodo qualunque (go).
[Tab] Sposta il cursore sul prossimo riferimento disponibile.
[Invio] Seleziona il nodo corrispondente al riferimento su cui si trova il cursore.

Per facilitare la selezione dei riferimenti che appaiono nel testo di un nodo (menù inclusi), si può utilizzare il tasto [Tab] per posizionare il cursore all'inizio della prossima voce e il tasto [Invio] per selezionare il nodo a cui fa riferimento la voce su cui si trova il cursore.

Se si conosce esattamente il nome di un nodo che si vuole raggiungere, si può utilizzare il comando [g] seguito dal nome del nodo stesso.

Quando si naviga all'interno della documentazione Info è sempre bene tenere a mente il comando [l] che permette di ritornare al nodo attraversato precedentemente.

Tabella 43.17. Altri comandi utili.

Comando Descrizione
[s]stringa[Invio] Cercare all'interno del file Info la stringa indicata (search).
[Alt x]print-node[Invio] Invia alla stampa il nodo visualizzato sullo schermo (la parola chiave print-node va scritta così come si vede).

43.4   Documentazione allegata ai pacchetti applicativi

I pacchetti di programmi più importanti sono accompagnati da documentazione disponibile in vari formati (testo, LaTeX, TeX, SGML, HTML, PostScript, PDF ecc.). Questa si trova collocata normalmente in sottodirectory discendenti da /usr/share/doc/.

43.5   HOWTO

I documenti HOWTO non accompagnano i pacchetti di programmi come loro parte integrante, essendo delle guide aggiuntive con scopi che vanno oltre la semplice documentazione del funzionamento di un solo pacchetto particolare. La maggior parte delle distribuzioni GNU include anche i file di documentazione HOWTO. Solitamente, questi vengono installati al di sotto della directory /usr/share/doc/HOWTO/.

43.6   FAQ

Un'altra fonte di documentazione sui sistemi GNU (e non solo) sono le cosiddette FAQ o Frequently asked questions. Si tratta di informazioni disordinate in forma di botta e risposta. Solitamente si trovano al di sotto della directory /usr/share/doc/FAQ/.(2)

43.7   LDP

A fianco della documentazione standard fornita più o meno con tutte le distribuzioni GNU/Linux, ci sono dei libri veri e propri disponibili liberamente. Questi sono raccolti all'interno del progetto LDP, o Linux documentation project.

Questi documenti, normalmente disponibili sia in PostScript/PDF, sia in HTML, sono raggiungibili a partire da <http://www.ibiblio.org/pub/Linux/docs/LDP/> e dai siti speculari relativi.

43.8   Altra documentazione

Oltre alla documentazione citata nelle sezioni precedenti, esistono altri documenti che possono essere ritrovati a partire da <http://www.ibiblio.org/pub/Linux/docs/> e dai siti speculari relativi.

Meritano particolare attenzione i riferimenti seguenti:

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) Man-db   GNU GPL

2) In italiano qualcuno usa la definizione «filza di assilli quotidiani».


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome documentazione.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!