Che cos'è il formato di file MAN?
I file con estensione .man contengono manuali utente Unix scritti in markup sorgente roff. È possibile accedere alle pagine man impartendo il comando man seguito dal nome di un programma, di una funzione o di un argomento. Il sorgente utilizza il pacchetto macro *man* - un insieme di direttive prefissate da un punto (.TH, .SH, .B, .TP) che man renderizza su richiesta tramite groff o mandoc. L'apertura di un file .man in un editor di testo mostra questo markup grezzo piuttosto che una pagina formattata; i file .man supportano macro di formattazione del display per controllare grassetto, corsivo, rientri e layout delle tabelle.
.man è un file di testo semplice e può essere aperto utilizzando qualsiasi editor di testo, ma i manuali utente sono più comunemente consultati utilizzando lo strumento di sistema man invocato dalla riga di comando. Molti ambienti di sistema grafici offrono vari strumenti per la visualizzazione dei documenti man. Le pagine man possono essere suddivise nelle seguenti sezioni:
- NAME - nome del programma, strumento, libreria o funzione, seguito da una breve descrizione
- SYNOPSIS - parametri e opzioni per il comando e, facoltativamente, una firma di funzione C
- DESCRIPTION - descrizione dettagliata del comando e delle sue funzioni
- EXAMPLES - esempi di come il comando può essere utilizzato
- SEE ALSO - un elenco di funzioni o comandi correlati
I manuali utente Unix/Linux non vengono comunemente salvati come file .man su disco. Di solito i manuali sono memorizzati con un suffisso che indica a quale sezione del manuale appartiene il file - ad esempio ls.1 o printf.3 - e le pagine installate sono tipicamente compresse con gzip come nome.sezione.gz, decompresse in modo trasparente da man. Le pagine man sono in genere in inglese, sebbene alcuni manuali siano localizzati su varie distribuzioni.
I documenti man sono divisi in sezioni numerate. Il comando man per impostazione predefinita visualizza la prima voce corrispondente tra 7 sezioni (Unix System V) o 8 (Linux/BSD), che sono:
- Comandi generali
- Chiamate di sistema
- Funzioni della libreria C
- File speciali e driver di dispositivo
- Formati di file e file di configurazione
- Giochi e salvaschermo
- Varie / pagine di panoramica
- Amministrazione di sistema e daemon (solo Linux/BSD)
L'accesso a una determinata sezione richiede l'immissione di man numero_sezione nome - ad esempio, man 5 passwd. L'output del manuale può essere reindirizzato a un'applicazione diversa per una lettura più agevole, ad esempio a cat o less.
Sicurezza e incolumità
RISCHIO: LOWUn sorgente di pagina man è testo semplice e non viene eseguito durante la visualizzazione. L'unica cautela teorica è che roff è un linguaggio macro Turing-completo e groff ha storicamente avuto bug di parsing, quindi il rendering di un .man da una fonte del tutto non attendibile è meglio farlo con il più sicuro mandoc in sandbox piuttosto che con groff completo. Nell'uso normale (lettura di documenti da pacchetti e progetti) un file .man è innocuo; aprirlo in un editor di testo è completamente sicuro. Non confonderlo con un profilo obbligatorio .man di Windows, che è un hive del registro, non un documento.
Dettagli del formato
in sintesi- Profilo utente obbligatorio Windows 2000/XP - Il file .man legacy di Windows è un profilo utente roaming di sola lettura (un hive del registro NTUSER.DAT rinominato) - non correlato alle pagine man di Unix; il significato originale del nome del database.
- File di memoria/menu FoxPro / dBASE - Alcuni vecchi strumenti di database DOS utilizzavano .man per menu compilati o dati memo; obsoleto.
Programmi che aprono file MAN
Dettagli tecnici
specifiche approfondite| Codifica del file | Testo semplice ASCII o UTF-8; nessun contenuto binario o byte-order mark richiesto |
| Tipo MIME | text/troff (primario); riconosciuto anche come application/x-troff-man o text/plain |
| Linguaggio di markup | roff/troff utilizzando il pacchetto macro man (macro an-old); le chiamate macro prefissate dal punto devono apparire all'inizio di una riga |
| Macro del titolo | .TH (title header) - tipicamente la prima riga non di commento; dichiara il nome della pagina, il numero di sezione, la data e il pacchetto sorgente |
| Sezioni standard | NAME, SYNOPSIS, DESCRIPTION, OPTIONS, EXAMPLES, FILES, ENVIRONMENT, BUGS, SEE ALSO - ciascuna introdotta da una macro .SH |
| Numerazione delle sezioni delle pagine man | 7 sezioni su Unix tradizionale (System V); 8 su Linux e BSD - la sezione 8 copre i comandi di amministrazione del sistema |
| Dimensione tipica del file | 1 KB - 100 KB; la maggior parte delle pagine rientra tra 5 KB e 30 KB |
| Compressione su disco | Le pagine installate sono comunemente compresse con gzip (es. ls.1.gz) e decompresse in modo trasparente da man al momento della lettura |
| Motore di rendering | groff (GNU troff) su Linux; mandoc su BSD e macOS moderno, che ha sostituito groff come renderer man predefinito |
| Denominazione comune dei file | L'estensione con il numero di sezione è lo standard su disco (ls.1, printf.3, passwd.5); l'estensione .man è usata principalmente da documentazione di terze parti o pacchettizzata |
| Percorso di installazione | /usr/share/man/manN/ su Linux e BSD, dove N è il numero di sezione; macOS usa /usr/share/man/ con lo stesso layout di directory |
| Formati di output | Testo del terminale tramite un pager (less), PostScript, PDF, HTML e testo semplice - tutti prodotti su richiesta da groff -T |
| Formati sorgente correlati | mdoc (set di macro alternativo BSD), pod2man (da Perl POD a man), Sphinx man builder e ronn (convertitore da Markdown a man) |
| Sviluppatore / origine | Bell Labs (sistema man originale Unix, 1971); macro man e groff mantenuti dal Progetto GNU |
| Rilasciato | 1971 (Unix Programmer's Manual, V1); man macros standardized through the 1970s-80s |
| Ultima versione | N/A (roff/man-macro convention; groff is the active implementation) |
| Standard aperto | Sì · royalty-free |
| Specifica | man7.org |
Conversioni MAN
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file MAN.