自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RTFM!如何閱讀(和理解)Linux 中神奇的手冊頁

系統 Linux
手冊頁,即參考手冊頁的簡稱,是你進入 Linux 的鑰匙。你想知道的一切都在那里,包羅萬象。這套文檔永遠不會贏得普利策獎,但這套文檔是相當準確和完整的。手冊頁是主要信源,其權威性是眾所周知的。

 

[[405725]]

手冊頁man pages,即參考手冊頁reference manual pages的簡稱,是你進入 Linux 的鑰匙。你想知道的一切都在那里,包羅萬象。這套文檔永遠不會贏得普利策獎,但這套文檔是相當準確和完整的。手冊頁是主要信源,其權威性是眾所周知的。

雖然它們是源頭,但閱讀起來并不是最令人愉快的。有一次,在很久以前的哲學課上,有人告訴我,閱讀 亞里士多德 是最無聊的閱讀。我不同意:說到枯燥的閱讀,亞里士多德遠遠地排在第二位,僅次于手冊頁。

乍一看,這些頁面可能看起來并不完整,但是,不管你信不信,手冊頁并不是為了隱藏信息 —— 只是因為信息量太大,這些頁面必須要有結構,而且信息是以盡可能簡短的形式給出的。這些解釋相當簡略,需要一些時間來適應,但一旦你掌握了使用它們的技巧,你就會發(fā)現它們實際上是多么有用。

Linux 中的手冊頁入門

這些頁面是通過一個叫做 man 的工具查看的,使用它的命令相當簡單。在最簡單的情況下,要使用 man,你要在命令行上輸入 man,后面加一個空格和你想查詢的命令,比如 ls 或 cp,像這樣:

  1. man ls

man 會打開 ls 命令的手冊頁。

 

你可以用方向鍵上下移動,按 q 退出查看手冊頁。通常情況下,手冊頁是用 less 打開的,所以 less 命令的鍵盤快捷鍵在 man 中也可以使用。

例如,你可以用 /search_term 來搜索一個特定的文本,等等。

有一個關于手冊頁的介紹,這是一篇值得閱讀介紹。它非常詳細地說明了手冊頁是如何布局和組織的。

要看這個頁面,請打開一個終端,然后輸入:

  1. man man

 

man page of man

節(jié)

在你開始更深入地研究手冊頁之前,知道手冊頁有一個固定的頁面布局和一個歸檔方案會有幫助。這可能會讓新手感到困惑,因為我可以說:“看手冊頁中關于 ls 的 NAME 節(jié)section”,我也可以說:“看第 5 節(jié)section中的 passwd 的手冊頁。”

我把 “節(jié)section” 這個詞用斜體字表示,是為了顯示混淆的來源。這個詞,“節(jié)” 被用于兩種不同的方式,但并不總是向新人解釋其中的區(qū)別。

我不確定為什么會出現這種混淆,但我在培訓新用戶和初級系統管理員時看到過幾次這種混淆。我認為這可能是隧道視野,專注于一件事會使一個人忘記另一件事。一葉障目,不見泰山。

對于那些已經知道其中的區(qū)別的人,你可以跳過這一小節(jié)。這一部分是針對那些剛接觸到手冊頁的人。

這就是區(qū)別:

對于手冊頁

單獨的手冊頁是用來顯示信息塊的。例如,每個手冊頁都有一個“NAME”節(jié),顯示命令的名稱和簡短的描述。還會有另一個信息塊,稱為“SYNOPSIS”,顯示該命令是如何使用的,以此類推。

 

每個手冊頁都會有這些,以及其他的標題。這些在各個手冊頁上的節(jié),或者說標題,有助于保持事情的一致性和信息的分工。

對于手冊

使用“節(jié)”,如 “查看第 5 節(jié)中的 passwd 的手冊頁”,是指整個手冊的內容。當我們只看一頁時,很容易忽略這一點,但是 passwd 手冊頁是同一本手冊的一部分,該手冊還有 ls、rm、date、cal 等的手冊頁。

整個 Linux 手冊是巨大的;它有成千上萬的手冊頁。其中一些手冊頁有專門的信息。有些手冊頁有程序員需要的信息,有些手冊頁有網絡方面的獨特信息,還有一些是系統管理員會感興趣的。

這些手冊頁根據其獨特的目的被分組。想想看,把整個手冊分成幾個章節(jié) —— 每章有一個特定的主題。有 9 個左右的章節(jié)(非常大的章節(jié))。碰巧的是,這些章節(jié)被稱為“節(jié)”。

總結一下:

  • 手冊中單頁(我們稱之為“手冊頁”)的節(jié)是由標題定義的信息塊。
  • 這個大的手冊(所有頁面的集合)中的章節(jié),剛好被稱為“節(jié)”。

現在你知道區(qū)別了,希望本文的其余部分會更容易理解。

手冊頁的節(jié)

你將會看到不同的手冊頁,所以讓我們先研究一下各個頁面的布局。

手冊頁被分成幾個標題,它們可能因提供者不同而不同,但會有相似之處。一般的分類如下:

  • NAME(名稱)
  • SYNOPSIS(概要)
  • DESCRIPTION(描述)
  • EXAMPLES(例子)
  • DIAGNOSTICS(診斷)
  • FILES(文件)
  • LIMITS(限制)
  • PORTABILITY(可移植性)
  • SEE ALSO(另見)
  • HISTORY(歷史)
  • WARNING(警告)或BUGS`(錯誤)
  • NOTES(注意事項)

NAME - 在這個標題下是命令的名稱和命令的簡要描述。

SYNOPSIS - 顯示該命令的使用方法。例如,這里是 cal 命令的概要:

  1. cal [Month] [Year]

概要以命令的名稱開始,后面是選項列表。概要采用命令行的一般形式;它顯示了你可以輸入的內容和參數的順序。方括號中的參數([])是可選的;你可以不輸入這些參數,命令仍然可以正常工作。不在括號內的項目必須使用。

請注意,方括號只是為了便于閱讀。當你輸入命令時,不應該輸入它們。

DESCRIPTION - 描述該命令或工具的作用以及如何使用它。這一節(jié)通常以對概要的解釋開始,并說明如果你省略任何一個可選參數會發(fā)生什么。對于長的或復雜的命令,這一節(jié)可能會被細分。

EXAMPLES - 一些手冊頁提供了如何使用命令或工具的例子。如果有這一節(jié),手冊頁會嘗試給出一些簡單的使用例子,以及更復雜的例子來說明如何完成復雜的任務。

DIAGNOSTICS - 本節(jié)列出了由命令或工具返回的狀態(tài)或錯誤信息。通常不顯示不言自明的錯誤和狀態(tài)信息。通常會列出可能難以理解的信息。

FILES - 本節(jié)包含了 UNIX 用來運行這個特定命令的補充文件的列表。這里,“補充文件”是指沒有在命令行中指定的文件。例如,如果你在看 passwd 命令的手冊,你可能會發(fā)現 /etc/passwd 列在這一節(jié)中,因為 UNIX 是在這里存儲密碼信息。

LIMITS - 本節(jié)描述了一個工具的限制。操作系統和硬件的限制通常不會被列出,因為它們不在工具的控制范圍內。

PORTABILITY - 列出其他可以使用該工具的系統,以及該工具的其他版本可能有什么不同。

SEE ALSO - 列出包含相關信息的相關手冊頁。

HISTORY - 提供命令的簡要歷史,如它第一次出現的時間。

WARNING - 如果有這個部分,它包含了對用戶的重要建議。

NOTES - 不像警告那樣嚴重,但也是重要的信息。

同樣,并不是所有的手冊都使用上面列出的確切標題,但它們足夠接近,可以遵循。

手冊的節(jié)

整個 Linux 手冊集合的手冊頁傳統上被劃分為有編號的節(jié):

第 1 節(jié):Shell 命令和應用程序 第 2 節(jié):基本內核服務 - 系統調用和錯誤代碼 第 3 節(jié):為程序員提供的庫信息 第 4 節(jié):網絡服務 - 如果安裝了 TCP/IP 或 NFS 設備驅動和網絡協議 第 5 節(jié):文件格式 - 例如:顯示 tar 存檔的樣子 第 6 節(jié):游戲 第 7 節(jié):雜項文件和文檔 第 8 節(jié):系統管理和維護命令 第 9 節(jié):不知名的內核規(guī)格和接口

將手冊頁分成這些組,可以使搜索更有效率。在我工作的地方,我有時會做一些編程工作,所以我花了一點時間看第 3 節(jié)的手冊頁。我也做一些網絡方面的工作,所以我也知道要涉足網絡部分。作為幾個實驗性機器的系統管理員,我在第 8 節(jié)花了很多時間。

將手冊網歸入特定的節(jié)(章節(jié)),使搜索信息更加容易 —— 無論是對需要搜索的人,還是對進行搜索的機器。

你可以通過名稱旁邊的數字來判斷哪個手冊頁屬于哪個部分。例如,如果你正在看 ls 的手冊頁,而頁面的最上面寫著。 LS(1),那么你正在瀏覽第 1 節(jié)中的 ls 頁面,該節(jié)包含關于 shell 命令和應用程序的頁面。

下面是另一個例子。如果你在看 passwd 的手冊頁,頁面的頂部顯示: PASSWD(1),說明你正在閱讀第 1 節(jié)中描述 passwd 命令如何更改用戶賬戶密碼的手冊頁。如果你看到 PASSWD(5),那么你正在閱讀關于密碼文件和它是如何組成的的手冊頁。

 

passwd 恰好是兩個不同的東西:一個是命令的名稱,一個是文件的名稱。同樣,第 1 節(jié)描述了命令,而第 5 節(jié)涉及文件格式。

括號中的數字是重要的線索 —— 這個數字告訴你正在閱讀的頁面來自哪一節(jié)。

搜索一個特定的節(jié)

基本命令:

  1. man -a name

將在每一節(jié)中搜索由 name 標識的手冊頁,按數字順序逐一顯示。要把搜索限制在一個特定的部分,請在 man 命令中使用一個參數,像這樣:

  1. man 1 name

這個命令將只在手冊頁的第 1 節(jié)中搜索 name。使用我們前面的 passwd 例子,這意味著我們可以保持搜索的針對性。如果我想閱讀 passwd 命令的手冊頁,我可以在終端輸入以下內容:

  1. man 1 passwd

man 工具將只在第 1 節(jié)中搜索 passwd 并顯示它。它不會在任何其他節(jié)中尋找 passwd。

這個命令的另一種方法是輸入: man passwd.1。

使用 man -k 來搜索包含某個關鍵詞的所有手冊頁

如果你想獲得包含某個關鍵詞的手冊頁的列表,man 命令中的 -k 選項(通常稱為標志或開關)可以派上用場。例如,如果你想看一個關于 ftp 的手冊列表,你可以通過輸入以下內容得到這個列表:

  1. man -k ftp

在接下來的列表中,你可以選擇一個特定的手冊頁來閱讀:

 

man k example

在某些系統上,在 man -k 工作之前,系統管理員需要運行一個叫做 catman 的工具。

使用 whatis 和 whereis 命令來了解手冊的各個節(jié)

有兩個有趣的工具可以幫助你搜索信息:whatis和 whereis。

whatis

有的時候,我們完全可以得到我們需要的信息。我們需要的信息有很大的機會是可以找到的 —— 找到它可能是一個小問題。

例如,如果我想看關于 passwd 文件的手冊頁,我在終端上輸入:

  1. man passwd

我就會看到關于 passwd 命令所有信息的手冊頁,但沒有關于 passwd 文件的內容。我知道 passwd 是一個命令,也有一個 passwd 文件,但有時,我可能會忘記這一點。這時我才意識到,文件結構在手冊頁中的不同節(jié),所以我輸入了:

  1. man 4 passwd

我得到這樣的答復:

  1. No manual entry for passwd in section 4
  2. See 'man 7 undocumented' for help when manual pages are not available.

又是一次健忘的失誤。文件結構在 System V UNIX 頁面的第 4 節(jié)中。幾年前,當我建立文件時,我經常使用 man 4 ...;這仍然是我的一個習慣。那么它在 Linux 手冊中的什么地方呢?

現在是時候調用 whatis 來糾正我了。為了做到這一點,我在我的終端中輸入以下內容:

  1. whatis passwd

然后我看到以下內容:

  1. passwd (1) - change user password
  2. passwd (1ssl) - compute password hashes
  3. passwd (5) - the password file

?。?code>passwd 文件的頁面在第 5 節(jié)?,F在沒問題了,可以訪問我想要的信息了:

  1. man 5 passwd

然后我被帶到了有我需要的信息的手冊頁。

whatis 是一個方便的工具,可以用簡短的一句話告訴你一個命令的作用。想象一下,你想知道 cal 是做什么的,而不想查看手冊頁。只要在命令提示符下鍵入以下內容。

  1. whatis cal

你會看到這樣的回應:

  1. cal (1) - displays a calendar and the date of Easter

現在你知道了 whatis 命令,我可以告訴你一個秘密 —— 有一個 man 命令的等價物。為了得到這個,我們使用 -f 開關:man -f ...。

試試吧。在終端提示下輸入 whatis cal。執(zhí)行后就輸入:man -f cal。兩個命令的輸出將是相同的:

 

whatis cal and man f cal outputs are the same

whereis

whereis 命令的名字就說明了這一點 —— 它告訴你一個程序在文件系統中的位置。它也會告訴你手冊頁的存放位置。再以 cal 為例,我在提示符下輸入以下內容:

  1. whereis cal

我將看到這個:

 

whereis cal output

仔細看一下這個回答。答案只在一行里,但它告訴我兩件事:

  • /usr/bin/cal 是 cal 程序所在的地方,以及
  • /usr/share/man/man1/cal.1.gz 是手冊頁所在的地方(我也知道手冊頁是被壓縮的,但不用擔心 —— man 命令知道如何即時解壓)。

whereis 依賴于 PATH 環(huán)境變量;它只能告訴你文件在哪里,如果它們在你的 PATH 環(huán)境變量中。

你可能想知道是否有一個與 whereis 相當的 man 命令。沒有一個命令可以告訴你可執(zhí)行文件的位置,但有一個開關可以告訴你手冊頁的位置。在這個例子中使用 date 命令,如果我們輸入:

  1. whereis date

在終端提示符下,我們會看到:

 

whereis date output

我們看到 date 程序在 /usr/bin/ 目錄下,其手冊頁的名稱和位置是:/usr/share/man/man1/date.1.gz。

我們可以讓 man 像 whereis 一樣行事,最接近的方法是使用 -w 開關。我們不會得到程序的位置,但我們至少可以得到手冊頁的位置,像這樣:

  1. man -w date

我們將看到這樣的返回:

 

你知道了 whatis 和 whereis,以及讓 man 命令做同樣(或接近)事情的方法。我展示了這兩種方法,有幾個不同的原因。

多年來,我使用 whatis 和 whereis,因為它們在我的培訓手冊中。直到最近我才了解到 man -f ... 和 man -w ...。我確信我看了幾百次 man 的手冊頁,但我從未注意到 -f 和 -w 開關。我總是在看手冊頁的其他東西(例如:man -k ...)。我只專注于我需要找到的東西,而忽略了其他的東西。一旦我找到了我需要的信息,我就會離開這個頁面,去完成工作,而不去注意這個命令所提供的其他一些寶貝。

這沒關系,因為這部分就是手冊頁的作用:幫助你完成工作。

直到最近我向別人展示如何使用手冊頁時,我才花時間去閱讀 —— “看看還有什么可能” —— 我們才真正注意到關于 man 命令的 -f 和 -w 標記可以做什么的信息。

不管你使用 Linux 多久了,或者多么有經驗,總有一些新東西需要學習。

手冊頁會告訴你在完成某項任務時可能需要知道的東西 —— 但它們也有很多內容 —— 足以讓你看起來像個魔術師,但前提是你要花時間去讀。

結論

如果你花一些時間和精力在手冊頁上,你將會取得勝利。你對手冊頁的熟練程度,將在你掌握 Linux 的過程中發(fā)揮巨大作用。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-04-20 12:18:36

Linux手冊頁Linux命令

2021-07-12 17:45:25

LinuxTealdeer手冊頁

2018-02-26 12:55:00

2009-12-24 11:29:42

ipvsadm命令

2017-06-05 11:03:07

Linuxshutdown命令

2019-04-12 14:26:17

Linux命令文件

2019-12-10 09:53:27

LinuxCacheBuffer

2020-02-10 09:23:09

LinuxReddit命令

2020-08-23 11:32:21

JavaScript開發(fā)技術

2019-01-21 09:06:08

Linuxetcservices

2022-03-03 18:18:53

BPF解釋器系統

2014-05-07 09:20:45

Liunx快速閱讀

2024-09-24 14:58:39

2024-09-26 21:49:19

2017-03-22 13:20:07

RxJavaSingleCompletable

2009-12-10 16:21:42

Fedora Linu

2011-08-15 10:21:09

man中文man

2017-06-26 10:22:22

Linux平均負載性能監(jiān)控

2023-10-13 13:19:02

Java枚舉

2014-02-13 17:22:08

點贊
收藏

51CTO技術棧公眾號