man命令详解

转自鸟哥的linux私房菜:http://linux.vbird.org/

 

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

[root@linux ~]# LANG="en"
# 還記得這個咚咚的用意吧?前面提過了,是為了『語系』的需要啊!下達過一次即可!
[root@linux ~]# man 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.
       -d, --date=STRING
              display time described by STRING, not 'now'
       -f, --file=DATEFILE
              like --date once for each line of DATEFILE
       -ITIMESPEC, --iso-8601[=TIMESPEC]
              output  date/time  in ISO 8601 format.  TIMESPEC='date' for date
              only, 'hours', 'minutes', or 'seconds' for date and time to  the
              indicated  precision.   --iso-8601  without TIMESPEC defaults to
              'date'.

................(略)....

AUTHOR
       
Written by David MacKenzie.
REPORTING BUGS
       Report bugs to .
COPYRIGHT
       Copyright ?2004 Free Software Foundation, Inc.
       This is free software; see the source for copying conditions.  There is
       NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR
       PURPOSE.

SEE ALSO
       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 coreutils date

       should give you access to the complete manual.

date (coreutils) 5.2.1             May 2005                            DATE(1)
看!馬上就知道一大堆的用法了!如此一來,不就可以知道 date 的相關參數了嗎?呵呵!真方便! 而 出現的這個螢幕畫面,我們稱呼他為 man page , 您可以在裡頭查詢他的用法與相關的參數說明。如果仔細一點來看這個 man page 的話, 您會發現幾個有趣的東西。

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

代號代表內容
1使用者可以操作的指令或可執行檔
2系統核心可呼叫的函數與工具等
3一些常用的函數(function)與函式庫(library)
4裝置檔案的說明
5設定檔或者是某些檔案的格式
6遊戲(games)
7慣例與協定等,例如 Linux 標準檔案系統、 網路協定、ASCII code 等等的說明內容
8系統管理員可用的管理指令
9跟 kernel 有關的文件 

  1. Executable programs or shell commands
  2. System calls (functions provided by the kernel)
  3. Library calls (functions within program libraries)
  4. Special files (usually found in /dev)
  5. File formats and conventions eg /etc/passwd
  6. Games
  7. Miscellaneous (including macro  packages  and  conven-tions), e.g. man(7), groff(7)
  8. System administration commands (usually only for root)
  9. Kernel routines [Non standard]

所以,未來您如果使用 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 等部分。 通常鳥哥在查詢某個資料時,一定會察看 NAME 約略看一下這個資料的意思,再詳看一下 DESCRIPTION ,這個 DESCRIPTION 會提到很多相關的資料與使用時機,從這個地方可以學到很多小細節呢!而如果這個指令其實很熟悉了 (例如上面的 date ),那麼鳥哥主要就是查詢關於 OPTIONS 的部分了!可以知道每個參數的意思, 這樣就可以下達比較細部的指令內容呢!最後,鳥哥會再看一下,啊跟這個資料有關的還有哪些東西可以使用的? 舉例來說,上面的 SEE ALSO 就告知我們還可以利用『info coreutils date』來進一步查閱資料, 某些說明內容還會列舉有關的檔案 (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

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

按鍵進行工作
空白鍵向下翻一頁
[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

要注意喔! 上面的按鍵是在 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 』來查詢呦!關於更詳細的設定,我們會在 Shell 的章節當中繼續的說明喔!

man 還有一些有趣的使用方式呢!舉例來說,如果您還想要知道更多跟 man 有較相關的訊息, 可以下達:
[root@linux ~]# man -f man
man                  (1)  - format and display the on-line manual pages
man                  (7)  - macros to format man pages
man.conf [man]       (5)  - configuration data for man

看到了嗎?使用 -f 的參數,可以取得更多的 man 的相關資訊,而上頭這個表格當中,也有提示了 (數字) 的內容, 舉例來說,第二行的『 man (7) 』表示有個 man (7) 的說明文件存在喔!但是卻有個 man (1) 存在啊! 那當我們下達『 man man 』的時候,到底是找到哪一個說明檔呢?嘿嘿!混亂了吧?! 其實,您可以指定不同的文件的,舉例來說,上表當中的兩個 man 您可以這樣將他的文件叫出來:
[root@linux ~]# man 1 man  <==這裡是用 man(1) 的文件資料
[root@linux ~]# man 7 man  <==這裡是用 man(7) 的文件資料

你可以自行將上面兩個指令輸入一次看看,就知道,兩個指令輸出的結果是不同的。 那個 1, 7 就是分別取出在 man page 裡面關於 1 與 7 相關資料的文件檔案囉! 好了,那麼萬一我真的忘記了下達數字,只有輸入『 man man 』時,那麼取出的資料到底是 1 還是 7 啊? 這個就跟搜尋的順序有關了。搜尋的順序是記錄在 /etc/man.conf 這個設定檔當中,  先搜尋到的那個說明檔,就會先被顯示出來!一般來說,通常會先找到數字較小的那個啦!因為排序的關係啊!所以, man man 會跟 man 1 man 結果相同! 這樣說,可以明白了嗎?!

除此之外,我們還可以利用『關鍵字』找到更多的說明文件資料喔!例如:
[root@linux ~]# man -k man
. [builtins]         (1)  - bash built-in commands, see bash(1)
alias [builtins]     (1)  - bash built-in commands, see bash(1)
........(中間省略)....
xsm                  (1x)  - X Session Manager
zshall               (1)  - the Z shell meta-man page
zshbuiltins          (1)  - zsh built-in commands
zshzle               (1)  - zsh command line editor
看到了吧!很多對吧!因為這個是利用關鍵字將說明文件裡面只要含有 man 那個字眼的(不見得是完整字串) 就將他取出來!很方便吧! ^_^

事實上,還有兩個指令與 man page 有關呢!而這兩個指令是 man 的簡略寫法說~ 就是這兩個:
[root@linux ~]# whatis  [指令或者是資料]   <==相當於 man -f [指令或者是資料]
[root@linux ~]# apropos [指令或者是資料]   <==相當於 man -k [指令或者是資料]


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值