@PeterMortensen Właśnie dlatego SuperUser i Unix / Linux i ServerFault oraz AskUbuntu i Apple muszą zostać połączone.
Chloe,
Na marginesie, możesz ustawić własną kolejność wyszukiwania za pomocąexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh
To gigantyczna awaria UX. Dokumentacja cyfrowa w ogóle nie powinna mieć numerów sekcji; powinien mieć opisowe nazwy i hiperłącza. Nie mogę uwierzyć, że udało im się sprawić, że dokumentacja była tak myląca, że pytanie to obejrzano 121000 razy.
iono
Odpowiedzi:
496
Liczba odpowiada części sekcji instrukcji, z której pochodzi ta strona; 1 to polecenia użytkownika, a 8 to sysadmin. Strona man dla samego man ( man man) wyjaśnia ją i wymienia te standardowe:
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. al.
7 Miscellanea
8 System Administration tools and Daemons
Distributions customize the manual section to their specifics,
which often include additional sections.
Istnieją pewne terminy, które mają różne strony w różnych sekcjach (np. printfGdy polecenie pojawia się w sekcji 1, a stdlibfunkcja pojawia się w sekcji 3); w takich przypadkach możesz przekazać numer sekcji manprzed nazwą strony, aby wybrać, który chcesz, lub użyć, man -aaby wyświetlić każdą pasującą stronę z rzędu:
$ man 1 printf
$ man 3 printf
$ man -a printf
Możesz powiedzieć, z którymi sekcjami należy dany termin man -k(odpowiednik apropospolecenia). Będzie także wykonywać dopasowania podłańcuchowe (np. Pokaże, sprintfjeśli uruchomisz man -k printf), więc musisz użyć, ^termaby go ograniczyć:
$ man -k '^printf'
printf (1) - format and print data
printf (1p) - write formatted output
printf (3) - formatted output conversion
printf (3p) - print formatted output
printf [builtins] (1) - bash built-in commands, see bash(1)
To z pewnością to wyjaśnia. Czy istnieje prosty sposób stwierdzenia, czy dla danego polecenia istnieje wiele stron podręcznika?
Wilduck
2
@Wil Tak, pod redakcją
Michael Mrozek
11
Uwaga: te numery sekcji dotyczą systemu Linux. 1, 3 i 6 są takie same we wszystkich wariantach uniksowych AFAIK, ale pozostałe i sekcje nie zawierające pojedynczych cyfr mogą się różnić. Zwykle man X introopisuje to, co znajduje się w sekcji X.
Gilles
2
@KeithB: Użyłem kilku jednorożców z różnymi 4,5,7,8. Digital Unix (OSF1) miał, a Solaris nadal ma: formaty plików w 4, różne w 5, urządzenia w 7. Solaris również umieszcza polecenia administratora na 1m. Myślę, że wywołania systemowe w 2 są uniwersalne, ale niektóre systemy mają również interfejsy biblioteki C w 2 (kiedy powinny być cienkimi opakowaniami wokół tytułowego wywołania systemowego).
Gilles
4
Huh, kto pomyślał, że będziesz potrzebować instrukcji, aby skorzystać z instrukcji ... Nigdy nie wykonałem man man... aż do teraz.
Matt Clark,
59
Historia tych numerów sekcji sięga pierwotnego podręcznika programisty Uniksa autorstwa Thompsona i Ritchiego z 1971 roku.
Rzeczywiście więcej rzeczy z lat 70. Myślałem, że to z lat 80.
Rolf
„Różne” oznacza przede wszystkim „szeroką informację o całym podsystemie lub ogólnej funkcji uniksowej, a nie o określonym punkcie końcowym interfejsu API”. Patrz na przykład pipe(7), tcp(7)(i kilka innych sieciowych strony man), pthreads(7), boot(7), regex(7), itd. Nie ma innych rzeczy w sekcji 7, jak również, takie jak ascii(7)(tabela ASCII) i man(7)(jak napisać stronę man), ale strony szerokie Dokumenty są zdecydowanie najbardziej przydatne rzeczy w sekcji 7 z mojego doświadczenia.
Kevin
31
konqueror opisuje także niestandardowe sekcje: (dzięki @ greg0ire za pomysł)
0 Header files
0p Header files (POSIX)
1 Executable programs or shell commands
1p Executable programs or shell commands (POSIX)
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
3n Network Functions
3p Perl Modules
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines
l Local documentation
n New manpages
Co to oznacza już opisane, ale chce również dodać, że każda sekcja posiada specjalną stronę podręcznika z wprowadzeniem: intro. Na przykład, zobaczyć man 1 introczy man 3 introi tak dalej.
Nie widzę tego w mojej instalacji Fedory. Czy wprowadzenie do man X nie jest standardowe?
beatgammit
@tjameson Czy masz man-pageszainstalowany pakiet?
koder php
15
Z strony manpodręcznika:
The table below shows the section numbers of the manual followed by the
types of pages they contain.
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 eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conven‐
tions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Co do tego, dlaczego są tak oddzielni - istnieje pewne nakładanie się. Niektóre strony istnieją w więcej niż jednej sekcji, w zależności od tego, co masz na myśli.
Na przykład porównaj man crontabz man 5 crontab- są szanse, że ten drugi to ten, który chciałeś sprawdzić.
A gdzie powinienem umieścić własne strony podręcznika ~/man?
Tyilo,
Wiedziałem, że są różne liczby, ale nie wiedziałem, że to rym. Dzięki
użytkownik606723,
1
1p jest standardową wersją podręcznika posix. Jeśli chcesz pisać przenośny kod, powinieneś używać tylko stron podręcznika Xp. Jeśli twoja implementacja nie jest zgodna z posix, strony podręcznika X i Xp mogą się różnić.
andcoz
@Tyilo zobacz moją odpowiedź
Babken Vardanyan
8
To są numery sekcji. Po prostu wpisz man manlub otwórz konqueror i wpisz man: // man, a zobaczysz, co to za sekcje.
Często do strony man można się odwoływać poprzez dodanie jej do sekcji zawartej w nawiasach, np .:
read(2)
Ten styl ma dwie główne zalety:
natychmiast staje się jasne, że odwołujesz się do strony podręcznika - tzn. możesz napisać coś takiego jak „por. czytaj (3) „zamiast” por. strona podręcznika użytkownika sekcja 3 przeczytana ”
jeśli wiele sekcji zawiera strony podręcznika o tej samej nazwie, określenie sekcji jest bardziej precyzyjne
Strony podręcznika są podzielone na sekcje, np. Sekcja 1 zawiera wszystkie strony podręcznika użytkownika, sekcja 2 wszystkie strony podręcznika dla wywołań systemowych, sekcja 3 dotyczy funkcji bibliotecznych itp.
W wierszu poleceń, jeśli nie określisz wyraźnie sekcji, otrzymasz pierwszą pasującą stronę man, w domyślnej kolejności przechodzenia między sekcjami, np .:
$ man read
wyświetla się BASH_BUILTINS(1)w Fedorze. Gdzie
$ man 2 read
wyświetla stronę podręcznika dla read()wywołania systemowego.
Zauważ, że specyfikacja pozycji tej sekcji nie jest przenośna - np. W Solarisie możesz podać ją w następujący sposób:
$ man -s 2 read
Zazwyczaj man manzawiera również niektóre z dostępnych sekcji. Ale niekoniecznie wszystkie. Aby wyświetlić wszystkie dostępne sekcje, można wymienić podkatalogi wszystkich katalogów wymienionych w domyślnej ścieżce man lub zmiennej środowiskowej $MANPATH. Na przykład w systemie Fedora 23 z zainstalowanymi niektórymi pakietami programistycznymi /usr/share/manma następujące podkatalogi:
cs es id man0p man2 man3x man5x man7x man9x pt_BR sk zh_CN
da fr it man1 man2x man4 man6 man8 mann pt_PT sv zh_TW
de hr ja man1p man3 man4x man6x man8x pl ro tr
en hu ko man1x man3p man5 man7 man9 pt ru zh
Katalogi z manprefiksem reprezentują każdą sekcję - podczas gdy inne zawierają przetłumaczone sekcje. Tak więc, aby uzyskać listę niepustych sekcji, można wydać takie polecenie:
1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures
Jest to faktyczna numeracja „genetycznego” systemu UNIX. POSIX nie definiuje liczb.
export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
Odpowiedzi:
Liczba odpowiada części sekcji instrukcji, z której pochodzi ta strona; 1 to polecenia użytkownika, a 8 to sysadmin. Strona man dla samego man (
man man
) wyjaśnia ją i wymienia te standardowe:Istnieją pewne terminy, które mają różne strony w różnych sekcjach (np.
printf
Gdy polecenie pojawia się w sekcji 1, astdlib
funkcja pojawia się w sekcji 3); w takich przypadkach możesz przekazać numer sekcjiman
przed nazwą strony, aby wybrać, który chcesz, lub użyć,man -a
aby wyświetlić każdą pasującą stronę z rzędu:Możesz powiedzieć, z którymi sekcjami należy dany termin
man -k
(odpowiednikapropos
polecenia). Będzie także wykonywać dopasowania podłańcuchowe (np. Pokaże,sprintf
jeśli uruchomiszman -k printf
), więc musisz użyć,^term
aby go ograniczyć:źródło
man X intro
opisuje to, co znajduje się w sekcjiX
.man man
... aż do teraz.Historia tych numerów sekcji sięga pierwotnego podręcznika programisty Uniksa autorstwa Thompsona i Ritchiego z 1971 roku.
Oryginalne sekcje były
źródło
pipe(7)
,tcp(7)
(i kilka innych sieciowych strony man),pthreads(7)
,boot(7)
,regex(7)
, itd. Nie ma innych rzeczy w sekcji 7, jak również, takie jakascii(7)
(tabela ASCII) iman(7)
(jak napisać stronę man), ale strony szerokie Dokumenty są zdecydowanie najbardziej przydatne rzeczy w sekcji 7 z mojego doświadczenia.konqueror opisuje także niestandardowe sekcje: (dzięki @ greg0ire za pomysł)
źródło
Co to oznacza już opisane, ale chce również dodać, że każda sekcja posiada specjalną stronę podręcznika z wprowadzeniem:
intro
. Na przykład, zobaczyćman 1 intro
czyman 3 intro
i tak dalej.źródło
man-pages
zainstalowany pakiet?Z strony
man
podręcznika:Co do tego, dlaczego są tak oddzielni - istnieje pewne nakładanie się. Niektóre strony istnieją w więcej niż jednej sekcji, w zależności od tego, co masz na myśli.
Na przykład porównaj
man crontab
zman 5 crontab
- są szanse, że ten drugi to ten, który chciałeś sprawdzić.źródło
man1p
iman3p
?~/man
?To są numery sekcji. Po prostu wpisz
man man
lub otwórz konqueror i wpisz man: // man, a zobaczysz, co to za sekcje.źródło
Często do strony man można się odwoływać poprzez dodanie jej do sekcji zawartej w nawiasach, np .:
Ten styl ma dwie główne zalety:
Strony podręcznika są podzielone na sekcje, np. Sekcja 1 zawiera wszystkie strony podręcznika użytkownika, sekcja 2 wszystkie strony podręcznika dla wywołań systemowych, sekcja 3 dotyczy funkcji bibliotecznych itp.
W wierszu poleceń, jeśli nie określisz wyraźnie sekcji, otrzymasz pierwszą pasującą stronę man, w domyślnej kolejności przechodzenia między sekcjami, np .:
wyświetla się
BASH_BUILTINS(1)
w Fedorze. Gdziewyświetla stronę podręcznika dla
read()
wywołania systemowego.Zauważ, że specyfikacja pozycji tej sekcji nie jest przenośna - np. W Solarisie możesz podać ją w następujący sposób:
Zazwyczaj
man man
zawiera również niektóre z dostępnych sekcji. Ale niekoniecznie wszystkie. Aby wyświetlić wszystkie dostępne sekcje, można wymienić podkatalogi wszystkich katalogów wymienionych w domyślnej ścieżce man lub zmiennej środowiskowej$MANPATH
. Na przykład w systemie Fedora 23 z zainstalowanymi niektórymi pakietami programistycznymi/usr/share/man
ma następujące podkatalogi:Katalogi z
man
prefiksem reprezentują każdą sekcję - podczas gdy inne zawierają przetłumaczone sekcje. Tak więc, aby uzyskać listę niepustych sekcji, można wydać takie polecenie:(sekcje kończące
p
się na strony podręcznika POSIX)Aby wyświetlić stronę podręcznika w innym języku (jeśli jest dostępny), można ustawić zmienną środowiskową związaną z językiem, np .:
Ponadto każda sekcja powinna mieć nazwaną stronę podręcznika wprowadzającego
intro
, np. Widoczną poprzez:źródło
Definicje SVr4 to:
Jest to faktyczna numeracja „genetycznego” systemu UNIX. POSIX nie definiuje liczb.
źródło