linux/unix man用法

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

最近開始學習linux c編程,需要用到很多庫函數和c標準庫函數,發現原來man命令還可以用來查詢函數原型。

比如輸入man lseek可以擷取函數lseek的原型和所屬標頭檔。

有些函數名既是linux命令又是系統調用,如mkdir,可以輸入man 2 mkdir擷取該函數原型。只輸入man mkdir擷取的是命令mkdir的協助。

對於庫函數可以輸入man 3 <庫函數名>  獲得協助資訊。man 3 opendir

對於系統開發經常需要查詢函數還是非常方便的,另外在vim中可以用shift + k查詢。


以下轉自:http://blog.csdn.net/sunyubo458/article/details/5935248

在unix下面做開發,查看man手冊是非常必要,也是非常需要的。如何更快速的使用man?

當然,平時有不會的命令,或者記不住命令的參數時,就會man一下,可是在unix man手冊裡有這樣一個現象,比如你想查看一下read()這個C庫函數的功能和參數以及用法。man read其結果呢?只會出shell的read命令的相關協助資訊,沒有出現read()庫函數的相關內容。

為何?

那是因為man的搜尋順序是根據man.cf中的設定來進行的。當man找到一個匹配時,就不再往下找了。所以當你想查看一下read()函數而不是想瞭解 read命令的使用時,光使用man read 是肯定不行。在我用的機子環境:

Machine hardware: sun4u

OS version: 5.8

Processor type: sparc

Hardware: SUNW,Ultra-250下.

這時使用man -s 2 read, 就強制man只搜尋section 2中的檔案(注意了:根據不同版本的unix可能不一樣哦)

問題來了,什麼是section?

Unix的man page(不用想太多了,man page 就是所說的參考手冊頁)是按照節(section)來組織的.當我們使用man ls的時候,會看到ls(1),這個括弧中的1就表示ls的man page位於section 1。section通常是由一個主section名和一個可選的次section名組成.主section名通常是 一個數字,次section名通常是一個或多個字母組成. Solaris中各 section 所對應的內容:

1: User Commands and Utilities

2: System Calls

3: C Library Functions

4: File formats

5: Headers,tables and macros

6: Games and demos

7: Device and Network Interfaces

8: Maintance and Accounting commands

9: Device driver interfaces

使用-s參數就是要指寫在哪一個session裡找。要記住了,不同的版本,數字可能不一樣,就是這樣的方法了,試一下數字就可了,格式如:man -s 2 read.

 

附:man指令的其他相關資料

Linux系統提供了大量命令和許多工具 + 生產力軟體。一些常用命令和實用軟體的資訊,我們可以使用系統提供的線上說明手冊擷取。在 Linux線上說明手冊上,幾乎每個命令都有說明。因此,當使用者對於Linux上的一個命令不會用或是不太瞭解時,就請使用線上說明命令。

Linux系統的線上手冊中有大量的可用資訊,根據其內容分成若干節。

1. 章節說明:

1 一般使用者的命令

2 系統調用的命令

3 C語言函數庫的命令

4 有關驅動程式和系統裝置的解釋

5 設定檔的解釋

6 遊戲程式的命令

7 其他的軟體或是程式的命令

8 有關係統維護的命令

n shell內部命令章節號

2. man 命令

這個命令格式化並顯示線上的手冊頁。通常使用者只要在命令 man 後,輸入想要擷取的命令的名稱(例如 ls ),man 就會列出一份完整的說明,其內容包括命令文法、各選項的意義以及相關命令等。

該命令的一般形式為∶man [選項] 命令名稱

命令中主要選項的含義分別為∶

-M 路徑 指定搜尋 man 手冊頁的路徑

-S 章節列表 指定所要查看的章節列表

-a 顯示所有章節

章節號 指定所要查看的章節號

(1)所有的手冊頁都屬於一個特定的領域,用一個字元來表示。

Linux下最通用的領域及其名稱及說明如下:

領域 名稱 說明

1 使用者命令, 可由任何人啟動的。

2 系統調用, 即由核心提供的函數。

3 常式, 即庫函數。

4 裝置, 即/dev目錄下的特殊檔案。

5 檔案格式描述, 例如/etc/passwd。

6 遊戲, 不用解釋啦!

7 雜項, 例如宏命令包、慣例等。

8 系統管理員工具, 只能由root啟動。

9 其他(Linux特定的), 用來存放核心例行程式的文檔。

n 新文檔, 可能要移到更適合的領域。

o 老文檔, 可能會在一段期限內保留。

l 本地文檔, 與本特定系統有關的。

例如:man ls就會有LS(1)

(2)man的一些常用參數和用法

man -a cmd

開啟所有領域內的同名協助,例如 man fam ,你首先會進入一個fam(1M)的命令版fam協助,你再按q鍵

就會進入FAM(3X),庫函數版的協助

man -aw cmd

顯示所有cmd的所有手冊檔案的路徑,如 man -aw fam 就是

/usr/share/man/man1/fam.1m.gz

/usr/share/man/man3/fam.3x.gz

man 領域代號 cmd

直接指定特定領域內搜尋手冊頁,如 man 3 fam 直接進入庫函數版的協助

man -M cmd

指定手冊檔案的搜尋路徑,如 man -M /home/mysql/man mysql 顯示的就是你安裝的mysql的協助,

而不是系統內建的舊版mysql的協助

man cmd | col -b > cmd.txt

把man手冊資訊輸出到文字檔

LANG=語言代號

man -w cmd

man 特定語言manpage檔案的路徑

查看特定語言版本的手冊頁

例如,要查看mplayer的中文man

shell> LANG=zh

shell> man -w mplayer

/usr/share/man/zh/man1/mplayer.1.gz

新開一個shell視窗(或在原視窗 shell> LANG=en_US.UTF-8)

shell> man /usr/share/man/zh/man1/mplayer.1.gz

(3)man的設定檔/etc/man.config

如果你不想每次man cmd都要用-M指定路徑,那麼可以通過修改設定檔,新增內容如

MANPATH /home/mysql/man

man在各領域的搜尋次序可以通過修改

MANSECT 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o

實現,一般不推薦修改。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.