Quando cerchi l'utilizzo di un comando Linux/Unix, non devi cercare su Google o cercare nei forum di discussione, nelle pagine wiki, nei blog o in qualsiasi risorsa offline/online. Tutto è documentato nelle pagine del manuale (brevemente pagine man) del comando. Devi solo imparare a utilizzare le pagine man in modo efficiente per ottenere i dettagli di un comando o le sue opzioni/flag in modo facile e veloce. Oggi condividerò un trucco della pagina man meno noto, ovvero come visualizzare una sezione specifica nelle pagine man in Linux e Unix.
Struttura predefinita della pagina man
Una pagina man è composta da diverse sezioni, organizzate con intestazioni per ciascuna sezione, come NOME, SINOSSI, CONFIGURAZIONE, DESCRIZIONE, OPZIONI, STATO DI USCITA, VALORE DI RITORNO, ERRORI, AMBIENTE, FILE, VERSIONI, CONFORME A, NOTE, BUG, ESEMPIO, AUTORI, e VEDI ANCHE. Ogni pagina man ha il nome del comando seguito dal numero della sezione tra parentesi.
Ecco l'elenco dei numeri di sezione del manuale seguito dai tipi di pagine che contengono:
1 - Executable programs or shell commands. 2 - System calls (functions provided by the kernel). 3 - Library calls (functions within program libraries). 4 - Special files (usually found in /dev). 5 - File formats and conventions e.g. /etc/passwd. 6 - Games. 7 - Miscellaneous (including macro packages and conventions), e.g. man(7). 8 - System administration commands (usually only for root). 9 - Kernel routines [Non standard].
Alcune pagine hanno tutte queste sezioni e altre no. Ora vediamo come visualizzare una sezione specifica della pagina man di un comando.
Visualizza una sezione specifica nelle pagine man in Linux
Apriamo una pagina man di un comando, ad esempio uname .
$ man uname
Scorri verso il basso alla fine della pagina man e vedrai i riferimenti ad altri comandi.
[...] SEE ALSO arch(1), uname(2) [...]
Pagina man del comando uname
Vedi tutti quei numeri che seguono i comandi alla fine? Vedrai uno o più comandi di riferimento con i numeri tra parentesi alla fine di quasi tutte le pagine man dei comandi. Questi numeri indicano la sezione specifica della pagina man del comando che vuoi guardare. In altre parole, il numero corrisponde alla sezione del manuale da cui proviene quella pagina.
Per dire esplicitamente a man di aprire la sezione 2 del comando uname, esegui semplicemente:
$ man 2 uname
Oppure,
$ man uname.2
Nella schermata seguente, la finestra Terminale sul lato sinistro mostra l'output del comando "man uname". Il lato destro della finestra del Terminale mostra l'output di "man 2 uname" (cioè sezione 2 di uname ) comando.
Visualizza una sezione specifica nelle pagine man in Linux
Tieni presente che quando eseguiamo il comando man senza alcun numero, di solito è equivalente a:
$ man 1 <command>
Alcune pagine man non hanno una sezione specifica. In questi casi, non si ottiene nulla in cambio quando si tenta di visualizzare la pagina man con il numero della sezione. Ad esempio, eseguo il comando seguente per vedere la quinta sezione del comando uname:
$ man 5 uname
Poiché il comando uname non ha la sezione 5, ottengo il seguente output:
No manual entry for uname in section 5 See 'man 7 undocumented' for help when manual pages are not available.
Mostra tutte le sezioni in una riga
Come ho già detto, la pagina man di un comando specifico ha molte sezioni. Per visualizzare tutte le pagine corrispondenti di seguito, utilizza -a segnala come sotto.
$ man -a uname
Premi q per uscire da una sezione e passare alla sezione successiva.
Mostra tutti i comandi corrispondenti a una stringa con numeri di sezione
Possiamo cercare pagine man contenenti una stringa di ricerca usando -k bandiera. Quindi, se vuoi recuperare tutti i numeri di sezione di un comando specifico nella pagina man, usa -k opzione come di seguito.
$ man -k uname
Risultato di esempio:
arch (1) - print machine hardware name (same as uname -m) oldolduname (2) - get name and information about current kernel olduname (2) - get name and information about current kernel uname (1) - print system information uname (1posix) - return system name uname (2) - get name and information about current kernel
Come puoi vedere nell'output sopra, abbiamo elencato tutti i comandi (cioè le sottostringhe) che corrispondono alla stringa di parole chiave specificata. Per limitare rigorosamente la ricerca all'interno della stringa corrispondente, utilizzare:
$ man -k '^uname'
Risultato di esempio:
uname (1) - print system information uname (1posix) - return system name uname (2) - get name and information about current kernel
In alternativa puoi usare -f bandiera.
$ man -f uname
Risultato di esempio:
uname (1) - print system information uname (2) - get name and information about current kernel uname (1posix) - return system name
Per maggiori dettagli, guarda le pagine man di "man".
$ man man
Inoltre, consulta le altre sezioni della guida per le pagine man.
$ man -k man
$ info man
Lettura consigliata:
- Buone alternative alle pagine man che ogni utente Linux deve conoscere
- Come trovare la pagina man più lunga in Linux
- Come richiamare facilmente i comandi Linux dimenticati
- Come creare e gestire le tue pagine man
- Come installare le pagine man dei comandi mancanti su Ubuntu
- Pinfo – Un programma CLI per leggere informazioni e pagine man a colori
Spero che questo aiuti.