Home

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