Introduzione
Questo ˆ il primo articolo di una serie tesa a spiegare le funzioni
principali di alcune componenti software del progetto GNU in
riferimento agli ambienti software Linux e DOS (nota bene che non ho
detto MS-DOS ;). L'intento ˆ quello di dimostrare come in realt€
questi programmi che qualcuno scherzosamente potrebbe definire
"uGNUsable" (cioˆ inusabili) perchˆ con interfaccia spartana e
complessa siano in realt€ molto pratici e potenti, una volta acquisita
un po' di pratica. La documentazione in lingua inglese disponibile col
software ˆ a dir poco eccezionale, tuttavia a prima vista la mole di
informazioni disponibili potrebbe spaventare anche chi ha una certa
dimestichezza con l'inglese. Spero che questi brevi appunti vi siano
utili per iniziare a capire come usare questi tool ed essere poi in
grado di approfondirne da soli le funzionalit€. Anche giusto per
rendere la lettura meno noiosa, vi raccomando di leggere i testi
mentre sperimentate. Il modo migliore per imparare ad usare un
programma ˆ appunto usarlo.
Un altro consiglio: usare Linux e i tool GNU non ˆ una cosa che si
impara in un giorno, ma si impara in anni. Perciø prendetevi tempo e
abbiate molta pazienza. Anche io sono agli inizi.
Buona lettura e divertiti col free software.
Se trovate errori o imprecisioni di ogni tipo fatemelo sapere via
e-mail
Antonio Bonifati <abonifati@tiscalinet.it>
#### ###
## ## ##
## ##### ## ####
## ## ## #### ## ##
## ## ## ## ## ##
## ## ## ## ## ##
#### ## ## #### ####
|
Le basi di Info
Info ˆ un programma per leggere documentazione GNU in formato
ipertestuale. E' disponibile per Linux ed MS-DOS (come parte del
compilatore DJGPP). E' essenziale per un programmatore Linux/DJGPP
imparare ad usare questo tool.
Info visualizza una sezione o "node" (nodo) per volta. Ogni node
descrive un particolare argomento e di solito ha il titolo
dell'argomento in testa, evidenziato da una sottolineatura. Ad es. se
avviate info apparir€ il nodo directory, che contiene un indice
relativo a tutta la documentazione installata in formato info. In ogni
momento si puø ritornare al nodo directory premendo `d'. Preciso una
volta per tutte che quando dico premi `x' intendo che dovete premere
il carattere x e basta (senza gli apici e senza premere INVIO dopo).
Se premete `h' (iniziale di "help") apparir€ un tutorial (in formato
info, e in inglese naturalmente). La prima sezione ha questo titolo:
How to use Info
===============
Il titolo del nodo riassume brevemente quello di cui si parla. La
maggior parte dei nodi hanno un titolo.
Appena pi· in alto appare l'"header" o intestazione del nodo:
File: info.info, Node: Help, Next: Help-P, Prev: Help-Small-Screen,
Up: Getting Started
Questa dice il file a cui il nodo appartiene (info.info) e il nome del
nodo corrente (Help). Dice anche come si chiama il nodo seguente (Next
significa seguente), se c'ˆ. In tal caso si chiama Help-P e il nodo
precedente (ancora se c'ˆ, altrimenti non dice niente) si chiama
"Help-Small-Screen". Vedremo in seguito il significato di del campo
"Up:".
Per uscire in ogni momento basta digitare `q' (che sta naturalmente
per "quit").
I file .info (.inf in Dos) si trovano nella directory /usr/info sotto
Linux e DJGPP\info in Dos. Nel caso di Linux perø normalmente questi
file sono compressi con gzip per non occupare troppo spazio su disco e
quindi hanno estensione .gz anzichˆ .info Info li decomprime in
memoria al volo.
Esiste un comando di Info avanzato che ti permette di andare subito ad
ogni nodo di cui conosci il nome (vedi seguito).
Per andare al nodo successivo basta premere `n', mentre `p' ti fa
andare a quello precedente.
Se il testo di un nodo entra tutto in una schermata, nella riga di
stato in inverso in basso a destra vedrete scritto "--All----". Se
invece vedete scritto "--Top----" vuol dire che siete all'inizio di un
node pi· lungo di quello che una schermata puø contenere e quindi c'ˆ
altro testo "sotto" quello che state vedendo. Potete scorrere nel
testo con i tasti freccia su e gi·, ma ˆ molto pi· rapido scorrere le
pagine ad una ad una con i tasti:
Barra Spaziatrice o Pagina Gi· - va quasi una pagina avanti (quasi
perchˆ riporta le ultime due linee della pagina precedente)
Backspace o Pagina Su - va quasi una pagina indietro
Per comodit€ la Spacebar e il Backspace (ma non i tasti di pagina su e
gi·) lavorano in modo da portarvi anche al nodo precedente e seguente,
cioˆ premendo lo spazio alla fine di un node (quando appare --Bot---
sulla barra di stato), verrete portati alla prima schermata relativa
al node seguente. Se ora premete backspace ritornerete all'inizio del
nodo precedente, esattamente come se avesse premuto `p'. Premendo PgSu
e PgGi· invece rispettivamente all'inizio e alla fine del testo di un
node avrete un beep e non accadr€ nulla. Notare che quando siete in un
punto intermedio sulla barra di stato appare la percentuale del testo
a cui siete arrivati. Questo vi dar€ un'idea della lunghezza di un
nodo (e della fatica che vi aspetta ancora per finirlo) mentre
leggete.
Molti comandi possono essere digitati indifferentemente sia in
maiuscolo che in minuscolo (io vi indicherø sempre la versione
minuscola). Il comando `b' va all'inizio del testo di un node (b sta
per begin). E' molto spesso utile (invece di premere tante volte
BackSpace o PgUp basta premere un solo carattere, b).
Il tasto `?' oppure C-h (Control-H) richiama una breve lista di tutti
i comandi possibili. Premere `l' (elle) per ritornare dove eri prima.
`l' sta per last ed ˆ un comando che potete ripetere pi· volte per
fare dei percorsi all'indietro. Come i browser, Info memorizza i nodi
(un nodo ˆ l'analogo di una pagina web) in cui siete stati in una
history list. Mantiene anche l'informazione del punto esatto in cui si
trovava il cursore in ciascun nodo. `l' vi fa scorrere questa lista
all'indietro un passo (un nodo) alla volta. `l' ˆ diverso da `p',
perchˆ `l' ti fa andare al nodo dove eri prima, mentre `p' ti fa
andare al nodo che nella lista corrente precede quello corrente
(quello indicato dopo il Prev: nell'intestazione di ogni nodo). Ad
esempio se temporaneamente ritornate da un nodo qualsiasi al nodo
radice dell'albero di INFO (premendo `d'), premendo poi `l' ritornate
al nodo dove eravate prima, mentre `p' ˆ un errore, poichˆ il nodo
radice costituisce una lista di nodi formata da un solo elemento.
Navigando tra i menu
I comandi `n' e `p' permettono di muoversi tra nodi in sequenza tutti
allo stesso livello. Molti nodi hanno perø anche una struttura di men·
ipertestuale. Questo significa che ci sono dei collegamenti (un men·
di collegamenti) che permettono di saltare ad altri nodi anche non in
sequenza lineare (ˆ lo stesso meccanismo che si usa nelle pagine web,
quando si "naviga" in internet ed ˆ proprio questo il senso della
parola "navigare" - navigar in un mare di link). I nomi delle opzioni
dei men· sono parte del testo, ma sono formattati in modo speciale in
modo che Info possa interpretarli come link.
L'inizio di un men· in un nodo ˆ sempre identificato da una linea che
inizia con
* Menu:
Dopo l'inizio del men· ogni linea che inizia con `*' identifica una
opzione (o subtopic, sottoargomento); se ci sono altre linee in mezzo
alle opzioni che non iniziano con `*' sono semplicemente delle linee
di testo e non definiscono ulteriori opzioni. Di solito dopo il `*'
segue un nome breve per l'opzione, seguito da un `:' e poi dal nome
del nodo che si vedr€ attivando quell'opzione. Infine puø seguire una
breve descrizione pi· umana del contenuto del nodo
* Opzione: Nodo dell'opzione Breve ulteriore descrizione
Bene ecco un esempio di men· di natura culinaria, quindi piuttosto
appropriato (immaginate di scrivere un manuale di cucina in formato
info):
* Menu:
* Pasta: Pasta-Node le lasagne, i maccheroni, gli gnocchi, ecc.
* Carni: Carni-Node pollo, manzo, vitello, ecc.
* Dolci: Dolci-Node crostate, biscotti, torte, ecc.
uhm, che fame a nominare questa roba. Ammesso di avere in un nodo un
men· del genere (ossia cosŒ appetitoso :) come faccio a selezionare
una delle voci del men·? Prima devo andarci sopra. Per fare questo ci
sono diversi modi. Uno ˆ dare il comando `m'. Sotto la barra di stato
appare il famelico prompt
Menu item:
a questo punto dovete specificare il nome dell'opzione (ad es. Dolci)
e premere INVIO. Ora, voi direte: che palle scrivere i nomi. Non ˆ
necessario scrivere i nomi in modo completo. Bastano le prime lettere,
purchˆ non ci siano ambiguit€. Se ci sono ambiguit€ Info non accetta
quello che avete scritto, visualizza [Not complete] a destra della
vostra ambiguit€ e vi permette di aggiungere in coda altri caratteri
per disambiguare. Info non fa differenza tra maiuscole e minuscole in
quello che scrivete al prompt.
Se ci ripensate dopo aver premuto un comando che visualizza un prompt
per ricevere ulteriori argomenti, e decidete di non voler usare quel
comando, premete C-g (abbreviazione che sta per Control-g) per
ritornare al normale modo comandi e far scomparire il prompt (se avete
scritto qualcosa dopo il prompt, dovrete premere C-g due volte: una
volta per cancellare quello che avete scritto e un'altra volta per
annullare effettivamente la scelta del comando - in quest'ultimo caso
basta anche premere Invio).
Se vi sembra difficile, potete evitare di usare il comando `m'. Basta
infatti muovere il cursore su di una linea di opzione (in un punto
qualunque della linea) e premere INVIO, oppure usare questi due tasti
classici:
TAB salta al prossimo link ipertestuale del nodo corrente senza
selezionarlo
ALT-TAB salta al precedente link ipertestuale del nodo corrente senza
selezionarlo
(questi tasti ciclano)
Una volta presaci un po' la mano perø il comando `m' si dimostra un
pistolero molto veloce. Infatti potete usare anche la funzione di
"completamento" del nome dell'opzioni, che si attiva allo stesso modo
di quella della shell bash: cominciate a scrivere le prime lettere e
premete TAB. Se non ci sono ambiguit€ il nome viene completato
automaticamente. Se ci sono ambiguit€ premete di nuovo TAB ed eccovi
apparire una lista dei possibili completamenti. Che forza, no?
Quello che fa il comando `m' non ˆ altro che andare a cercare la linea
del men· che fa match con l'opzione che avete specificato, estrarre il
nome del nodo (es. Pasta-Node o si potrebbe chiamare anche "Pasta
Node"), e infine andare a quel nodo.
Nota: se il nodo non ha un men·, premendo `m' si ottiene un beep e un
messaggio nella linea del prompt che recita "No menu in this node.".
Non dite basta me ne torno a Windows! Date un po' di pace a quel
povero mouse che viene torturato da milioni di click ogni giorno. Che
ci sta a fare la tastiera? Sotto Linux si usa molto di pi· la
tastiera. Bill ha ridotto il numero di tasti dei mouse da 3 a 2,
perchˆ pensava fossimo cosŒ ottusi da non riuscire ad imparare la
funzione di soli 3 tasti! Dimostriamogli invece il contrario...
Se state ancora leggendo, osservate che nel men· gastronomico visto
prima vengono usati nomi diversi per il nome dell'opzione e il nodo (o
link relativo). Questo ricalca i link del web: c'ˆ un nome per il link
e c'ˆ una URL. Questo avviene perchˆ la URL (nel nostro caso il nome
del nodo) non ˆ certamente amichevole a vedersi, mentre il nome del
link puø essere scelto in modo amichevole (nel nostro caso il nome del
link ˆ quello che abbiamo chiamato il nome dell'opzione o "nome del
subtopic", "nome del sottoargomento").
* Menu:
* Pasta: Pasta-Node le lasagne, i maccheroni, gli gnocchi, ecc.
* Carni: Carni-Node pollo, manzo, vitello, ecc.
* Dolci: Dolci-Node crostate, biscotti, torte, ecc.
Non ci avete capito niente? Ripeto un po' il tutto: il comando m cerca
la linea del men· con il subtopic (la prima cosa che sta tra * e :)
specificato al prompt del comando, estrae il nome del nodo (es.
Pasta-Node) da questa linea e passa a quel nodo. Spesso i nomi dei
nodi sono scritti in computerese (nel senso che non sono molto
intelligibili), quindi il nome dell'opzione esiste poichˆ ˆ pi·
amichevole (immaginate se sul web i nomi dei link coincidessero tutti
con gli URL stessi...). In molti casi perø i nomi dei nodi possono
essere scelti esattamente uguali ai nomi delle opzioni, in modo da
renderli ugualmente convenienti per gli utenti. Il men· viene allora
mostrato (e anche specificato) in questa forma abbreviata, sicuramente
pi· pulita a vedersi:
* Menu:
* Pasta:: le lasagne, i maccheroni, gli gnocchi, ecc.
* Carni:: pollo, manzo, vitello, ecc.
* Dolci:: crostate, biscotti, torte, ecc.
Il :: significa che il nome dell'opzione (o subtopic) e il nome del
nodo sono gli stessi.
Una documentazione appesa agli alberi
A questo punto direte: perchˆ le sezioni si chiamano nodi? Che
centrano gli alberi con Info? Calma, calma, stiamo parlando di alberi
informatici. Questa immagine vi d€ una vista di un pezzetto di albero
di info, sufficiente a capire i termini di lista, nodo e livello.
Il comando `u' fa salire di un livello (per come ho contato i livelli
nella figura il livello diminuisce di 1). Notare che l'header indica,
se c'ˆ il nome del nodo a livello superiore (ˆ scritto dopo Up:).
Info dalla riga di comando
Vediamo le opzioni principali che si possono usare quando si invoca
info dalla riga di comando. Un riassunto di queste opzioni si ottiene
col comando:
bash$ info --help
Ne spiegherø qualcuna facendo uso di esempi. Se digito:
bash$ info info
chiedo ad info di avviarsi caricando il nodo radice del file
info.info. Questo perchˆ il nodo directory possiede una opzione
chiamata info nel suo grande men·:
* Info: (info). Documentation browsing system.
Se invece digito:
bash$ info info "Getting Started"
chiedo ad info di caricare il nodo radice (che ˆ sempre chiamato Top)
di info.info e di scegliere da questo nodo l'opzione "Getting Started"
del men·. Notare l'uso delle doppie virgolette per evitare che
"Started" sia considerato come un ulteriore argomento. Poichˆ c'ˆ una
sola opzione del men· che comincia con la G il comando puø essere
anche ridotto a:
bash$ info info g
Ovviamente per andare direttamente ad un nodo di un file occorre
ricordarne il nome o parte del nome. Se ci sono ambiguit€ (pi· opzioni
cominciano in quel modo) Info potrebbe non portarvi al nodo voluto.
Possono essere specificate anche pi· di 2 opzioni. Le opzioni dalla
seconda in poi (nell'esempio precedente da g in poi) individuano un
percorso tra i men· (una discesa anche molto profonda nell'albero che
di default parte dalla radice dell'albero di INFO, il nodo directory,
e segue una opzione del suo grande men· (la prima specificata sulla
riga di comando), poi, ammesso ci sia un ulteriore men· nel nodo in
cui ˆ arrivato, segue l'opzione del men· col nome specificato dalla
seconda opzione sulla riga di comando, ecc..).
Ad es. supponete di voler informazioni sul comando ls. Digitate:
info ls
Questo funziona perchˆ nel nodo chiamato Top del file dir c'ˆ
un'opzione del men· etichettata con ls. Sarete portati al nodo
(fileutils)ls invocation (questa notazione significa il nodo che si
chiama "ls invocation" del file info fileutils).
Se in particolare volete informazioni sugli switch che ls accetta per
ordinare l'output, allora basta un
info ls s
(ricordandosi che nel suddetto nodo esiste una opzione che comincia
per s - infatti c'ˆ * Sorting the output::). Puø sembrare complicato,
ma una volta memorizzato il percorso per giungere ai nodi che pi· vi
interessano ˆ un meccanismo comodo e veloce.
Per caricare il nodo radice (chiamato Top) di un file particolare,
occorre indicarne il nome dopo l'opzione f:
info -f fileutils
Ancora un'altra variante: ecco un esempio di come andare ad un nodo
particolare di un file (dovete ricordare il nome del file e del nodo
ovviamente).
info -f info -n Help
Attenzione che il nome del nodo ˆ case-sensitive. Quando siete gi€
dentro Info potete dare lo stesso comando premendo `g' (come goto) e
scrivendo poi "(info)Help".
info senza argomenti ˆ di fatto equivalente a
info -f dir -n Top
I Cross Reference
Un ultimo sforzo e saprete tutti i comandi essenziali per usare Info.
Dunque c'ˆ un altro tipo di link che non fanno parte di un men·.
Questi link ti possono portare da qualsiasi nodo dell'albero a
qualsiasi altro nodo. Si chiamano appunto "Cross Reference" o
"Riferimenti Incrociati". Appaiono in questa forma:
*Note NomeDelLink: Nome-del-Nodo
Questi differiscono dai link di un men· perchˆ non ti portano ad un
nodo figlio, cioˆ ti fanno scendere di un livello, ma possono portarti
a qualsiasi nodo (cioˆ a qualsiasi livello). Per ritornare al punto di
prima (al nodo che conteneva il cross-reference) dopo aver seguito uno
di questi cross-link premete `l'. Il comando `f' nel caso dei cross
reference ˆ l'analogo del comando `m'. Premendo `f' e poi `?' si
ottiene una lista di tutti i riferimenti incrociati presenti nel nodo
corrente.
Cercare negli indici
Ogni file .info ha di solito un nodo indice che riassume i contenuti
di ogni nodo come un indice analitico di un libro. Questo non ˆ altro
che un men· in cui le opzioni hanno nomi analitici.
Per cercare gli indici di un file .info in Info premere `i' (non
occorre andare prima al nodo indice). Poi digitare la stringa da
cercare e premere Invio. Se il primo luogo in cui Info trova
l'occorrenza non ˆ quello voluto, premere `,' (virgola) pi· volte, per
visualizzare il resto dei luoghi in cui appare la stringa.
Nel caso ad es. delle FAQ di DJGPP, l'indice ˆ questo:
c:\> info faq t
Con Info potete leggere il manuale delle funzioni della libreria
standard del C, come pure la documentazione di tutti gli applicativi
GNU.
Es.
info libc info gcc (informazioni sul compilatore C della GNU) info faq
(la FAQ di DJGPP)
info printf (per l'help sulla funzione printf del C)
info "GNU Make" (make ˆ l'utility per la ricompilazione efficiente dei
programmi)
TkInfo
TkInfo ˆ un browser Info grafico che funziona anche sotto MS-Windows,
usando una port dell'interprete Tcl/Tk. E' disponibile gratuitamente
qui:
http://math-www.uni-paderborn.de/~axel/tkinfo/
Proseguite da soli
Ok, questa era una introduzione ad Info. Ora proseguite lo studio da
soli. Basta fare:
info info
|