在線求助 man page(轉)


Linux系統的在線求助man page與info page

先來了解一下Linux有多少命令呢?在文本模式下,你可以直接按下兩個[Tab]按鍵,看看總共有多少命令可以讓你用?

[vbird@www ~]$ <==在這里不要輸入任何字符,直接輸入兩次[tab]按鍵 
Display all 2450 possibilities? (y or n) <==如果不想要看,按 n 離開

既然鳥哥說不需要背命令,那么我們如何知道每個命令的詳細用法?還有,某些配置文件的內容到底是什么? 這個可就不需要擔心了!因為在Linux上開發的軟件大多數都是自由軟件,而這些軟件的開發者為了讓大家能夠了解命令的用法, 都會自行制作很多的文件,而這些文件也可以直接在在線就能夠輕易的被使用者查詢出來喔!很不賴吧! 這根本就是『聯機幫助文件』嘛!哈哈!沒錯!確實如此。我們底下就來談一談,Linux到底有多少的在線文件數據呢?如上所示,鳥哥安裝的這個系統中,少說也有2000多個以上的命令可以讓vbird這個賬號使用。 那在Linux里面到底要不要背『命令』啊?可以啊!你背啊!這種事,鳥哥這個『忘性』特佳的老人家實在是背不起來 @_@ ~當然啦,有的時候為了要考試(例如一些認證考試等等的)還是需要背一些重要的命令與選項的! 不過,鳥哥主要還是以理解『在什么情況下,應該要使用哪方面的命令』為准的!

man page

嗄?不知道怎么使用date這個命令?嘿嘿!不要擔心,我們Linux上面的在線求助系統已經都幫你想好要怎么辦了, 所以你只要使用簡單的方法去尋找一下說明的內容,馬上就清清楚楚的知道該命令的用法了!怎么看呢?就是找男人(man) 呀!喔!不是啦!這個man是manual(操作說明)的簡寫啦!只要下達:『man date』 馬上就會有清楚的說明出現在你面前喔!如下所示:

[vbird@www ~]$ LANG="en" 
# 還記得這個咚咚的用意吧?前面提過了,是為了『語系』的需要啊!下達過一次即可! 
 
[vbird@www ~]$ man date 
DATE(1)                          User Commands                         DATE(1) 
# 請注意上面這個括號內的數字 
NAME  <==這個命令的完整全名,如下所示為date且說明簡單用途為配置與顯示日期/時間 
       date - print or set the system date and time 
 
SYNOPSIS  <==這個命令的基本語法如下所示 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
 
DESCRIPTION  <==詳細說明剛剛語法談到的選項與參數的用法 
       Display  the  current  time  in  the given FORMAT, or set the system 
       date. 
 
       -d, --date=STRING  <==左邊-d為短選項名稱,右邊--date為完整選項名稱 
              display time described by STRING, not 'now' 
 
       -f, --file=DATEFILE 
              like --date once for each line of DATEFILE 
 
       -r, --reference=FILE 
              display the last modification time of FILE 
....(中間省略).... 
       # 找到了!底下就是格式化輸出的詳細數據! 
       FORMAT controls the output.  The only valid option  for  the  second 
       form  specifies  Coordinated  Universal Time.  Interpreted sequences 
       are: 
 
       %%     a literal % 
 
       %a     locale's abbreviated weekday name (e.g., Sun) 
 
       %A     locale's full weekday name (e.g., Sunday) 
....(中間省略).... 
ENVIRONMENT  <==與這個命令相關的環境參數有如下的說明 
       TZ     Specifies the timezone, unless  overridden  by  command  line 
              parameters.   If  neither  is  specified,  the  setting  from 
              /etc/localtime is used. 
 
AUTHOR  <==這個命令的作者啦! 
       Written by David MacKenzie. 
 
REPORTING BUGS  <==有問題請留言給底下的email的意思! 
       Report bugs to <bug-coreutils@gnu.org>. 
 
COPYRIGHT  <==受到著作權法的保護!用的就是 GPL 了! 
       Copyright ? 2006 Free Software Foundation, Inc. 
       This is free software.  You may redistribute copies of it under  the 
       terms      of      the      GNU      General      Public     License 
       <http://www.gnu.org/licenses/gpl.html>.  There is  NO  WARRANTY,  to 
       the extent permitted by law. 
 
SEE ALSO  <==這個重要,你還可以從哪里查到與date相關的說明文件之意 
       The  full  documentation for date is maintained as a Texinfo manual. 
       If the info and date programs are properly installed at  your  site, 
       the command 
 
              info date 
 
       should give you access to the complete manual. 
 
date 5.97                          May 2006                            DATE(1) 

 

如此一來,不就可以知道date的相關選項與參數了嗎?真方便! 而 出現的這個屏幕畫面,我們稱呼他為man page, 你可以在里頭查詢他的用法與相關的參數說明。如果仔細一點來看這個man page的話,你會發現幾個有趣的東西。
備注: 進入man命令的功能后,你可以按下『空格鍵』往下翻頁,可以按下『 q 』按鍵來離開man的環境。 更多在man命令下的功能,本小節后面會談到的!
 

首先,在上個表格的第一行,你可以看到的是:『DATE(1)』,DATE我們知道是命令的名稱, 那么(1)代表什么呢?他代表的是『一般用戶可使用的命令』的意思!咦!還有這個用意啊!呵呵! 沒錯~在查詢數據的后面的數字是有意義的喔!他可以幫助我們了解或者是直接查詢相關的數據。 常見的幾個數字的意義是這樣的:

代號 代表內容
1 使用者在shell環境中可以操作的命令或可運行文件
2 系統核心可呼叫的函數與工具等
3 一些常用的函數(function)與函式庫(library),大部分為C的函式庫(libc)
4 裝置文件的說明,通常在/dev下的文件
5 配置文件或者是某些文件的格式
6 游戲(games)
7 慣例與協議等,例如Linux文件系統、網絡協議、ASCII code等等的說明
8 系統管理員可用的管理命令
9 跟kernel有關的文件

 

 

 

 

 

 

 

 

 

上述的表格內容可以使用『man 7 man』來更詳細的取得說明。透過這張表格的說明, 未來你如果使用man page在察看某些數據時,就會知道該命令/文件所代表的基本意義是什么了。 舉例來說,如果你下達了『man null』時,會出現的第一行是:『NULL(4)』,對照一下上面的數字意義, 嘿嘿!原來null這個玩意兒竟然是一個『裝置文件』呢!很容易了解了吧!

 

再來,man page的內容也分成好幾個部分來加以介紹該命令呢!就是上頭man date那個表格內, 以NAME作為開始介紹,最后還有個SEE ALSO來作為結束。基本上,man page大致分成底下這幾個部分:

代號 內容說明
NAME 簡短的命令、數據名稱說明
SYNOPSIS 簡短的命令下達語法(syntax)簡介
DESCRIPTION 較為完整的說明,這部分最好仔細看看!
OPTIONS 針對 SYNOPSIS 部分中,有列舉的所有可用的選項說明
COMMANDS 當這個程序(軟件)在運行的時候,可以在此程序(軟件)中下達的命令
FILES 這個程序或數據所使用或參考或連結到的某些文件
SEE ALSO 可以參考的,跟這個命令或數據有相關的其他說明!
EXAMPLE 一些可以參考的范例
BUGS 是否有相關的臭蟲!

 

 

 

 

 

 

 

 

 

有時候除了這些外,還可能會看到Authors與Copyright等,不過也有很多時候僅有NAME與DESCRIPTION等部分。 通常鳥哥在查詢某個數據時是這樣來查閱的:

  1. 先察看NAME的項目,約略看一下這個數據的意思;
  2. 再詳看一下DESCRIPTION,這個部分會提到很多相關的數據與使用時機,從這個地方可以學到很多小細節呢;
  3. 而如果這個命令其實很熟悉了(例如上面的date),那么鳥哥主要就是查詢關於OPTIONS的部分了! 可以知道每個選項的意義,這樣就可以下達比較細部的命令內容呢!
  4. 最后,鳥哥會再看一下,跟這個數據有關的還有哪些東西可以使用的?舉例來說,上面的SEE ALSO就告知我們還可以利用『info coreutils date』來進一步查閱數據;
  5. 某些說明內容還會列舉有關的文件(FILES 部分)來提供我們參考!這些都是很有幫助的!

大致上了解了man page的內容后,那么在man page當中我還可以利用哪些按鍵來幫忙查閱呢?首先, 如果要向下翻頁的話,可以按下鍵盤的空格鍵,也可以使用[Page Up]與[Page Down]來翻頁呢!同時,如果你知道某些關鍵詞的話, 那么可以在任何時候輸入『/word』,來主動搜尋關鍵詞!例如在上面的搜尋當中,我輸入了『/date』會變成怎樣?

DATE(1)                          User Commands                         DATE(1) 
 
NAME 
       date - print or set the system date and time 
 
SYNOPSIS 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
 
DESCRIPTION 
       Display  the  current  time  in  the given FORMAT, or set the system date. 
 
....(中間省略).... 
 
/date <==只要按下/,光標就會跑到這個地方來,你就可以開始輸入搜尋字符串咯 

 

按鍵 進行工作
空格鍵 向下翻一頁
[Page Down] 向下翻一頁
[Page Up] 向上翻一頁
[Home] 去到第一頁
[End] 去到最后一頁
/string 向『下』搜尋 string 這個字符串,如果要搜尋 vbird 的話,就輸入 /vbird
?string 向『上』搜尋 string 這個字符串
n, N 利用 / 或 ? 來搜尋字符串時,可以用 n 來繼續下一個搜尋 (不論是 / 或 ?) ,可以利用 N 來進行『反向』搜尋。舉例來說,我以 /vbird 搜尋 vbird 字符串, 那么可以 n 繼續往下查詢,用 N 往上查詢。若以 ?vbird 向上查詢 vbird 字符串, 那我可以用 n 繼續『向上』查詢,用 N 反向查詢。
q 結束這次的 man page

 

 

 

 

 

 

 

 

 

 

 

 

看到了嗎,當你按下『/』之后,光標就會移動到屏幕的最下面一行, 並等待你輸入搜尋的字符串了。此時,輸入date后,man page就會開始搜尋跟date有關的字符串, 並且移動到該區域呢!很方便吧!最后,如果要離開man page時,直接按下『 q 』就能夠離開了。 我們將一些在man page常用的按鍵給他整理整理:

要注意喔!上面的按鍵是在man page的畫面當中才能使用的! 比較有趣的是那個搜尋啦!我們可以往下或者是往上搜尋某個字符串,例如要在man page內搜尋vbird這個字符串, 可以輸入 /vbird 或者是 ?vbird ,只不過一個是往下而一個是往上來搜尋的。而要 重復搜尋 某個字符串時,可以使用 n 或者是 N 來動作即可呢! 很方便吧!^_^

既然有man page,自然就是因為有一些文件數據,所以才能夠以man page讀出來啰!那么這些man page的數據 放在哪里呢?不同的distribution通常可能有點差異性,不過,通常是放在/usr/share/man這個目錄里頭,然而,我們可以透過修改他的man page搜尋路徑來改善這個目錄的問題!修改/etc/man.config (有的版本為man.conf或manpath.conf)即可啰!至於更多的關於man的信息你可以使用『 man man 』來查詢呦!

搜尋特定命令/文件的man page說明文件

在某些情況下,你可能知道要使用某些特定的命令或者是修改某些特定的配置文件,但是偏偏忘記了該命令的完整名稱。 有些時候則是你只記得該命令的部分關鍵詞。這個時候你要如何查出來你所想要知道的man page呢? 我們以底下的幾個例子來說明man這個命令有用的地方喔!

系統中還有哪些跟『man』這個命令有關的說明文件呢?

[vbird@www ~]$ man -f man 
man                  (1)  - format and display the on-line manual pages 
man                  (7)  - macros to format man pages 
man.config [man]     (5)  - configuration data for man 

使用 -f 這個選項就可以取得更多與man相關的信息,而上面這個結果當中也有提示了 (數字) 的內容, 舉例來說,第二行的『 man (7) 』表示有個man (7)的說明文件存在喔!但是卻有個man (1)存在啊! 那當我們下達『 man man 』的時候,到底是找到哪一個說明檔呢? 其實,你可以指定不同的文件的,舉例來說,上表當中的兩個 man 你可以這樣將他的文件叫出來:

[vbird@www ~]$ man 1 man  <==這里是用 man(1) 的文件數據 
[vbird@www ~]$ man 7 man  <==這里是用 man(7) 的文件數據 

那個1, 7就是分別取出在man page里面關於1與7相關數據的文件文件啰! 好了,那么萬一我真的忘記了下達數字,只有輸入『 man man 』時,那么取出的數據到底是1還是7啊? 這個就跟搜尋的順序有關了。搜尋的順序是記錄在/etc/man.conf這個配置文件當中, 先搜尋到的那個說明檔,就會先被顯示出來! 一般來說,通常會先找到數字較小的那個啦!因為排序的關系啊!所以, man man 會跟 man 1 man 結果相同!

 

除此之外,我們還可以利用『關鍵詞』找到更多的說明文件數據喔!什么是關鍵詞呢? 從上面的『man -f man』輸出的結果中,我們知道其實輸出的數據是:

  • 左邊部分:命令(或文件)以及該命令所代表的意義(就是那個數字);
  • 右邊部分:這個命令的簡易說明,例如上述的『-macros to format man pages』

當使用『man -f 命令』時,man只會找數據中的左邊那個命令(或文件)的完整名稱,有一點不同都不行! 但如果我想要找的是『關鍵詞』呢?也就是說,我想要同時找上面說的兩個地方的內容,只要該內容有關鍵詞存在, 不需要完全相同的命令(或文件)就能夠找到時,該怎么辦?請看下個范例啰!

找出系統的說明文件中,只要有man這個關鍵詞就將該說明列出來。

[vbird@www ~]$ man -k man 
. [builtins]         (1)  - bash built-in commands, see bash(1) 
.TP 15 php [php]     (1)  - PHP Command Line Interface 'CLI' 
....(中間省略).... 
zshall               (1)  - the Z shell meta-man page 
zshbuiltins          (1)  - zsh built-in commands 
zshzle               (1)  - zsh command line editor 

看到了吧!很多對吧!因為這個是利用關鍵詞將說明文件里面只要含有man那個字眼的(不見得是完整字符串) 就將他取出來!很方便吧! ^_^(上面的結果有特殊字體的顯示是為了方便讀者查看, 實際的輸出結果並不會有特別的顏色顯示喔!)

事實上,還有兩個命令與man page有關呢!而這兩個命令是man的簡略寫法說~就是這兩個:

[vbird@www ~]$ whatis  [命令或者是數據]   <==相當於 man -f [命令或者是數據] 
[vbird@www ~]$ apropos [命令或者是數據]   <==相當於 man -k [命令或者是數據]

 

而要注意的是,這兩個特殊命令要能使用,必須要有創建 whatis 數據庫才行!這個數據庫的創建需要以 root 的身份下達如下的命令.

一般來說,鳥哥是真的不會去背命令的,只會去記住幾個常見的命令而已。那么鳥哥是怎么找到所需要的命令呢? 舉例來說,打印的相關命令,鳥哥其實僅記得 lp (line print)而已。那我就由 man lp 開始,去找相關的說明, 然后,再以 lp[tab][tab] 找到任何以 lp 為開頭的命令,找到我認為可能有點相關的命令后, 再以 man 去查詢命令的用法!呵呵!所以,如果是實際在管理 Linux , 那么真的只要記得幾個很重要的命令即可,其他需要的,嘿嘿!努力的找男人(man)吧!

info page

在所有的Unix Like系統當中,都可以利用 man 來查詢命令或者是相關文件的用法; 但是,在Linux里面則又額外提供了一種在線求助的方法,那就是利用info這個好用的家伙啦!

基本上,info與man的用途其實差不多,都是用來查詢命令的用法或者是文件的格式。但是與man page一口氣輸出一堆信息不同的是,info page則是將文件數據拆成一個一個的段落,每個段落用自己的頁面來撰寫, 並且在各個頁面中還有類似網頁的『超鏈接』來跳到各不同的頁面中,每個獨立的頁面也被稱為一個節點(node)。 所以,你可以將info page想成是文本模式的網頁顯示數據啦!

不過你要查詢的目標數據的說明文件必須要以info的格式來寫成才能夠使用info的特殊功能(例如超鏈接)。 而這個支持info命令的文件默認是放置在/usr/share/info/這個目錄當中的。 舉例來說,info這個命令的說明文件有寫成info格式,所以,你使用『 info info 』可以得到如下的畫面:

[vbird@www ~]$ info info 
File: info.info,  Node: Top,  Next: Getting Started,  Up: (dir) 
 
Info: An Introduction 
********************* 
 
The GNU Project distributes most of its on-line manuals in the "Info 
format", which you read using an "Info reader".  You are probably using 
an Info reader to read this now. 
 
....(中間省略).... 
 
   To read about expert-level Info commands, type `n' twice.  This 
brings you to `Info for Experts', skipping over the `Getting Started' 
chapter. 
* Menu: 
 
* Getting Started::             Getting started using an Info reader. 
* Expert Info::                 Info commands for experts. 
* Creating an Info File::       How to make your own Info file. 
* Index::                       An index of topics, commands, and variables. 
 
--zz-Info: (info.info.gz)Top, 29 lines --Top------------------------------ 
Welcome to Info version 4.8. Type ? for help, m for menu item. 

 

File:代表這個info page的數據是來自info.info文件所提供的;仔細的看到上面這個顯示的結果,里面的第一行顯示了很多的信息喔!第一行里面的數據意義為:

  • Node:代表目前的這個頁面是屬於Top節點。 意思是info.info內含有很多信息,而Top僅是info.info文件內的一個節點內容而已;
  • Next:下一個節點的名稱為Getting Started,你也可以按『N』到下個節點去;
  • Up:回到上一層的節點總攬畫面,你也可以按下『U』回到上一層;
  • Prev:前一個節點。但由於Top是info.info的第一個節點,所以上面沒有前一個節點的信息。

從第一行你可以知道這個節點的內容、來源與相關鏈接的信息。更有用的信息是,你可以透過直接按下N, P, U來去到下一個、上一個與上一層的節點(node)!非常的方便! 第一行之后就是針對這個節點的說明。在上表的范例中,第二行以后的說明就是針對info.info內的Top這個節點所做的。

再來,你也會看到有『Menu』那個咚咚吧!底下共分為四小節,分別是Getting Started等等的,我們可以使用上下左右按鍵來將光標移動到該文字或者『 * 』上面,按下Enter, 就可以前往該小節了!另外,也可以按下[Tab]按鍵,就可以快速的將光標在上表的畫面中的node間移動, 真的是非常的方便好用。如果將info.info內的各個節點串在一起並繪制成圖表的話,情況有點像底下這樣:



 

 

 

 

 

 

 

 

 

 

如同上圖所示,info的說明文件將內容分成多個node,並且每個node都有定位與連結。 在各連結之間還可以具有類似『超鏈接』的快速按鈕,可以透過[tab]鍵在各個超鏈接間移動。 也可以使用U,P,N來在各個階層與相關鏈接中顯示!非常的不錯用啦! 至於在info page當中可以使用的按鍵,可以整理成這樣:

按鍵 進行工作
空格鍵 向下翻一頁
[Page Down] 向下翻一頁
[Page Up] 向上翻一頁
[tab] 在 node 之間移動,有 node 的地方,通常會以 * 顯示。
[Enter] 當光標在 node 上面時,按下 Enter 可以進入該 node 。
b 移動光標到該 info 畫面當中的第一個 node 處
e 移動光標到該 info 畫面當中的最后一個 node 處
n 前往下一個 node 處
p 前往上一個 node 處
u 向上移動一層
s(/) 在 info page 當中進行搜尋
h 顯示求助菜單
? 命令一覽表
q 結束這次的 info page

 

 

 

 

 

 

 

 

 

 

 

 

 

 

info page是只有Linux上面才有的產物,而且易讀性增強很多~不過查詢的命令說明要具有info page功能的話,得用info page的格式來寫成在線求助文件才行!我們CentOS 5將info page的文件放置到/usr/share/info/目錄中!至於非以info page格式寫成的說明文件(就是man page),雖然也能夠使用info來顯示,不過其結果就會跟man相同。 舉例來說,你可以下達『info man』就知道結果了! 

 

其他有用的文件(documents)

剛剛前面說,一般而言,命令或者軟件制作者,都會將自己的命令或者是軟件的說明制作成『聯機幫助文件』! 但是,畢竟不是每個文件都需要做成聯機幫助文件的,還有相當多的說明需要額外的文件!此時,這個所謂的 How-To(如何做的意思)就很重要啦!還有,某些軟件不只告訴你『如何做』, 還會有一些相關的原理會說明呢。

那么這些說明文件要擺在哪里呢?哈哈!就是擺在/usr/share/doc這個目錄啦!所以說,你只要到這個目錄底下, 就會發現好多好多的說明文件檔啦!還不需要到網絡上面找數據呢!厲害吧!^_^ 舉例來說,你想要知道這一版的CentOS相關的各項信息,可以直接到底下的目錄去瞧瞧:

  • /usr/share/doc/centos-release-notes-5.3/

那如果想要知道bash是什么,則可以到/usr/share/doc/bash-3.2/ 這個目錄中去瀏覽一番!很多東西呦!而且/usr/share/doc這個目錄下的數據主要是以套件(packages)為主的, 例如GCC這個套件的相關信息在/usr/share/doc/gcc-xxx(那個xxx表示版本的意思!)。 未來可得多多查閱這個目錄喔! ^_^

總結上面的三個咚咚(man, info, /usr/share/doc/),請記住喔:

  • 在文字接口下,有任何你不知道的命令或文件格式這種玩意兒,但是你想要了解他,請趕快使用man或者是info來查詢!
  • 而如果你想要架設一些其他的服務,或想要利用一整組軟件來達成某項功能時,請趕快到/usr/share/doc 底下查一查有沒有該服務的說明檔喔!
  • 另外,再次的強調,因為Linux畢竟是外國人發明的,所以中文文件確實是比較少的! 但是不要害怕,拿本英文字典在身邊吧!隨時查閱!不要害怕英文喔!

轉自 http://vbird.dic.ksu.edu.tw/linux_basic/0160startlinux_3.php


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM