Nessun libro è completo e nessuno sa tutto. Sulla base di questo principio, occorre sapersi organizzare per cercare le informazioni che servono, quando se ne manifesta il bisogno. Sui sistemi Unix esistono diverse fonti di documentazione; la maggior parte di questa è normalmente disponibile all'interno delle distribuzioni, ma la consultazione può risultare un problema per chi non ha esperienza. Inoltre esiste Internet che può essere utilizzata come un'immensa biblioteca; ma per poterla sfruttare, bisogna conoscere l'uso dei servizi principali di ricerca che sono disponibili.
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 5.1 mostra l'elenco dei comandi comuni ed essenziali di questi due programmi.
|
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 5.2 mostra l'elenco di alcuni comandi aggiuntivi disponibili con less.
|
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.
$
ls -l | more
[Invio]
$
ls -l | less
[Invio]
Scorre sullo schermo l'elenco del contenuto della directory corrente che probabilmente è troppo lungo per essere visualizzato senza l'aiuto di uno tra questi due programmi.
$
more README
[Invio]
$
less README
[Invio]
Scorre sullo schermo il contenuto del file README
.
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.
|
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 5.4 riporta l'elenco di queste sezioni secondo la struttura usata comunemente nei sistemi Unix.
|
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 5.1 mostra l'elenco dei comandi comuni essenziali di questi due programmi.
Le pagine di manuale possono trovarsi in diverse posizioni all'interno del file system. Quelle elencate di seguito sono standard.
|
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] |
linguaggio è una sigla di due caratteri minuscoli definiti dallo standard ISO 639 (tabella 13.4);
territorio è una sigla facoltativa di due caratteri maiuscoli definiti dallo standard ISO 3166 (tabella 13.5);
insieme_di_caratteri è una sigla numerica che esprime l'insieme di caratteri utilizzato, secondo lo standard ISO (in pratica è il numero dello standard ISO).
versione è un'indicazione supplementare non ben definita, della quale si cerca di scoraggiare l'utilizzo.
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.
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.(2)
man [opzioni] nome... |
L'eseguibile man compone 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 5.1.
|
Segue la descrizione di alcuni esempi.
$
man ls
[Invio]
Visualizza la pagina di manuale del programma ls.
$
man 8 mkfs
[Invio]
Visualizza la pagina di manuale nell'ottava sezione, del programma mkfs.
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]
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:
previous -- precedente;
next -- successivo;
up -- superiore.
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.
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
.
|
Segue la descrizione di alcuni esempi.
$
info -f pippo.info
[Invio]
Inizia la visualizzazione del file pippo.info
a partire dal suo nodo principale.
$
info -f pippo.info pappa
[Invio]
Seleziona la voce di menù pappa che dovrebbe essere contenuta nel nodo principale del file pippo.info
.
$
info -f info
[Invio]
Inizia la visualizzazione del file info a partire dal suo nodo principale.
$
info info
[Invio]
Seleziona la voce di menù info dal nodo principale del file dir
(/usr/share/info/dir
) che è quello predefinito.
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 5.8.
|
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 5.9 mostra il nodo principale del file info
, cioè del documento che spiega il funzionamento di questo tipo di ipertesto.
|
La prima riga, quella che appare in alto, contiene in particolare il nome del file e del nodo.
|
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.
|
La parola All indica 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.
|
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.
|
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.
|
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.
|
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/
.
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/
.
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/
.(3)
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.
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:
Gary's Encyclopedia
Connected: An Internet Encyclopedia
Internet FAQ Archives
L'utilizzo comune dei servizi offerti da Google è costituito dalle ricerche di documenti pubblicati nella rete (di qualunque formato). La figura 5.16 mostra una parte della pagina introduttiva del servizio contenente il necessario per indicare un'espressione di ricerca.
Supponendo di voler cercare documenti che contengono simultaneamente riferimenti a GNU/Linux e GNU/Hurd, si potrebbe indicare l'espressione GNU/Linux GNU/HURD, senza bisogno di operatori (simboli) particolari. La figura 5.17 mostra il risultato della ricerca.
Per ridurre la ricerca all'ambito di un certo sito, si può usare un'espressione apposita. Per esempio, se si è interessati esclusivamente a quanto pubblicato a partire da linux.it, sottodomini inclusi, basta aggiungere site:linux.it; pertanto la stringa completa di ricerca diventa site:linux.it GNU/Linux GNU/HURD.
Naturalmente il vincolo del sito può essere più stretto, per esempio aggiungendo una parte del percorso in cui devono trovarsi i documenti cercati.
La tabella successiva mostra anche altre possibilità per la definizione di una ricerca efficace.
|
Per creare i propri indici, il sistema di Google deve prelevare una copia dei dati, che così viene archiviata. Se un documento sparisce improvvisamente, magari perché l'elaboratore che lo ospita è temporaneamente fuori servizio, o comunque irraggiungibile, è possibile recuperarlo dalla memoria di Google. Per esempio, per fare riferimento alla pagina indice di http://www.gnu.org, basta indicare la stringa di ricerca cache:www.gnu.org.
Le stringhe di ricerca che non sono troppo complesse, possono essere tradotte facilmente in un indirizzo URI, trasformando alcuni caratteri con la forma %hh (dove hh rappresenta un numero esadecimale corrispondente al carattere da indicare) e usando il segno + per concatenare le parole della ricerca:
http://www.google.com/search?q=espressione_di_ricerca |
Lo specchietto successivo mostra alcuni esempi:
|
Internet Archive è il più grande sistema di archiviazione di dati esistente, nato con l'intento di raccogliere tutto ciò che Internet offre.
Presso Internet Archive è possibile trovare una raccolta di ogni tipo di opera digitale, ma soprattutto è possibile accedere a un archivio storico di Internet, a partire dalla fondazione di tale archivio.
L'archivio storico gestito da Internet Archive è noto come Wayback Machine e vi si accede solo specificando l'indirizzo URI del sito o del documento originale, con l'aggiunta eventuale del periodo a cui si è interessati: http://wayback.archive.org.
Evidentemente è sufficiente indicare l'indirizzo URI per ottenere un elenco di copie in vari momenti nel tempo. Per esempio, si potrebbe cercare l'indirizzo http://www.gnu.org/philosopy
;(4) la figura successiva mostra cosa si potrebbe ottenere.
Eventualmente, è possibile limitare la ricerca usando un indirizzo URI specifico, come si descrive dagli esempi successivi.
http://wayback.archive.org/web/http://www.gnu.org/philosophy
Cerca la copia più recente di quanto archiviato da http://www.gnu.org/philosophy.
http://wayback.archive.org/web/20011231/http://www.gnu.org/philosophy
Cerca le copie di quanto archiviato da http://www.gnu.org/philosophy intorno al giorno 31 dicembre 2001.
http://wayback.archive.org/web/200112/http://www.gnu.org/philosophy
Cerca le copie di quanto archiviato da http://www.gnu.org/philosophy intorno alla metà di dicembre 2001.
http://wayback.archive.org/web/2001/http://www.gnu.org/philosophy
Cerca le copie di quanto archiviato da http://www.gnu.org/philosophy intorno alla metà del 2001.
http://wayback.archive.org/web/200112*/http://www.gnu.org/philosophy
Cerca tutte le copie di quanto archiviato da http://www.gnu.org/philosophy nel mese di dicembre 2001.
http://wayback.archive.org/web/2001*/http://www.gnu.org/philosophy
Cerca tutte le copie di quanto archiviato da http://www.gnu.org/philosophy nell'anno 2001.
http://wayback.archive.org/web/*/http://www.gnu.org/philosophy
Cerca tutte le copie di quanto archiviato da http://www.gnu.org/philosophy in qualunque momento.
http://wayback.archive.org/web/*/http://www.gnu.org/philo*
Cerca tutte le copie di quanto archiviato da http://www.gnu.org/philo...
in qualunque momento.
L'archivio storico di Internet Archive, ovvero Wayback Machine, non è completo. In particolare non può essere consultato ciò che risulta escluso espressamente, sulla base del contenuto di file robots.txt
, i quali, però, vengono intesi in senso retroattivo. Si vedano a questo proposito le vicende giudiziarie citate nella pagina dedicata a questo servizio, su Wikipedia: Internet Archive, http://en.wikipedia.org/wiki/Internet_Archive.
Google offre altri strumenti di ricerca, in particolare uno per le ricerche geografiche: http://maps.google.com. Fornendo un indirizzo, possibilmente completo di codice di avviamento postale e di nazione, si ottiene la mappa della zona.
Google, http://www.google.com
Internet Archive, http://archive.org
Wayback Machine, http://wayback.archive.org
Wikipedia, Google, http://en.wikipedia.org/wiki/Google
Wikipedia, Internet Archive, http://en.wikipedia.org/wiki/Internet_Archive
1) L'espressione regolare è un'espressione di ricerca con una sintassi particolare. Per conoscere cosa sono le espressioni regolari, si veda la sezione 23.1.
3) In italiano qualcuno usa la definizione «filza di assilli quotidiani».
4) La parola «philosopy» è errata di proposito e si scopre che l'indirizzo è stato usato effettivamente per un certo tempo.
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net