Gentoo man手册指南
轉載:http://www.gentoo.org/doc/zh_cn/man-guide.xml#doc_chap2
http://blog.csdn.net/andyelvis/article/details/4044938
使用man命令技巧
?
Gentoo man手冊指南
內容:????????1. 簡介2. 使用man結構1.????????????? 簡介
man程序
每一個人在他的linux人生中都使用過它。它就是man命令。盡管man程序本身的結構看起來非常簡單,然而,它除了滾動手冊頁之外,還有一些其他額外的功能。希望這篇文檔能為你點亮man的那些功能。
Man結構
手冊頁主要報存在/usr/share/man目錄下。 其實,只要是列在MANPATH環境變量的路徑中的手冊頁,man都能夠找到。Gentoo一般將MANPATH變量保存在/etc/env.d中。在這些目錄中,保存了一些結構為manX的文件夾。其中X表示章節號。一個標準的man布局可能如下所示:
| 代碼?1.1: 標準man結構 |
| $ ls /usr/share/man | grep man man0p man1 man1p man2 man3 man3p man4 man5 man6 man7 man8 man9 mann |
實際的章節號顯示的很標準,但是注意這里有一個mann和幾個man#p文件夾。下表列舉了上面man目錄,以及其中包含了什么:
| man目錄 | 描述 |
| man0p | 和其他有目錄名中有p的目錄一樣,這個p表示POSIX。在這個目錄下的手冊頁描述各種POSIX頭文件的功能。?? |
| man1 | 這一章節介紹標準命令。大部分程序將其手冊頁放在這里。因此,這一章節將會是最大的。?? |
| man1p | 這一章節描述POSIX版本的命令。因為這里只描述基本的命令,因此會比man1小很多。?? |
| man2 | 這一章節描述Linux內核系統調用。 |
| man3 | 這一章節描述標準的c函數庫。 |
| man4 | 這一章節描述特殊的設備。這些設備通常是面向內核的,不過Xorg-X11在這里也有一項。?? |
| man5 | 這一章節描述一些特定文件的結構以及程序將使用哪些文件。讀者們可能對以下參考比較熟悉,man 5 portage是對portage文件結構的一些描述,還有man 5 make.conf是對make.conf文件結構的描述。?? |
| man6 | 這一章節介紹游戲和一些特殊玩具。 |
| man7 | 這一章節描述一些標準和一些雜項。標準包括比如字符集,SQL語句,ISO標準以及正則表達式。?? |
| man8 | 這一章節描述管理員命令(通常由root用戶執行的那些命令)。?? |
| man9 | 這一章節很少。應該是包含內核一些部分的文檔。?? |
| mann | 這一章節主要包含Tcl/Tk的一些文檔。n表示新的(new)。?? |
首先第一行 MKDIR(1),顯然,MKDIR是命令的大寫,那么為什么有個(1)呢,那是因為man手冊頁有如下的規定:
| l | 本地文檔 | 與本特定系統有關的 |
| 1 | 用戶命令 | 可由任何人啟動的 |
| 2 | 系統調用 | 即由內核提供的函數 |
| 3 | 例程 | 即庫函數 |
| 4 | 設備 | 即/dev目錄下的特殊文件 |
| 5 | 文件格式描述 | 例如/etc/passwd |
| 6 | 游戲 | 不用解釋啦 |
| 7 | 雜項 | 例如宏命令包、慣例等 |
| 8 | 系統管理員工具 | 只能由root啟動 |
| 9 | 其他(Linux特定的) | 用來存放內核例行程序的文檔 |
| n | 新文檔 | 可能要移到更適合的領域 |
| o | 老文檔 | 可能會在一段期限內保留 |
MKDIR(1)表示該命令屬于Section 1,為用戶命令,類似的man apt-get會看到APT-GET(8),表示apt-get命令為系統管理工具。
“NAME”部分是該命令的名字和簡單的解釋,顯然,在命令行中要執行該命令要使用到它的名稱。
“SNOPSIS”是摘要部分,簡要解釋該命令如何使用,比如mkdir的摘要: mkdir [OPTION] DIRECTORY…,讀到這里便需要講解一下了:
“OPTIONS”左右有”[“和”]”,表示這些參數并不必須,但是可以使用。對應的DIRECTORY兩邊沒有”[]”,就是必須要加的參數了。 另外,它們后面都有”…” ,表示這些參數可以重復使用多次。至于OPTIONS具體怎么用,就要看DESCRIPTION部分了。下面舉幾個簡單的例子,并配合例子解釋:
盡管不是全部的細節,這里列舉了大部分人感興趣的手冊頁。然而,當你想了解某個章節是干什么的,查查這張表格是最快捷的方法了。下一章介紹如何通過man遍歷這里介紹的man結構。
2.????????????? 使用man結構
瀏覽man結構
現在我們知道了標準的man結構。我們開始通過命令查看。有時候我們希望減小我們的查找手冊頁的范圍。第一種方法是通過指定章節。比如找出對man中的章節的描述,我們可以使用man 章節號 intro:
| 代碼?2.1: 使用man intro找到章節號的描述 |
| $ man 3 intro (為了適合這個文檔,我們稍微修改了一下輸出) INTRO(3) Linux Programmer's Manual INTRO(3)NAMEintro - Introduction to library functionsDESCRIPTIONThis chapter describes all library functions excluding the libraryfunctions described in chapter 2, which implement system calls.There are various function groups which can be identified by aletter which is appended to the chapter number: .... |
遺憾的是,這樣做不一定行!幸運的是,我們可以通過另外一種方法查找那些可能有多個返回結構的命令(比如一個庫調用和系統命令有相同的命令時)。我們用-K參數,比如:
| 代碼?2.2: 使用man -K查找字符串 |
| $ man -K sleep /usr/share/man/man0p/time.h.0p.gz? [ynq] n /usr/share/man/man0p/unistd.h.0p.gz? [ynq] n /usr/share/man/man2/alarm.2.gz? [ynq] n /usr/share/man/man2/pause.2.gz? [ynq] n /usr/share/man/man2/futex.2.gz? [ynq] n /usr/share/man/man2/nanosleep.2.gz? [ynq] y /usr/share/man/man2/semop.2.gz? [ynq] q |
有時候輸出結果可能會很多。這時候最好指定更確切的關鍵字。現在我們知道怎么找到手冊頁了。接下來的章節介紹怎么查看手冊頁。
查看手冊頁
? 查看手冊頁有兩種方法。方法一,man [手冊頁名字]。方法二,man [章節] [手冊頁名字]。我們以bc為例子。我們可以查看到第一篇關于bc的手冊頁(章節號將會是1,因為這是章節號最小的包含bc命令的章節):
| 代碼?2.3: 查看默認手冊頁 |
| $ man bc bc(1) bc(1)NAMEbc - An arbitrary precision calculator language ... |
然而,如果我們要找POSIX版的呢?那么我可以用第二種形式:
| 代碼?2.4: 查看特定章節中的手冊頁 |
| $ man 1p bc BC(P) POSIX Programmer's Manual BC(P)NAMEbc - arbitrary-precision arithmetic language ... |
手冊頁顯示如上。現在我們查看到了手冊頁,接下來是怎么在上面工作。下一章介紹如何瀏覽和搜索。
瀏覽和搜索手冊頁
瀏覽手冊頁非常簡單。使用向上和向下鍵一行一行翻閱。使用向上翻頁和向下翻頁鍵一頁一頁翻閱。注意,使用這樣的瀏覽指令是假設環境變量PAGER設成了默認的less。less還有其他一些瀏覽命令。不過方向鍵一般足夠了。
| 代碼?2.5: 另外的less瀏覽鍵 |
| e ^E j ^N CR * 前進一行(或N行)y ^Y k ^K ^P * 后退一行(或N行)f ^F ^V SPACE * 前進一個窗口(或N行)b ^B ESC-v * 后退一個窗口(或N行)z * 前進一個窗口(將窗口設置到N)w * 后退一個窗口(將窗口設置到N)ESC-SPACE * 前進一個窗口,在文件末尾不停止d ^D * 前進半個窗口(將這半個窗口設置到N)u ^U * 后退半個窗口(將這半個窗口設置到N)ESC-) RightArrow * 向左半個屏幕寬(或N個位置)ESC-( LeftArrow * 向右半個屏幕寬(或N個位置)F 一直前進,像"tail -f"一樣 |
搜索更加有趣。最基本的搜索指令是 /字符串和?字符串。 第一個版本向前搜索,第二個版本向后搜索。 這里的字符串是正則表達式字符串,在nman 7 regex中有描述。 我們以搜索emerge的-D為例,首先找出emerge的手冊頁:
| 代碼?2.6: 找出emerge的手冊頁 |
| $ man emerge |
然后,在屏幕上,按/就能顯示出向前搜索的提示。我們輸入搜索字符串:
| 代碼?2.7: 顯示向前搜索提示 |
| gracefully handles updating installed packages to newer releases as well.It handles both source and binary packages, and it can be used to createbinary packages for distribution.EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES /\-D |
| 注意: \符號使用來換碼-符號。\一般用作正則表達式的一部分。 |
這將搜索手冊頁,然后將鎖定到被搜索的項:
| 代碼?2.8: 向前搜索結果 |
| --deep (-D)When used in conjunction with --update, this flag forces emerge to consider the entiredependency tree of packages, instead of checking only the immediate dependencies ofthe packages. As an example, this catches updates in libraries that are not directlylisted in the dependencies of a package. |
如果你你搜索到結果之后還想再繼續搜索同樣的字符串,只要再次按/鍵,然后回車(即,不要再輸入搜索字符串)就可以了。 這將默認搜索上一次使用的搜索字符串。現在已經找到我們搜索的選項的手冊頁,上面解釋了選項含義。 再比如man 5 portage手冊頁。上面列了使用到的文件并解釋了其用途。向前搜索幾次就能找到結果,不過也有一個簡單的方法 來處理這個問題。用第二個搜索方法向后搜索。我們用這個方法查找package.unmask的描述。首先顯示man 5 portage手冊頁:
| 代碼?2.9: 顯示man 5 portage手冊頁 |
| $ man 5 portage |
然后按SHIFT+g,將把你帶到手冊頁末尾:
| 代碼?2.10: 按SHIFT+g之后到達手冊頁末尾 |
| SEE ALSOemerge(1), ebuild(1), ebuild(5), make.conf(5)Portage 2.0.51 Jan 2004 PORTAGE(5) lines 418-442/442 (END) |
現在,我們繼續用?字符串方法向后搜索選項。首先按?鍵顯示出搜索提示,然后輸入package.unmask回車,我們這樣查詢:
| 代碼?2.11: 指定我們的搜索 |
| SEE ALSOemerge(1), ebuild(1), ebuild(5), make.conf(5)Portage 2.0.51 Jan 2004 PORTAGE(5) ?package.unmask |
然后按回車顯示出搜索結果:
| 代碼?2.12: 我們的搜索結果 |
| package.unmaskJust like package.mask above, except here you list packages you want to unmask.Useful for overriding the global package.mask file (see below). Note thatthis does not override packages that are masked via KEYWORDS. ... |
搜索完成!注意,和使用/一樣,用?搜索時,不輸入搜索字符串會默認用上一次搜索字符串。
結論
這一章總結man指導。希望這篇指導點亮手冊頁瀏覽的一線曙光,并給有經驗的用戶一點新的提示。 喜歡用其他方法瀏覽手冊頁的用戶也可以用以下工具:
- app-text/man2html - 一個將手冊頁轉成html的程序
- app-text/tkman - 一個基于tk的手冊頁瀏覽器
KDE的網頁瀏覽器Konqueror也能用來瀏覽手冊頁。只要在地址條上輸入man:。
?
打印
最簡單的辦法,以mkdir為例:
man -t mkdir > mkdir_man.ps可以直接打印ps,打算發給別人打印的話,轉換成pdf也比較方便:
ps2pdf mkdir_man.ps mkdir_man.pdf轉載于:https://www.cnblogs.com/blueyunchao0618/archive/2013/04/15/3022397.html
總結
以上是生活随笔為你收集整理的Gentoo man手册指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串字符和数字分割
- 下一篇: [HDU] 2553 N皇后问题-简单深