Qual'è la differenza tra `man` e` man (#) `?


31

Ho appena visto qualcuno fare riferimento man 7 regexa StackOverflow. Ho provato a man regexottenere risultati molto simili: sembrano esserci lievi differenze.

Allora, cos'è questo magico numero 7? La ricerca man 7 unixsu Google mi dà risultati più misteriosi come UNIX (7) ...

Risposte:


33

Di UNIX(7)

Per rispondere alla tua domanda "UNIX (7)", questa è la convenzione standard di dire "La pagina man di UNIX nella sezione 7 (varie)".

Per aprire una pagina come init(8), si può usare questo comando: man 8 init.


man regex vs man 7 regex

Per rispondere alla tua domanda sulle "sottili differenze" tra man regexe man 7 regex:

manper impostazione predefinita apre la pagina con il numero di sezione più basso . In questo caso, è la sezione 3 (Chiamate in libreria). L'apertura della pagina dalla sezione 7 (Varie) è abbastanza diversa.

Le pagine in diverse sezioni affrontano cose diverse, sebbene in questo caso siano simili, considera apt:

man -f apt:

apt (8)              - Advanced Package Tool
apt (1)              - annotation processing tool

In questo esempio, aptdalla sezione 8 (Comandi di amministrazione del sistema) è completamente estraneo alla pagina della sezione 1 (Programmi eseguibili o comandi di shell).

Per riferimento futuro, utilizzare man -f PAGE_NAMEper individuare tutte le pagine con quel nome in tutte le sezioni. È quindi possibile aprire una pagina dalla sezione desiderata man SECTION PAGE_NAME.

Sezioni Manpage

Le varie sezioni di pagina sono le seguenti e possono essere trovate da man man:

  1. Programmi eseguibili o comandi shell
  2. Chiamate di sistema (funzioni fornite dal kernel)
  3. Chiamate alla libreria (funzioni all'interno delle librerie del programma)
  4. File speciali (di solito si trovano in /dev)
  5. Formati e convenzioni dei file ad es /etc/passwd
  6. Giochi
  7. Varie (compresi pacchetti macro e convenzioni), ad es man(7).groff(7)
  8. Comandi di amministrazione del sistema (di solito solo per root)
  9. Routine del kernel [Non standard]

14

I numeri di sezione

manmostrerà la manpage da qualsiasi sezione, man 7mostrerà la manpage dalla sezione 7. Quindi, qui 7 si riferisce alla sezione del comando specifico per cui stai cercando la pagina di manuale.

Una sezione, se fornita, indirizzerà man a cercare solo quella sezione del manuale.


Le sezioni

Vedere la tabella seguente per i numeri di sezione del manuale seguiti dai tipi di pagine che contengono.

1: programmi eseguibili o comandi shell

2: Chiamate di sistema (funzioni fornite dal kernel)

3: Chiamate alla libreria (funzioni all'interno delle librerie del programma)

4: file speciali (di solito si trovano in / dev)

5: Formati e convenzioni dei file, ad esempio / etc / passwd

6: Giochi

7: Varie (compresi pacchetti macro e convenzioni), ad esempio man (7), groff (7)

8: comandi di amministrazione del sistema (di solito solo per root). Panoramica di vari argomenti, convenzioni e protocolli, standard di set di caratteri e varie altre cose.

9: Routine del kernel [Non standard]


Comandi in più di una sezione

Nella maggior parte dei casi vorrai usare il mancomando senza n . Tuttavia, in alcuni casi un comando verrà visualizzato in più di una sezione. Ad esempio, se si emette il comando man open, si ottiene la pagina man per openvt dalla sezione 1. Ma se è necessario vedere la pagina man per open come comando C (o chiamata di sistema, come da tabella sopra), è necessario eseguire man 2 open.

Un esempio molto simile sarà man printfe man 3 printf. Si prega di emettere i comandi e vedere di persona la differenza nell'output.


Il tuo problema di man 7 unix(UNIX (7))

Quindi, UNIX (7) significa che appartiene alla sezione 7.


Quale sezione verrà visualizzata per impostazione predefinita se non fornisco un numero di sezione?

L'azione predefinita è cercare in tutte le sezioni disponibili, seguendo un ordine predefinito e mostrare solo la prima pagina trovata, anche se la pagina esiste in più sezioni.


Come faccio a sapere il numero di sezione di un comando?

Dovresti scoprire in quali sezioni rientra un termine / comando man -k(equivalente al comando apropos). Quindi, man -k printf cercherà le brevi descrizioni e i nomi delle pagine del manuale per la parola chiave printf come espressione regolare. Stampa eventuali corrispondenze. (Equivalente a apropos -r printf). Emettere il comando, vedere la tonnellata ottenuta. Se è necessario evitare corrispondenze alla sottostringa, (ad esempio mostrerà sprintf se si esegue man -k printf), quindi è necessario utilizzare ^termper limitarlo, come di seguito,

man -k '^printf'
Printf (3o)          - Formatted output functions.
printf (1)           - format and print data
printf (3)           - formatted output conversion

Comando correlato

Un comando correlato è aproposcome indicato sopra, che cerca i nomi e le descrizioni delle pagine del manuale. Se non sei sicuro di quale pagina del manuale stai cercando ma hai un'idea generale, usa questo comando.


Ma la documentazione per regexnon ha 7 sezioni ...
Aditya MP

@adityamenon Si prega di consultare la risposta aggiornata, che è stata pubblicata prima del completamento.
Masroor,

Vedo - quindi una "Sezione" qui significa "classificazione del programma".
Aditya MP

@adityamenon Hai ragione, mi sarei sentito più a mio agio con il termine che stai usando.
Masroor,

In particolare, "sezione" qui significa "sezione del Manuale", come se tutte le pagine man fossero in un singolo (spesso) manuale stampato
Jonathan Callen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.