天天看點

《UNIX/Linux 系統管理技術手冊(第四版)》——1.9 手冊頁和其他聯機文檔

本節書摘來自異步社群《unix/linux 系統管理技術手冊(第四版)》一書中的第1章,第1.9節,作者:【美】evi nemeth , garth snyder , trent r.hein , ben whaley著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

unix/linux 系統管理技術手冊(第四版)

手冊頁通常稱為“man手冊頁”,因為要用man指令來閱讀,它構成了傳統的“聯機”文檔(當然,現如今所有的文檔都以這樣或者那樣的形式線上存在)。man手冊頁一般伴随系統一起安裝。針對特定程式的man手冊頁通常随着安裝新軟體包一同安裝。

man手冊頁對單條指令、驅動程式、檔案格式或者庫例程給出簡潔的說明。它們不會解釋諸如“我該怎樣安裝一個新裝置?”或者“為什麼我們的系統這麼慢?”這樣更普通的話題。對于這些問題來說,使用者可以參考廠商提供的系統管理指南(參見1.10節),對于linux系統來說,也可以從“linux建檔項目(linux documentation project)”中獲得文檔。

1.9.1 手冊頁的組織

所有的系統都把man手冊頁分成若幹節,但是在各個節的規定上面,不同系統間略有差別。我們的示例系統所采用的基本結構如表1.3所示。

《UNIX/Linux 系統管理技術手冊(第四版)》——1.9 手冊頁和其他聯機文檔

手冊頁中有些節會做進一步細分。例如,solaris的第3c節包含了有關系統c标準庫的手冊頁;有些系統的第8節沒有内容,而把系統管理指令放到第1節。許多系統撤銷了遊戲和示範,第6節什麼内容都沒有。很多系統在手冊中都有一個稱之為l(l的小寫)的節,用于本地手冊頁。

對于大多數主題而言,各節的确切結構并不重要,因為隻要有比對的手冊頁,man指令就會找到它。使用者隻需要對出現在不同節内同名的主題,知道各節的規定就行了。例如,passwd既是一條指令,也是一個配置檔案,是以在第1節和第4或第5節都有關于它的手冊項。

1.9.2 man:讀取手冊頁

mantitle指令格式化特定的手冊頁并通過more、less指令,或者在pager環境變量中指定的任何程式把手冊頁發送到使用者終端。title通常是一個指令、裝置、檔案名或者庫例程名。手冊中的各節大緻是按照數字順序進行搜尋的,不過通常首先搜尋描述指令的那些節(第1、8和6節)。

指令格式mansection title可讓使用者從某個特定的節擷取手冊頁。于是在大多數系統上,man sync指令可得到sync指令的手冊頁,man 2sync指令可得到系統調用sync的手冊頁。

在solaris上,必須在節号前面加上-s标志;例如,man -s 2 sync。

man -kkeyword或者aproposkeyword輸出一份手冊頁清單,在其單行概要中有keyword。例如:

《UNIX/Linux 系統管理技術手冊(第四版)》——1.9 手冊頁和其他聯機文檔

keyword指代的庫可能已經過期了。如果要向系統添加man手冊頁,需重構這個庫檔案,在ubuntu、suse上使用mandb指令,在red hat上使用makewhatis指令,在solaris、hp-ux和aix上使用catman -w指令。

1.9.3 手冊頁的儲存

手冊頁的nroff輸入通常儲存在/usr/share/man/下的多個目錄中。linux系統會把它們用gzip壓縮以節省空間(指令man知道如何當場将它們解壓縮)。如果在/var/cache/man或者/var/share/man下的适當目錄有寫入權限,那麼指令man會在那裡維護一個有格式的手冊頁的緩存,但是這存在安全風險。大多數系統會在安裝的時候預處理一次手冊頁的格式(參考catman指令),或者根本不做預處理。

除了傳統的nroff格式之外,solaris還支援sgml格式的手冊頁。sgml格式手冊頁相關各節的目錄都在/usr/share/man下。

指令man會在若幹不同的目錄中尋找使用者需要的手冊頁。在linux系統上,使用者可以使用manpath指令來确定搜尋路徑。這個搜尋路徑(在ubuntu中)一般為:

如果有必要,使用者可以設定自己的環境變量manpath來覆寫預設路徑:

export manpath=/home/share/localman:/usr/share/man

有些系統能讓使用者為手冊頁設定一個自定義的系統級預設搜尋路徑,如果使用者想要維護平行的一套man手冊頁目錄樹(比如openpkg建立的目錄樹),就能夠用上這種功能。不過,如果使用者想要用手冊頁的形式釋出本地文檔,更簡單的做法是,用系統的标準打包機制打包,并把這些手冊頁放在标準的man目錄下。參考第12章了解有關軟體安裝和管理的更多知識。

1.9.4 gnutexinfo

linux系統包括一種補充的聯機手冊頁系統,叫做texinfo。很久以前,gnu人士針對設定man頁面格式的nroff為at&t專有指令這一現實情況,發明了texinfo文檔。現在,我們已經有了gnu的groff來為我們完成這項工作,nroff的問題不再重要了,但它仍然在人們腦海裡陰魂不散。

雖然texinfo逐漸不用了,但仍有很少幾個gnu軟體包堅持用texinfo檔案而不是man頁面來提供自身的文檔。使用者可以把讀取texinfo的指令info的輸出通過管道送給less指令,避開info指令内建的浏覽體系。幸運的是,采用texinfo提供文檔的軟體包通常會安裝訓示性的man頁面,告訴使用者使用info指令來閱讀了解那些特殊的軟體包。使用者可以堅持使用man指令來查找手冊,隻有在被告知要采用info時再這麼做,這樣的做法很保險。指令info info将會把使用者帶入texinfo的黑暗神秘世界。

繼續閱讀