ตัวเลขในหน้าคนหมายถึงอะไร


474

ดังนั้นสำหรับตัวอย่างเช่นเมื่อฉันพิมพ์ฉันเห็นman ls LS(1)แต่ถ้าฉันพิมพ์man apachectlฉันเห็นAPACHECTL(8)และถ้าฉันพิมพ์ฉันจบลงด้วยman cdcd(n)

ฉันสงสัยว่าความหมายของตัวเลขในวงเล็บคืออะไรถ้ามี




4
@PeterMortensen นี่คือเหตุผลที่ SuperUser และ Unix / Linux และ ServerFault และ AskUbuntu และ Apple ทั้งหมดต้องถูกผสาน
Chloe

คุณสามารถกำหนดลำดับการค้นหาของคุณเองด้วยexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh

นี่เป็นความล้มเหลวของ UX ที่มีขนาดใหญ่ เอกสารดิจิทัลไม่ควรมีหมายเลขส่วนเลย ควรมีชื่ออธิบายและการเชื่อมโยงหลายมิติ ฉันไม่อยากจะเชื่อว่าพวกเขาสามารถทำเอกสารได้ดังนั้นทำให้สับสนว่าคำถามนี้มีผู้เข้าชม 121000 ครั้ง
iono

คำตอบ:


496

จำนวนสอดคล้องกับส่วนของคู่มือที่หน้านั้นมาจาก; 1 คือคำสั่งของผู้ใช้ในขณะที่ 8 คือสิ่งที่ดูแลระบบ หน้าคนสำหรับตัวเอง ( man man) อธิบายและแสดงรายการมาตรฐาน:

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.

มีคำบางคำที่มีหน้าต่างๆในส่วนต่าง ๆ (เช่นprintfคำสั่งปรากฏในส่วนที่ 1 เนื่องจากstdlibฟังก์ชั่นปรากฏในส่วนที่ 3) ในกรณีเช่นนี้คุณสามารถส่งหมายเลขส่วนไปmanยังหน้าชื่อเพื่อเลือกสิ่งที่คุณต้องการหรือใช้man -aเพื่อแสดงทุกหน้าที่ตรงกันในแถว:

$ man 1 printf
$ man 3 printf
$ man -a printf

คุณสามารถบอกได้ว่าส่วนใดของคำที่ตรงกับman -k(เทียบเท่ากับaproposคำสั่ง) มันจะทำการจับคู่ซับสตริงด้วย (เช่นจะแสดงsprintfถ้าคุณเรียกใช้man -k printf) ดังนั้นคุณต้องใช้^termเพื่อ จำกัด :

$ 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)

5
แน่นอนว่ามันอธิบาย มีวิธีง่าย ๆ ในการบอกว่ามีหลาย man pages สำหรับคำสั่งที่กำหนดหรือไม่?
Wilduck

2
@Wil ใช่แก้ไขแล้ว
Michael Mrozek

11
โปรดทราบว่าหมายเลขส่วนเหล่านี้สำหรับ Linux 1, 3 และ 6 นั้นเหมือนกันในทุกรุ่นของระบบยูนิกซ์ AFAIK แต่ส่วนอื่น ๆ และส่วนที่ไม่ใช่หลักเดียวอาจแตกต่างกัน มักจะอธิบายถึงสิ่งที่อยู่ในส่วนman X intro X
Gilles

2
@KeithB: ฉันเคยใช้ unices กับ 4,5,7,8 ที่แตกต่างกัน Digital Unix (OSF1) มีและ Solaris ยังมี: รูปแบบไฟล์ใน 4, อื่น ๆ ใน 5, อุปกรณ์ใน 7 Solaris ยังวางคำสั่งของผู้ดูแลระบบในระยะ 1 เมตร ฉันคิดว่าการเรียกใช้ระบบใน 2 นั้นเป็นสากล แต่บางระบบก็มีอินเตอร์เฟส C ไลบรารีบางส่วนใน 2 (เมื่อพวกเขาควรจะล้อมรอบบาง ๆ รอบ ๆ บาร์นี้)
Gilles

4
อืมใครคิดว่าคุณต้องการคู่มือเพื่อใช้คู่มือ ... ฉันไม่เคยทำman man... จนกระทั่งตอนนี้
Matt Clark

59

ประวัติของหมายเลขส่วนเหล่านี้กลับไปที่คู่มือUnix Programmerดั้งเดิมของ Thompson และ Ritchie ในปี 1971

ส่วนเดิมคือ

  1. คำสั่ง
  2. การเรียกระบบ
  3. ซับรูทีน
  4. ไฟล์พิเศษ
  5. รูปแบบไฟล์
  6. โปรแกรมที่ผู้ใช้บำรุงรักษา
  7. เบ็ดเตล็ด

มีอะไรเพิ่มเติมจากยุค 70 แน่นอน ฉันคิดว่ามันมาจากยุค 80
Rolf

"เบ็ดเตล็ด" หมายถึง "ข้อมูลทั่วไปเกี่ยวกับระบบย่อยทั้งหมดหรือคุณสมบัติ Unix ทั่วไปมากกว่าจุดสิ้นสุด API เฉพาะ" ดูตัวอย่างpipe(7), tcp(7)(และอื่น ๆ อีกหลายเครือข่ายหน้าคน) pthreads(7), boot(7), regex(7)ฯลฯ มีสิ่งอื่น ๆ ในมาตรา 7 เป็นอย่างดีเช่นascii(7)(ตาราง ASCII) และman(7)(วิธีการเขียนหน้าคน) แต่หน้าเอกสารกว้างไกลโดย สิ่งที่มีประโยชน์ที่สุดในส่วนที่ 7 ในประสบการณ์ของฉัน
Kevin

31

konqueror ยังอธิบายถึงส่วนที่ไม่ได้มาตรฐาน: (ขอบคุณ @ greg0ire สำหรับแนวคิด)

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

21

สิ่งที่มันหมายถึงการอธิบายไว้แล้ว introแต่ผมยังต้องการที่จะเพิ่มว่าแต่ละส่วนมีหน้าคู่มือพิเศษด้วยการแนะนำ: ตัวอย่างเช่นดูman 1 introหรือman 3 introอื่น ๆ


1
ฉันไม่เห็นสิ่งนี้ในการติดตั้ง Fedora อินโทร x คนไม่ได้มาตรฐานหรือไม่?
beatgammit

@tjameson คุณman-pagesติดตั้งแพ็คเกจแล้วหรือยัง?
php-coder

15

จากmanmanpage:

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]

ทำไมพวกมันถึงแยกกัน - มันมีบางอย่างทับซ้อนกัน บาง manpages มีอยู่มากกว่าหนึ่งส่วนขึ้นอยู่กับความหมายของคุณ

ตัวอย่างเช่นเปรียบเทียบman crontabกับman 5 crontab- โอกาสเป็นสิ่งหลังที่คุณต้องการค้นหา


และสิ่งที่เป็นman1pและman3p?
Tyilo

และฉันควรวาง manpages ของตัวเองไว้~/manที่ไหน?
Tyilo

ฉันรู้ว่ามีตัวเลขที่แตกต่างกัน แต่ฉันไม่รู้ว่ามีการสัมผัสกับมัน ขอบคุณ
user606723

1
1p เป็นคู่มือเวอร์ชันมาตรฐานของคู่มือ หากคุณต้องการเขียนโค้ดพกพาคุณควรใช้ Xp man pages เท่านั้น หากการติดตั้งของคุณไม่ตรงตามมาตรฐาน posix X และ Xp man page อาจแตกต่างกัน
andcoz

@Tyilo ดูคำตอบของฉัน
Babken Vardanyan

8

นี่คือหมายเลขส่วน เพียงพิมพ์man manหรือเปิด konqueror และพิมพ์ man: // man แล้วคุณจะเห็นว่าส่วนเหล่านี้คืออะไร


7

บ่อยครั้งที่มีการอ้างอิง man page ผ่านทาง suffixing โดยมีส่วนที่อยู่ในวงเล็บเช่น:

read(2)

สไตล์นี้มีข้อดีสองประการ:

  • เป็นที่ชัดเจนทันทีว่าคุณอ้างอิงหน้าคน - นั่นคือคุณสามารถเขียนอะไรบางอย่างเช่น 'cf อ่าน (3) 'แทน' cf ส่วนที่ 3 หน้าคนอ่าน '
  • หากหลายส่วนมีหน้าคนที่มีชื่อเหมือนกันการระบุส่วนนั้นจะแม่นยำมากขึ้น

Man man จัดอยู่ในหมวดต่างๆเช่นส่วนที่ 1 รวม man man คำสั่งของผู้ใช้ทั้งหมดส่วนที่ 2 man man ทั้งหมดสำหรับการเรียกระบบส่วนที่ 3 ใช้สำหรับฟังก์ชั่นห้องสมุดเป็นต้น

ในบรรทัดคำสั่งหากคุณไม่ได้ระบุส่วนที่ชัดเจนคุณจะได้รับหน้าแรกที่ตรงกันในลำดับการสำรวจเส้นทางส่วนเริ่มต้นเช่น:

$ man read

แสดงBASH_BUILTINS(1)บน Fedora ที่ไหน

$ man 2 read

แสดง man page สำหรับการread()เรียกของระบบ

โปรดทราบว่าข้อกำหนดตำแหน่งของส่วนนี้ไม่สามารถเคลื่อนย้ายได้ - เช่นบน Solaris คุณต้องระบุดังนี้:

$ man -s 2 read

โดยปกติแล้วจะman manแสดงบางส่วนที่มีอยู่ด้วย แต่ไม่จำเป็นเสมอไป $MANPATHสำหรับรายชื่อที่มีอยู่ทั้งหมดส่วนหนึ่งอาจแสดงรายการไดเรกทอรีย่อยของไดเรกทอรีทั้งหมดที่ระบุไว้ในเส้นทางของคนที่เริ่มต้นหรือตัวแปรสภาพแวดล้อม ตัวอย่างเช่นในระบบ Fedora 23 ที่ติดตั้งแพคเกจการพัฒนาบางตัว/usr/share/manมีไดเรกทอรีย่อยดังต่อไปนี้:

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

ไดเรกทอรีที่มีmanคำนำหน้าแทนแต่ละส่วน - ในขณะที่อีกไดเรกทอรีหนึ่งมีส่วนที่แปลแล้ว ดังนั้นในการรับรายการส่วนที่ไม่ว่างเปล่าเราสามารถออกคำสั่งดังนี้:

$ find /usr/share/man -type f  | sed 's@^.*/man\(..*\)/.*$@\1@' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7

(ส่วนที่ลงท้ายด้วยpหน้าคน POSIX)

หากต้องการดู man page ในภาษาอื่น (ถ้ามี) สามารถตั้งค่าตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับภาษาเช่น:

$ LC_MESSAGES=de_DE man read

นอกจากนี้แต่ละส่วนควรมีหน้าคู่มือแนะนำชื่อintroเช่นสามารถดูได้ผ่าน:

$ man 2 intro

4

คำจำกัดความสำหรับ SVr4 คือ:

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

นี่เป็นตัวเลขจริงสำหรับ UNIX "ทางพันธุกรรม" POSIX ไม่ได้กำหนดหมายเลข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.