Vì vậy, ví dụ, khi tôi gõ man ls
Tôi thấy LS(1)
. Nhưng nếu tôi gõ man apachectl
Tôi thấy APACHECTL(8)
và nếu tôi gõ man cd
Tôi sẽ kết thúc với cd(n)
.
Tôi đang tự hỏi ý nghĩa của các số trong ngoặc là gì, nếu chúng có bất kỳ.
Số tương ứng với phần của hướng dẫn mà trang đó đến từ; 1 là các lệnh của người dùng, trong khi 8 là các thứ sysadmin. Trang người đàn ông cho chính con người (man man
) giải thích nó và liệt kê những cái tiêu chuẩn:
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.
Có một số thuật ngữ nhất định có các trang khác nhau trong các phần khác nhau (ví dụ: printf
như một lệnh xuất hiện trong phần 1, vì hàm stdlib
xuất hiện trong phần 3); trong trường hợp như vậy, bạn có thể chuyển số phần cho man
trước tên trang để chọn cái nào bạn muốn hoặc sử dụng man -a
để hiển thị mọi trang phù hợp trong một hàng:
$ man 1 printf
$ man 3 printf
$ man -a printf
Bạn có thể cho biết phần nào một thuật ngữ rơi vào với man -k
(tương đương với lệnh apropos
). Nó cũng sẽ thực hiện khớp chuỗi con (ví dụ: nó sẽ hiển thị sprintf
nếu bạn chạy man -k printf
), vì vậy bạn cần sử dụng ^term
để hạn chế nó:
$ 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)
Lịch sử của các số phần này quay trở lại bản gốc Hướng dẫn lập trình viên Unix của Thompson và Ritchie vào năm 1971.
Các phần ban đầu là
konqueror cũng mô tả các phần không chuẩn: (cảm ơn @ greg0ire cho ý tưởng)
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
Điều đó có nghĩa là đã được mô tả, nhưng tôi cũng muốn thêm rằng mỗi phần có trang hướng dẫn đặc biệt với phần giới thiệu: intro
. Ví dụ: xem man 1 intro
hoặc là man 3 intro
và như thế.
Từ trang 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]
Về lý do tại sao chúng tách biệt như vậy - có một số chồng chéo. Một số trang nhất định tồn tại trong nhiều phần tùy thuộc vào ý của bạn.
Chẳng hạn, so sánh man crontab
với man 5 crontab
- rất có thể cái sau là thứ bạn muốn tìm.
Đây là số phần. Chỉ loại man man
hoặc mở konqueror và gõ man: // man và bạn sẽ thấy những phần này là gì.
Thông thường, một trang man được tham chiếu thông qua việc thêm vào nó với phần được đặt trong ngoặc đơn, ví dụ:
read(2)
Phong cách này có hai ưu điểm chính:
Các trang man được tổ chức theo từng phần, ví dụ: Phần 1 bao gồm tất cả các trang man lệnh người dùng, Phần 2 tất cả các trang man cho các cuộc gọi hệ thống, Phần 3 dành cho các chức năng thư viện, v.v.
Trên dòng lệnh, nếu bạn không chỉ định rõ ràng phần bạn nhận được trang man khớp đầu tiên, theo thứ tự truyền tải phần mặc định, ví dụ:
$ man read
hiển thị BASH_BUILTINS(1)
trên Fedora. Ở đâu
$ man 2 read
hiển thị trang man cho cuộc gọi hệ thống read()
.
Lưu ý rằng đặc điểm kỹ thuật vị trí của phần này không khả dụng - ví dụ: trên Solaris bạn sẽ chỉ định nó như thế này:
$ man -s 2 read
Thông thường, man man
Cũng liệt kê một số phần có sẵn. Nhưng không nhất thiết là tất cả. Để liệt kê tất cả các phần có sẵn, người ta có thể liệt kê các thư mục con của tất cả các thư mục được liệt kê trong đường dẫn man mặc định hoặc biến môi trường $MANPATH
. Ví dụ: trên hệ thống Fedora 23 với một số gói phát triển được cài đặt /usr/share/man
Có các thư mục con sau:
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
Các thư mục có tiền tố man
đại diện cho từng phần - trong khi các thư mục khác chứa các phần được dịch. Do đó, để có được danh sách các phần không trống, người ta có thể ra lệnh như thế này:
$ find /usr/share/man -type f | sed '[email protected]^.*/man\(..*\)/.*[email protected]\[email protected]' \
| sort -u | column
0p 1p 3 4 6 8
1 2 3p 5 7
(các phần kết thúc bằng p
là các trang man POSIX)
Để xem trang man bằng ngôn ngữ khác (nếu có), người ta có thể đặt biến môi trường liên quan đến ngôn ngữ, ví dụ:
$ LC_MESSAGES=de_DE man read
Ngoài ra, mỗi phần nên có một trang giới thiệu có tên intro
, ví dụ: có thể xem qua:
$ man 2 intro
Các định nghĩa cho SVr4 là:
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
Đây là cách đánh số thực tế cho một UNIX "di truyền". POSIX không xác định số.