Bir sayfadaki sayılar ne anlama geliyor?


474

Mesela ben yazı man lsyazdığım zaman LS(1). Ama yazarsam ve man apachectlgörürsem en sonunda yazarım .APACHECTL(8)man cdcd(n)

Varsa parantez içindeki sayıların öneminin ne olduğunu merak ediyorum.




4
@PeterMortensen Bu nedenle SuperUser ve Unix / Linux ve ServerFault ile AskUbuntu ve Apple'ın birleştirilmesi gerekir.
Chloe

Bir yandan, kendi arama siparişiniziexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh

Bu, devasa bir UX hatasıdır. Dijital dokümantasyonda bölüm numaraları olmamalıdır; açıklayıcı adlara ve köprülere sahip olmalıdır. Belgelendirmeyi başardıklarına inanmıyorum , bu soruyu 121000 defa incelendiklerini karıştırdı.
Iono

Yanıtlar:


496

Sayı, kılavuzun bu sayfanın hangi bölümünden geldiğine karşılık gelir; 1 kullanıcı komutudur, 8 ise sysadmin maddesidir. İnsanın man sayfası ( man man) açıklar ve standart olanları listeler:

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.

Farklı bölümlerde farklı sayfalara sahip belirli terimler vardır (örneğin printf, bölüm 1'de bir komut olarak, stdlibfonksiyon bölüm 3'te göründüğü gibi ); Böyle durumlarda man, hangisini istediğinizi seçmek için bölüm numarasını sayfa adından önce geçirebilir veya man -aeşleşen her sayfayı arka arkaya göstermek için kullanabilirsiniz :

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

Bir terimin hangi bölümlere girdiğini görebilirsiniz man -k( aproposkomuta eşdeğer ). Subring eşleşmelerini de yapacak (örneğin sprintfkoşuyorsanız gösterecektir man -k printf), bu nedenle ^termsınırlandırmak için kullanmanız gerekir:

$ 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
Bu kesinlikle açıklar. Belirli bir komut için birden fazla man sayfasının olup olmadığını söylemenin kolay bir yolu var mı?
Wilduck

2
@Wil Evet, düzenlendi
Michael

11
Bu bölüm numaralarının Linux içindir. 1, 3 ve 6, bütün unix varyantları AFAIK'te aynıdır, fakat diğerleri ve yalnız olmayan bölümler farklı olabilir. Genellikle man X introbölümde ne olduğunu açıklar X.
Gilles

2
@KeithB: 4,5,7,8 farklı bazı unices kullandım. Digital Unix'in (OSF1) sahip olduğu ve Solaris'in hala sahip olduğu: 4'ü dosya formatı, 5'i yanlış, 7'si de aygıtlar. Solaris ayrıca yönetici komutlarını da 1 m'ye yerleştiriyor. Sistem çağrılarının 2'de evrensel olduğunu düşünüyorum, ancak bazı sistemlerde 2'de bazı C kütüphanesi arayüzleri de var (adlandırma sistemi etrafında ince sargılar olması gerekiyorsa).
Gilles

4
Huh, kim bir kullanma kılavuzu kullanmak için bir kılavuza ihtiyacınız olacağını düşündü ... Şimdiye man mandek hiç yapmadım .
Matt Clark

59

Bu bölüm numaralarının geçmişi, 1971'de Thompson ve Ritchie'nin orijinal Unix Programcı El Kitabı'na dayanmaktadır .

Orijinal bölümler

  1. Komutları
  2. Sistem çağrıları
  3. Altyordamlar
  4. Özel dosyalar
  5. Dosya formatları
  6. Kullanıcı tarafından korunan programlar
  7. Çeşitli

Aslında 70'lerden daha çok şey. 80'lerden sanıyordum.
Rolf,

"Çeşitli", öncelikle "belirli bir API bitiş noktası yerine tüm alt sistem veya genel Unix özelliği hakkında geniş bilgi" anlamına gelir. Örneğin bakınız pipe(7), tcp(7)(ve diğer bazı ağ adam sayfaları) pthreads(7), boot(7), regex(7)vs. 7. Bölümde başka şeyler gibi, hem var ascii(7)(ASCII tablosunun) ve man(7)(nasıl bir adam sayfası yazmak için) ancak geniş docs sayfalar farkla vardır 7. bölümdeki en yararlı şeyler deneyimim.
Kevin,

31

konqueror ayrıca standart olmayan bölümleri de açıklar: (fikir için @ greg0ire sayesinde)

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

Ne var zaten tarif demektir, ama aynı zamanda her bölüm tanıtımıyla özel manuel sayfası vardır eklemek istiyor: intro. Örneğin, bkz. man 1 introVeya man 3 introbenzeri.


1
Bunu Fedora kurulumumda görmüyorum. Man X intro standart değil mi?
beatgammit

@tjameson Paketiniz var man-pagesmı?
php kodlayıcı

15

Gönderen manman:

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]

Neden böyle ayrı olduklarına gelince - biraz örtüşme var. Belirli man sayfaları ne demek istediğine bağlı olarak birden fazla bölümde var.

Örneğin, karşılaştırma man crontabile man 5 crontab- şansını ikincisi yukarı bakmak gerekiyordu biridir vardır.


Ve ne man1pve man3p?
Tyilo

Ve kendi man sayfalarımı nereye yerleştirmeliyim ~/man?
Tyilo

Farklı numaralar olduğunu biliyordum ama kafiyeli olduğunu bilmiyordum. Teşekkürler
user606723 4:11

1
1p, kılavuzun standart versiyonudur. Taşınabilir kod yazmak istiyorsanız, yalnızca Xp man sayfalarını kullanmalısınız. Uygulamanız posix uyumlu değilse X ve Xp man sayfaları değişebilir.
andcoz

@Tyilo cevabımı gör
Babken Vardanyan

8

Bunlar bölüm numaraları. Sadece man mankonqueror yazın veya açın ve man: // man yazın; bu bölümlerin ne olduğunu göreceksiniz.


7

Genellikle, bir man sayfasına, parantez içine alınmış olan bölüm eklenmesiyle başvurulur, örneğin:

read(2)

Bu tarz iki ana avantaja sahiptir:

  • Bir man sayfasını referans gösterdiğiniz hemen bellidir - yani 'cf. (3) 'yerine' cf. 3'üncü okuma sayfası sayfası '
  • Birden fazla bölüm aynı ada sahip man sayfalarını içeriyorsa, bölümün belirtilmesi daha kesindir

Man sayfaları bölümler halinde düzenlenmiştir, örneğin Bölüm 1, tüm kullanıcı komutu man sayfalarını, Bölüm 2, tüm sistem çağrıları man sayfalarını, Bölüm 3 ise kütüphane fonksiyonları içindir.

Komut satırında, ilk eşleşen adam sayfasını aldığınız bölümü açıkça belirtmezseniz, varsayılan bölüm geçiş sırasına göre, örneğin:

$ man read

BASH_BUILTINS(1)Fedora'da görüntüler . Nerede

$ man 2 read

read()sistem çağrısı için man sayfasını görüntüler .

Bölümün konumsal özelliklerinin taşınabilir olmadığını unutmayın - örneğin Solaris'te şöyle belirtin:

$ man -s 2 read

Genellikle, man manmevcut bölümlerden bazılarını da listeler. Ama mutlaka hepsi değil. Mevcut tüm bölümleri listelemek için, varsayılan adam yolunda veya ortam değişkeninde listelenen tüm dizinlerin alt dizinleri listelenebilir $MANPATH. Örneğin, bazı geliştirme paketlerinin kurulu /usr/share/manolduğu bir Fedora 23 sisteminde aşağıdaki alt dizinler bulunur:

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Öneki bulunan dizinler her bölümü temsil eder - diğerlerinde çevrilmiş bölümler bulunur. Böylece, boş olmayan bölümlerin bir listesini almak için, şöyle bir komut verilebilir:

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

(ile biten bölümler pPOSIX man sayfalarıdır)

Bir kılavuz sayfasını başka bir dilde görüntülemek için (varsa), dille ilgili bir ortam değişkeni ayarlanabilir, örneğin:

$ LC_MESSAGES=de_DE man read

Ayrıca, her bölüm intro, örneğin:

$ man 2 intro

4

SVr4 için tanımlar:

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

Bunlar "genetik" bir UNIX için gerçek numaralandırmadır. POSIX sayıları tanımlamaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.