Comando info in Linux: navigare nei manuali GNU e cercare nei nodi

info legge nel terminale i manuali in formato Info, usati da molti programmi GNU. Il documento è suddiviso in nodi, collegati da menu e riferimenti incrociati: potete seguire un capitolo o cercare un argomento nell’indice. Rispetto a una pagina di man, questa struttura aiuta a esplorare spiegazioni lunghe e argomenti correlati.

Per i programmi con una documentazione estesa come GNU Coreutils, i documenti Info spesso forniscono spiegazioni più dettagliate dei concetti, delle interazioni tra le opzioni e degli esempi. Questo articolo spiega come aprire i documenti, muoversi tra nodi e menu, cercare nel testo e nell'indice, andare direttamente a una posizione specifica nel documento e cosa fare se il documento manca.

Che cos'è il comando info?

info è un visualizzatore di documenti basato su testo che legge file Info creati con il sistema di documentazione Texinfo. Tipicamente, i file Info sono installati in directory come /usr/share/info e un singolo manuale è suddiviso in più nodi che formano una struttura gerarchica.

I documenti Info possono includere menù per passare a sotto-argomenti, riferimenti incrociati che puntano ad altri nodi o manuali e indici specifici per argomento. Sono adatti non solo per leggere gli elementi richiesti in ordine, ma anche per seguire spiegazioni correlate o cercare termini nell'indice.

Sintassi di base e come iniziare

Lo schema seguente descrive la sintassi di GNU Info: sostituite i segnaposto con i nomi reali. Parentesi quadre e puntini indicano parti facoltative e ripetizioni; non sono un comando da incollare.

info [opzioni...] [manuale] [voce-di-menu-o-indice...]

Se viene eseguito senza argomenti, si aprirà il menù della directory principale che raccoglie i documenti Info registrati nel sistema.

info

Ogni comando interattivo apre il lettore: eseguitene uno alla volta e uscite con q prima di provare il successivo. Se i documenti sono installati, i due comandi seguenti aprono rispettivamente la guida introduttiva e il manuale di GNU Info autonomo:

info info
info info-stnd

Se indicate un nome di programma, Info cerca la voce corrispondente nel menu principale e apre il manuale o il nodo a cui rimanda.

info ls
info coreutils

info ls può collegarsi al nodo relativo a ls all'interno del manuale GNU Coreutils, piuttosto che a un file separato ls.info. Questo perché le voci della directory di livello superiore possono puntare direttamente a nodi specifici all'interno di un manuale.

Comprendere la struttura dei documenti Info

Per orientarvi nella schermata, distinguete questi quattro elementi della struttura:

Terminologia Significato
Nodo Unità del documento Info, spesso corrispondente a un capitolo o a una sezione.
Menu Un elenco che consente di spostarsi verso sottotemi o elementi correlati del nodo corrente.
Riferimento incrociato (Xref) Un collegamento a un altro nodo o a un altro manuale Info relativo alla descrizione corrente.
Nodo directory Il menu di livello superiore che classifica e visualizza più manuali Info registrati nel sistema.

Nella parte superiore dello schermo possono essere visualizzati i nomi del file e del nodo correnti, così come obiettivi di navigazione come Next, Prev e Up. Nella linea di stato inferiore viene mostrato lo stato, come il manuale attuale, il nodo e la posizione all'interno del documento.

Tasti per scorrere il testo e navigare nei documenti

La tabella segue i tasti predefiniti di GNU Info autonomo descritti nel manuale 7.3. Le impostazioni personali, --vi-keys, il terminale e le differenze tra versioni possono cambiare alcune associazioni.

Tasto Azione
Space Scorre in avanti. Alla fine del nodo può seguire la prima voce del menu, Next o il Next del nodo superiore, secondo la configurazione.
Backspace, Delete Torna alla schermata precedente. I tasti possono variare a seconda del terminale.
n Passa al nodo Next del nodo corrente.
p Passa al nodo Prev del nodo corrente.
u Passa al nodo superiore indicato da Up.
t Passa al nodo Top del file Info corrente.
d Passa al nodo della directory che raccoglie i manuali installati.
l Torna al nodo visualizzato precedentemente dalla cronologia delle visite.
m Permette di inserire il nome di una voce del menu corrente.
Tab, Shift+Tab Sposta il cursore all'elemento del menu o alla voce di riferimento incrociato successiva o precedente sullo schermo.
Enter Segue il menu o il riferimento su cui si trova il cursore.
H Apre una finestra con il riepilogo dei tasti.
h Apre il nodo di guida all’uso di Info.
q Chiude il lettore Info.

Quando lo si usa per la prima volta, si consiglia di aprire info info-stnd, premere H per controllare i tasti di base e leggere il documento usando Space e Backspace.

Come seguire i menu e i riferimenti incrociati

Selezionare elementi sullo schermo con Tab e Invio

Quando vedete un menu o un riferimento incrociato, usate Tab per selezionare il collegamento successivo e Enter per seguirlo. Shift+Tab seleziona quello precedente, se il terminale trasmette la relativa combinazione.

Inserire i nomi dei menu con m

Premete m e digitate il nome di una voce del menu nell’area di input in fondo alla schermata. Potete inserire un prefisso e usare Tab per completarlo o vedere le alternative.

Per tornare al nodo precedente nella cronologia usate l. Per risalire nella struttura usate invece u: cronologia e nodo superiore non sono la stessa cosa.

Come cercare il contenuto desiderato all'interno del documento

Ricerca del testo nel corpo principale

Premete s o /, inserite il testo e confermate con Invio. GNU Info cerca nel file corrente, anche oltre il nodo visibile. Normalmente usa espressioni regolari: con R potete passare alla ricerca letterale. Una ricerca senza maiuscole ignora normalmente la differenza tra maiuscole e minuscole; se ne contiene, le distingue.

? cerca nella direzione opposta (all'indietro). La ricerca incrementale, in cui i risultati vengono mostrati mentre si digita, utilizza Ctrl+s, e la ricerca incrementale inversa utilizza Ctrl+r.

Trovare argomenti nell'indice

i cerca il termine inserito nell'indice del manuale attuale e si sposta al nodo indicato dalla prima voce corrispondente. Questo può essere più veloce e preciso rispetto alla ricerca nell'intero testo quando si cercano nomi di opzioni o concetti in manuali lunghi.

I raccoglie le voci dell'indice corrispondenti in un nodo virtuale per la visualizzazione. Dopo una ricerca i, premendo il tasto virgola (,) ci si sposta alla voce dell'indice corrispondente successiva.

Cercare in tutti gli indici Info installati

Se non sapete quale manuale contiene la spiegazione, utilizzate l'opzione -k o --apropos nella shell. Questo cerca negli indici di tutti i file Info installati, quindi può richiedere tempo se ci sono molti documenti.

info -k permissions
info --apropos='regular expression'

Passare direttamente a un manuale e nodo specifici

Aprire per nome del manuale o del programma

Se conoscete il nome del manuale, potete specificarlo direttamente. L'intera documentazione di GNU Coreutils può essere aperta come segue.

info coreutils

Se le voci specifiche del programma sono registrate nella directory di livello superiore, potete andare direttamente al nodo rilevante all'interno del manuale usando solo il nome del programma.

info ls
info cp
info date

Servono il lettore Info, la documentazione di Coreutils e le relative voci nei file dir. Il solo eseguibile ls non garantisce che il manuale Info sia installato. Il nodo iniziale e il testo dipendono dalla versione del documento.

Specificare il nome di un nodo

Con -n o --node scegliete il nodo iniziale. Le virgolette fanno passare un nome con spazi come un unico argomento al programma, senza dividerlo nella shell:

info coreutils -n 'ls invocation'

È anche possibile specificare il formato di riferimento incrociato Info (manuale)nodo come un singolo argomento. Racchiudete l’intera stringa tra virgolette in modo che parentesi e spazi non vengano interpretati dalla shell.

info '(coreutils)ls invocation'

Il nome del nodo può variare a seconda della versione del documento installata. Se non si è sicuri del nome esatto, è più sicuro navigare prima utilizzando info ls o una ricerca nell'indice.

Trovare i nodi che spiegano come eseguire comandi

-O, --show-options o --usage trovano nodi Invocation che spiegano come eseguire il programma specificato dalla riga di comando.

info ls -O
info --show-options coreutils

Se non viene trovato un nodo adatto, aprite il manuale normalmente e cercate il programma o l’opzione nell’indice con i. Un manuale che documenta molti programmi, come Coreutils, non ha necessariamente un unico nodo di esecuzione valido per tutti.

Opzioni info usate frequentemente

Queste opzioni riguardano GNU Info autonomo. Controllate il supporto nella versione installata con info --help o nel manuale info info-stnd.

Opzione Descrizione
-k stringa, --apropos=stringa Cerca la stringa nell'indice di tutti i file Info installati.
-n nodo, --node=nodo Specifica il nodo da visitare per primo.
-f manuale, --file=manuale Apre il manuale specificato senza cercarne il nome nelle voci dei file dir.
-w, --where Stampa il percorso del file Info che verrebbe selezionato senza aprire il documento.
-d percorso, --directory=percorso Aggiunge un percorso di ricerca per i file Info. Può essere specificato più volte.
-o file, --output=file Invece di uno schermo interattivo, restituisce il contenuto del nodo da visitare come file.
--subnodes Usato con --output per restituire ricorsivamente i sottonodi del menu.
-O, --show-options Trova il nodo che copre l'uso della riga di comando del programma.
--vi-keys Riassegna alcuni tasti in un modo più vicino a vi e Less.
--version Mostra la versione del programma Info installato.

Trovare il file Info ed esportare il testo

Individuare il documento selezionato

-w visualizza la posizione del file selezionato da Info senza aprire il documento. Questo permette di controllare quale documento viene letto quando esistono più file con lo stesso nome nel percorso di ricerca.

info -w coreutils

Con GNU Info, --all --where elenca tutte le corrispondenze trovate. È utile se più directory contengono documenti con lo stesso nome; non abbinatelo a --node.

info --all --where coreutils

Esportare i documenti in un file di testo

-o scrive i nodi selezionati in un file; --subnodes include ricorsivamente i nodi collegati dai menu. Eseguite l’esempio in una directory in cui potete scrivere e scegliete un nome libero. Il controllo qui sotto evita di avviare l’esportazione se coreutils.txt esiste già, anche come collegamento simbolico; non è una protezione contro modifiche simultanee di altri processi.

test ! -e coreutils.txt && test ! -L coreutils.txt &&
info --subnodes -o coreutils.txt coreutils

Se il file non esiste e il manuale è disponibile, ottenete coreutils.txt: apritelo con un editor e controllate che contenga le sezioni richieste. Se il file esiste già, il controllo restituisce uno stato diverso da zero e non avvia Info; scegliete un altro nome. Con - come destinazione, il testo va invece allo standard output:

info -o - coreutils | less

Il manuale completo può essere grande. Per limitare il contenuto, selezionate un nodo con -n e valutate se servono i suoi sottonodi. Quando l’output di GNU Info non è un terminale, il comportamento predefinito può includere anche i sottonodi: controllate l’estensione del risultato prima di salvarlo o inviarlo ad altri comandi.

Specificare documenti utente e percorsi di ricerca

Aprire direttamente i file Info locali

Questi esempi richiedono un file Info valido chiamato project.info nella directory corrente. Il prefisso ./ indica di aprire quel file, anziché cercare una voce nei percorsi generali:

info ./project.info
info -f ./project.info

I file Info compressi possono anche essere letti direttamente se il formato è supportato dall'implementazione.

Specificare directory di ricerca aggiuntive

-d aggiunge una directory ai percorsi di ricerca. L’esempio presuppone che /opt/example/share/info esista e contenga il manuale example; sostituite percorso e nome con quelli della vostra installazione.

info -d /opt/example/share/info example

INFOPATH influenza i percorsi di ricerca. Su Linux le directory sono separate da :; una : finale richiede l’aggiunta del percorso predefinito definito durante la compilazione. GNU Info può inoltre aggiungere la propria directory di documentazione predefinita. Una variabile vuota non dimostra che manchino percorsi: controllate anche quale file sceglie info -w info-stnd, se disponibile, prima di modificare la configurazione.

printf '%s\n' "$INFOPATH"
info -w info-stnd

Differenze tra info e man

Categoria info man
Struttura del documento Documenti gerarchici collegati tramite nodi, menu, riferimenti incrociati e indici Tipicamente documenti lineari letti dall'alto verso il basso su una singola pagina
Usi adatti Quando si leggono concetti, spiegazioni di capitoli, esempi lunghi e argomenti correlati in profondità Per controllare rapidamente sintassi, opzioni, file e stati di uscita
Obiettivi principali Programmi GNU e altro software che fornisce documenti Texinfo Comandi, file di configurazione, chiamate di sistema, funzioni di libreria, ecc.
Metodi di navigazione Menu, collegamenti tra nodi, ricerca nel testo e negli indici Navigazione sullo schermo e ricerca di stringhe nel pager
Stato dell'installazione Alcuni programmi potrebbero non avere documenti Info Alcuni pacchetti potrebbero non avere pagine man

Usate man o --help, se supportato, per una sintassi o un’opzione da controllare rapidamente; scegliete info per esplorare capitoli, esempi e relazioni tra argomenti. La scelta dipende dai documenti forniti dal progetto e da quelli effettivamente installati.

Se info manca o non trova il documento

Installazione del programma info

In un’installazione minima il lettore info può mancare. Il pacchetto è disponibile come info in Debian/Ubuntu e Fedora/Rocky Linux, ma repository e versione della distribuzione restano determinanti. Scegliete una sola delle alternative seguenti; richiedono privilegi amministrativi e installano software.

Su Debian/Ubuntu, la seconda riga parte solo se l’aggiornamento degli indici termina con successo:

sudo apt update &&
sudo apt install info

Su Fedora/Rocky Linux, usate invece DNF:

sudo dnf install info

Se il pacchetto non è disponibile, consultate la ricerca pacchetti e i repository della distribuzione. Installare il lettore non installa automaticamente tutti i manuali: la documentazione completa di Texinfo può richiedere un pacchetto separato.

Verificare la presenza dei manuali

Controllate separatamente lettore e documenti. Con Coreutils come esempio, il primo comando apre la directory dei manuali: uscite con q prima di eseguire gli altri due. La ricerca mostra solo le voci dei documenti disponibili; -w deve restituire il percorso del manuale trovato.

info
info -k permissions
info -w coreutils

Se programma e documentazione sono divisi in pacchetti separati, cercate il pacchetto di documentazione appropriato. Controllate anche se l’immagine minima esclude i file Info durante l’installazione.

Quando il documento non appare nel menu della directory

Se un file valido esiste ma non compare nel menu principale, provate a indicare la directory o il file direttamente. Lo schema seguente usa segnaposto: sostituite entrambi i percorsi e MANUALE con valori esistenti prima di eseguirlo.

info -d /percorso/documenti MANUALE
info -f /percorso/completo/manuale.info

Se avete compilato il programma dai sorgenti, verificate nelle istruzioni di installazione come viene aggiornata la registrazione nei file dir. Prima di modificarli a mano, controllate i pacchetti installati e la procedura prevista dal progetto.

Un percorso pratico di lettura

  1. Aprite il manuale con info NOME, sostituendo NOME con il programma o il manuale cercato.
  2. Consultate l’aiuto rapido corrente con H e navigate nella struttura con Space, n, p, u.
  3. Selezionate i menu mostrati sullo schermo usando Tab e Enter o m.
  4. Se conoscete il termine esatto, cercate nell'indice con i, e per frasi generiche, cercate nel testo con s o /.
  5. Se non sapete quale manuale usare, cercate l'intero indice installato dalla shell con info -k PAROLA.
  6. Per tornare spesso a una posizione, specificate direttamente il nodo con -n oppure esportate il contenuto necessario con -o.

Domande frequenti

Come si esce da info?

Premete q per uscire dalla lettura. H maiuscolo mostra il riepilogo dei tasti; le impostazioni personali possono cambiare le associazioni.

Premendo n, si passa a un altro documento invece che ai risultati della ricerca.

Con i tasti predefiniti, n segue il collegamento Next. Per cercare usate s o /; per ripetere la ricerca in avanti potete usare }, e per quella all’indietro {. L’indice si cerca con i. Con --vi-keys le associazioni cambiano.

Qual è la differenza tra info ls e info coreutils?

info ls trova la voce ls nella directory di livello superiore e va direttamente al nodo correlato, mentre info coreutils apre la posizione iniziale del manuale di Coreutils. In base alle voci di directory installate e alla versione del documento, il nodo iniziale effettivo può variare.

Tutti i comandi hanno documenti Info?

No. Molti progetti GNU offrono manuali Info, ma non tutti i programmi Linux li forniscono. In assenza del documento, cercate la pagina man NOME, l’opzione NOME --help se supportata o la documentazione ufficiale; sostituite NOME con il comando.

I documenti Info sono sempre più accurati dei manuali man?

Non è sempre così. Ogni progetto ha documenti di riferimento e metodi di aggiornamento differenti. Alcuni progetti, come GNU Coreutils, forniscono il manuale Info come documento di riferimento dettagliato, mentre altri programmi possono dare priorità alle pagine man o ai documenti web. Si raccomanda di controllare sia la versione del programma attualmente installata sia la documentazione ufficiale del progetto.

Scegliere come cercare

Per iniziare, aprite il manuale con info NOME, consultate H e provate i collegamenti n, p, u. Menu, indice e ricerca nel testo rispondono a esigenze diverse: scegliere lo strumento adatto evita di sfogliare l’intero documento.

Confrontate sempre il manuale con la versione del programma installato. Un documento Info può spiegare meglio un argomento senza essere automaticamente più aggiornato di una pagina man o della documentazione web del progetto.

Documentazione di riferimento