Il Manuale Standard

Locazione della struttura di manualistica: /usr/share/man

La directory intermedia ha il nome share per suggerire che, in una LAN con più computer della stessa distribuzione, può essere conveniente mantenere queste informazioni su un unico nodo di rete, in condivisione con gli altri.

Il manuale di Unix è composto da un certo numerodi sezioni standard numerate:

SezioneContenuto
1comandi utente
2system calls
3altre librerie
4files di configurazione
5altri files di configurazione
6giochi
7device drivers
8comandi di amministrazione e di rete

Possono esistere altre sezioni e sottosezioni.

Queste sezioni corrispondo alle sottodirectories man1, man2, ecc. della directory di manuale.

Originariamente, ai tempi dell'informatica americana, erano le uniche sottodirectories. Poi ne sono compare altr, il cui nome è la sigla ISO di una lingua, p.es. it, fr, ... Al di sotto di tali directories si ripete, forse parzialmente, la serie man1, man2, ecc.

Non è che basti che ci siano tali directories per avere la manualistica anche in tutte le lingue del mondo. Il supporto ad altre lingue è software che va installato separatamente.

Uso della manualistica

Esempi:

  • man passwd
    • Pagina del comando passwd (sezione 1)
  • man 5 passwd
    • Pagina del file /etc/passwd (sezione 5)
  • whatis passwd
    • In quali sezioni si trovano pagine col titolo passwd
  • apropos password
    • Quali pagine esistono che contengano la stringa password nel titolo o nella descrizione breve

Il database Whatis

Ogni pagina di manuale ha una sezione NAME, consistente in:

  • il nome della pagina
  • un trattino separatore
  • una breve descrizione su una riga sola

Il manuale è indicizzato in un database con due chiavi: il nome e l'intera riga della sezione NAME. Questo è il database whatis. L'indicizzazione avviene in automatico con frequenza giornaliera.

Il comando whatis compie una ricerca sul nome, il comando apropos sull'intera sezione NAME.

All'atto di installazione di nuovo software non di distribuzione può capitare che vengano inserite delle directories di manualistica in locazioni non standard. Occorre allora impostare la variabile d'ambiente MANPATH, che è una lista, separata da :, di tutte le directories di manualistica.

Il database si può reindicizzare manualmente, con permessi amministrativi, coi comandi:

  • makewhatis - in Red Hat
  • mandb - in Ubuntu

Sequenza di operazioni di man

Le pagine di manuale sono file compressi con gzip, scritte in linguaggio troff (in Linux: GNU groff). Questo è un linguaggio testuale di descrizione delle pagine (antenato di HTML).

Per vederne un esempio, provare:

gunzip -c /usr/share/man/man1/gzip.1.gz | less

man

Il comando man:

  • decomprime la pagina
  • compie la resa a video, interpretando il troff
  • compie la paginazione a video con less o col paginatore indicato dalla variabile d'ambiente PAGER