iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
Software Development

微自幹的作業系統輕旅行系列 第 20

善用 Linux man-pages

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

Reference


上一篇
Makefile
下一篇
教練,我想自幹作業系統!
系列文
微自幹的作業系統輕旅行41
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言