एक आदमी पृष्ठ में संख्याओं का क्या मतलब है?


474

इसलिए, उदाहरण के लिए, जब मैं टाइप करता man lsहूं तो देखता हूं LS(1)। लेकिन अगर मैं टाइप करता man apachectlहूं तो मैं देखता हूं APACHECTL(8)और अगर मैं टाइप करता man cdहूं तो मैं खत्म हो जाता हूं cd(n)

मैं सोच रहा हूँ कि कोष्ठकों में संख्याओं का क्या महत्व है, अगर उनके पास कोई है।




4
@PeterMortensen यही कारण है कि SuperUser और Unix / Linux और ServerFault और AskUbuntu और Apple सभी को विलय करने की आवश्यकता है।
क्लो

एक साइड नोट पर, आप अपना स्वयं का खोज क्रमexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh

यह एक विशाल यूएक्स विफलता है। डिजिटल प्रलेखन में खंड संख्याएँ नहीं होनी चाहिए; इसमें वर्णनात्मक नाम और हाइपरलिंक होना चाहिए। मैं विश्वास नहीं कर सकता कि वे प्रलेखन को इतना भ्रमित करने में कामयाब रहे कि इस प्रश्न को 121000 बार देखा गया।
आयन

जवाबों:


496

यह संख्या उस पृष्ठ के मैनुअल के किस भाग से मेल खाती है; 1 उपयोगकर्ता कमांड है, जबकि 8 sysadmin सामान है। खुद आदमी के लिए पेज ( 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
यह निश्चित रूप से उसे समझाता है। क्या यह बताने का एक आसान तरीका है कि दिए गए कमांड के लिए कई मैन पेज हैं या नहीं?
वाइल्डकॉक

2
@Wil हाँ, संपादित
माइकल Mrozek

11
ध्यान दें कि ये खंड संख्याएँ लिनक्स के लिए हैं। 1, 3 और 6 सभी यूनिक्स वेरिएंट AFAIK में समान हैं, लेकिन अन्य और गैर-लोन अंकों वाले खंड अलग-अलग हो सकते हैं। आमतौर पर man X introवर्णन करता है कि अनुभाग में क्या है X
गाइल्स

2
@ कीथब: मैंने विभिन्न 4,5,7,8 के साथ कुछ यूनियनों का उपयोग किया है। डिजिटल यूनिक्स (OSF1) में था, और सोलारिस में अभी भी है: 4 में फ़ाइल स्वरूप, 5 में मिसकैरेज, 7. डिवाइस में सोलारिस भी 1m में प्रशासक कमांड डालता है। मुझे लगता है कि 2 में सिस्टम कॉल सार्वभौमिक है, लेकिन कुछ सिस्टमों में 2 में कुछ सी लाइब्रेरी इंटरफेस भी हैं (जब वे एपिलेस सीस्कल के आसपास पतले रैपर होने चाहिए)।
गाइल्स

4
हुह, जिन्होंने सोचा था कि आपको एक मैनुअल का उपयोग करने के लिए एक मैनुअल की आवश्यकता होगी ... कभी भी मैंने कभी भी निष्पादित नहीं किया है man man... अब तक।
मैट क्लार्क

59

इन खंड संख्याओं का इतिहास 1971 में थॉम्पसन और रिची द्वारा मूल यूनिक्स प्रोग्रामर मैनुअल में वापस चला गया ।

मूल खंड थे

  1. आदेश
  2. सिस्टम कॉल
  3. सबरूटीन्स
  4. विशेष फाइलें
  5. फ़ाइल प्रारूप
  6. उपयोगकर्ता-अनुरक्षित कार्यक्रम
  7. विविध

70 के दशक से अधिक सामान, वास्तव में। मैंने सोचा कि यह 80 के दशक से था।
रॉल्फ

"विविध" का मुख्य अर्थ है "किसी विशेष API समापन बिंदु के बजाय एक संपूर्ण सबसिस्टम या सामान्य यूनिक्स सुविधा के बारे में व्यापक जानकारी।" उदाहरण के लिए देखें pipe(7), tcp(7)(और कई अन्य नेटवर्किंग आदमी पृष्ठों), pthreads(7), boot(7), regex(7), आदि जैसे धारा 7 में अन्य सामग्री के रूप में अच्छी तरह से, ascii(7)(ASCII तालिका) और man(7)(कैसे एक आदमी पेज लिखने के लिए), लेकिन व्यापक डॉक्स पृष्ठों अब तक कर रहे हैं मेरे अनुभव में धारा 7 में सबसे उपयोगी चीजें।
केविन

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
मैं अपने फेडोरा इंस्टॉल पर इसे नहीं देखता। क्या मैन एक्स इंट्रो मानक नहीं है?
बीटगैमिट

@tjameson क्या आपके पास man-pagesपैकेज स्थापित है?
php-coder

15

से manमैनपेज:

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]

जैसे वे अलग क्यों होते हैं - कुछ ओवरलैप होते हैं। कुछ मैनपेज आपके मतलब के आधार पर एक से अधिक खंड में मौजूद हैं।

उदाहरण के लिए, तुलना man crontabकरें man 5 crontab- संभावना है कि बाद वाला वही है जिसे आप ऊपर देखना चाहते हैं।


और क्या हैं man1pऔर man3p?
टायिलो

और मुझे अपने स्वयं के मैनपेज़ को कहाँ स्थित करना चाहिए ~/man?
टायिलो

मुझे पता था कि अलग-अलग संख्याएँ हैं, लेकिन मुझे नहीं पता था कि इसके लिए एक कविता थी। धन्यवाद
20:60 पर user606723

1
1p मैनुअल का पॉज़िक्स मानक संस्करण है। यदि आप पोर्टेबल कोड लिखना चाहते हैं, तो आपको केवल एक्सपी मैन पृष्ठों का उपयोग करना चाहिए। यदि आप कार्यान्वयन नॉन पॉज़िक्स कंप्लांट एक्स और एक्सपी मैन पेज अलग हो सकते हैं।
andcoz

@Tyilo मेरा उत्तर देख
Babken वर्दान्यान

8

ये सेक्शन नंबर हैं। बस टाइप करें man manया खुले कोनकोर और टाइप मैन: // मैन और आप देखेंगे कि ये सेक्शन क्या हैं।


7

अक्सर, एक पुरुष पृष्ठ को कोष्ठक में संलग्न अनुभाग के साथ प्रत्यय के माध्यम से संदर्भित किया जाता है, उदाहरण के लिए:

read(2)

इस शैली के दो मुख्य लाभ हैं:

  • यह तुरंत स्पष्ट हो जाता है कि आप एक आदमी पृष्ठ का संदर्भ देते हैं - अर्थात आप 'cf' जैसा कुछ लिख सकते हैं। पढ़ें (3) 'के बजाय' cf. पढ़ने के अनुभाग 3 आदमी पृष्ठ '
  • यदि कई खंडों में एक ही नाम वाले मैन पेज हैं, तो अनुभाग निर्दिष्ट करना अधिक सटीक है

मैन पेज अनुभागों में आयोजित किए जाते हैं, उदाहरण के लिए धारा 1 में सभी उपयोगकर्ता कमांड मैन पेज शामिल हैं, धारा 2 सिस्टम कॉल के लिए सभी मैन पेज, धारा 3 पुस्तकालय कार्यों आदि के लिए है।

कमांड लाइन पर, यदि आप स्पष्ट रूप से उस अनुभाग को निर्दिष्ट नहीं करते हैं जो आपको पहले मेल मैन पेज मिलता है, डिफ़ॉल्ट सेक्शन ट्रैवर्सल ऑर्डर में:

$ man read

BASH_BUILTINS(1)फेडोरा पर प्रदर्शित करता है। कहाँ पे

$ man 2 read

read()सिस्टम कॉल के लिए मैन पेज प्रदर्शित करता है ।

ध्यान दें कि अनुभाग की स्थितिगत विशिष्टता पोर्टेबल नहीं है - जैसे कि सोलारिस पर आप इसे इस तरह निर्दिष्ट करेंगे:

$ man -s 2 read

आमतौर पर, man manकुछ उपलब्ध वर्गों को भी सूचीबद्ध करता है। लेकिन जरूरी नहीं कि सभी। सभी उपलब्ध अनुभागों को सूचीबद्ध करने के लिए डिफ़ॉल्ट मैन पथ या पर्यावरण चर में सूचीबद्ध सभी निर्देशिकाओं के उपनिर्देशिका को सूचीबद्ध कर सकते हैं $MANPATH। उदाहरण के लिए फेडोरा 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

( pPOSIX मैन पेज के साथ समाप्त होने वाले अनुभाग )

किसी अन्य भाषा में एक आदमी पृष्ठ देखने के लिए (यदि उपलब्ध हो) एक भाषा से संबंधित पर्यावरण चर सेट कर सकता है, जैसे:

$ 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

ये "जेनेटिक" यूनिक्स के लिए वास्तविक संख्या है। POSIX संख्याओं को परिभाषित नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.