3 8 善用 Linux Programmer's Manual - ianchen0119/AwesomeCS GitHub Wiki
Linux man-pages 提供與 Linux kernel 以及 GNU C library 提供的 user-space API 有關的詳細資訊,其主要分為 8 個章節,主題如下:
1. User commands (Programs)
2. System calls
3. Library calls
4. Special files (devices)
5. File formats and configuration files
6. Games
7. Overview, conventions, and miscellaneous
8. System management commands
實際案例
Unix-like 的作業系統幾乎都內建了 Programmer's Manual,它可以幫助我們查找 C 語言函式的定義。
若我想知道 sem_init()
的定義,便可以直接在終端機輸入以下命令:
man sem_init
上圖 SEM_INIT(3) 之中的數字 3 表示 sem_init()
屬於函式庫呼叫,並且詳述了它被實作於哪一個函式庫以及使用方式 (呼叫函式時應傳入的參數以及應用場景等)。
安裝
如果你無法在 Linux 作業系統查閱 Man pages ,請使用以下命令安裝:
$ sudo apt-get install manpages # 涵蓋 GNU/Linux 的基本操作
$ sudo apt-get install manpages-dev # GNU/Linux 的相關 API
$ sudo apt-get install manpages-posix # POSIX 所定義公用程式的方法
$ sudo apt-get install manpages-posix-dev # POSIX 的標頭檔以及函式庫呼叫的方法
小技巧
1. 開啟符合關鍵字的 man page:
man -a keyword
2. 列出符合關鍵字的檔案路徑,並詢問是否要開啟該檔案:
man -K keyword
3. 列出所在章節/查詢指定章節
以 pritf
為例,在輸入命令時加入 -aw
參數,man page 就會回傳 pritf 所在的章節。
man -aw printf
/usr/share/man/man1/printf.1
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man/man1/printf.1
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man/man3/printf.3
查詢結果顯示它會出現在 man page 當中的第一章和第三章,若我們想要查詢的是 Library call,則可以在查詢目標之前加入指定章節:
man 3 printf
若你覺得麻煩不想分開查閱,也可以在命令加入 -a
參數一次查看所有內容:
man -a printf