【Linux】在線求助命令--help,man page , info page

我們知道Linux有很多的命令,那LInux要不要背命令?

答案是背最常用的那些就行了

那有的時候我們想查詢一些命令的詳細用法該怎么辦呢?

這里我給出3種方法

1.--help

--help的使用方法很簡單啊

要查詢的命令 --help

我們看個例子

這里我只截取了一小部分?

這里大概的講解了一些date命令的使用方法

????????基本上如果是命令,那么通過這個簡單的【--help】就可以很快速地取得你所需要的選項、參數的說明,這很重要。我們說過,在Linux下面你需要學習完成任務的方式,不用硬背命令參數。不過常用的命令你還是得要記憶一下,而選項就通過【--help】來快速查詢即可。

????????同樣的,通過【cal --help】你也可以取得相同的解釋,相當好用。不過,如果你使用【bc-help】的話,雖然也有簡單的解釋,但是就沒有類似scale的用法說明,同時也不會有+、-、
*、/、%等運算符的說明了。

????????因此,雖然【--help】已經相當好用,不過,通常【--help】用在協助你查詢“你曾經使用的命令所具備的選項與參數”而已,如果你要使用的是從來沒有用過得命令,或是你要查詢的根本就不是命令,而是文件的格式時,那就得要通過【man page】命令了。

2.man page

咦,【date -help】沒有告訴你STRING是什么?

????????嘿嘿,不要擔心,除了【--help】之外,我們Linux上面的其他在線求助系統已經都幫你想好要怎么辦了,所以你只要使用簡單的方法去尋找一下說明的內容,馬上就清清楚楚地知道該命令的用法了。這個man 是manual(操作說明)的簡寫。只要執行:【man date】馬上就會有清楚的說明出現在你面前,如下所示:

我們可以按空格往下翻,按q退出?

我們現在處于的這個界面就是man page

我們仔細來看這個man page就會發現一些有趣的東西

首先,在上個表格的第一行,你可以看到的是:【DATE(1)】,DATE我們知道是命令的名稱,那么(1)代表什么?

????????它代表的是“一般用戶可使用的命令”的意思。咦,還有這個用意,呵呵,沒銷在查詢數據的后面的數字是有意義的,它可以幫助我們了解或是直接查詢相關的數據。常見的幾個數字的意義是這樣的:

代號代表內容
1用戶在shell環境中可以操作的命令或可執行文件
2系統內核可調用的函數和工具
3一些常用函數和函數庫,大部分為c的函數庫
4設備文件的說明,通常在/dev下的文件
5配置文件或者是某些文件的格式
6游戲
7慣例和協議,比如LInux文件系統,網絡協議,ASCII代碼等說明
8系統管理員可用的管理命令
9跟內核有關的文件

?上述的表格內容可以使用【man man】來更詳細地取得說明。

????????通過這張表格的說明,未來你如果使用man page 在查看某些數據時,就會知道該命令/文件所代表的基本意義是什么了。舉例來說,如果你執行了 【 man nul】時,會出現的第一行是:【NULL(4)】,對照一下上面的數字意義,嘿嘿,原來 null?這個玩意兒竟然是一個設備文件,很容易了解了吧!

? 上表中的1、5、8這三個號碼特別重要,也請讀者要將這三個數字所代表的意義背下來。

????????再來,manpage的內容也分成好幾個部分來加以介紹該命令。就是上面【man date】那個表格內,以NAME作為開始介紹,最后還有個SEEALSO來作為結束。

基本上man page大致分成下面這幾個部分:

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

?大概是這些,可能還有別的,我就不說了


2.1.man page常用按鍵

大致上了解了man page的內容后,那么在man page當中我還可以利用哪些按鍵來幫忙查看呢?首先,如果要向下翻頁的話,可以按下鍵盤的空格鍵,也可以使用[Page Up]與[Page Down]來翻頁。

????????同時,如果你知道某些關鍵詞的話,那么可以在任何時候輸入【/word】,來主動查找關鍵詞。例如在上面的查找當中,我輸入了【/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的數據存放在哪里呢?

????????不同的發行版通常可能有點差異性,不過,通常是放存/usr/share/man這個目錄里,然而,我們可以通過修改它的man page查找路徑來改善這個目錄的問題,修改/etc/man_db.conf(有的版本為man.conf 或 manpath.conf 或 man.config 等)即可。

2.2.查找特定命令/文件的man page說明文件

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

我們以下面的幾個例子來說明man這個命令的作用。

你可否查出來,系統中還有哪些跟【man】這個命令有關的說明文件?
答:你可以使用下面的命令來查詢一下:

使用一f這個選項就可以取得更多與man相關的信息,而上面這個結果當中也有提示(數字)的內容,舉例來說,第三行的【man(7)】表示有個man(7)的說明文件存在,但是也有個man(1)存在。

那當我們執行【man man】的時候,到底是指向哪一個說明文件?

其實,你可以指定不同的文件,舉例來說,上表當中的兩個man你可以這樣將它的文件顯示出來:

[dmtsai@study ~]$ man 1 man      //這里是用man(1)的文件說明。
[dmtsai@study~]$ man 7 man      //這里是用man(7)的文件說明

????????你可以自行將上面兩個命令輸入一次看看就知道,兩個命令輸出的結果是不同的。那個1、7就是分別取出在manpage里面關于1與7相關數據的文件。

????????好了,那么萬一我真的忘記了執行數字,只有輸入【man man】時,那么取出的數據到底是1還是7?這個就跟查找的順序有關了。

????????查找的順序是記錄在/etc/man_db.conf這個配置文件當中,先查找到的哪個說明文件,就會先被顯示出來。一般來說通常會先找到數字較小的那個,因為排序的關系,所以,man man會跟man 1 man結果相同。

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

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

當使用【man -f 命令】時,man只會找數據中的左邊那個命令(或文件)的完整名稱,有一點不同都不行。但如果我想要找的是關鍵詞呢?

????????也就是說,我想要同時找上面說的兩個地方的內容,只要該內容有關鍵詞存在,不需要完全相同的命令(或文件)就能夠找到時,該怎么辦?請看下個范例。

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

?非常多啊!

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

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

[dmtsai@study ~]$ whatis  [命令或是文件] //<==相當于man -f[命令或是文件]
[dmtsai@study ~]$ apropos [命令或是文件]  //<==相當于man -k[命令或是文件]

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

[root@study -]4 mandb
#舊版的Linux這個命令是使用makewhatis,這一版開使用mandb了

3. 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】可以得到如下的畫面:

我們看到Menu了吧,它下面那些全是超鏈接,指向那些超鏈接我們就可以跳轉到對應頁面,我們來試試看

我們可以直接按Tab鍵來到第一個超鏈接(自己移動光標來到這里也可以)

這個時候按下Enter

怎么樣?是不是很方便

更重要的是我們可以通過按N,P,U去到下一個,上一個,上一層的結點,非常方便

?鏈接之間還可以具有類似超鏈接的快速按鈕,可以通過【Tab】鍵在各個超鏈接間移動,也可以使用U、P、N來在各個層級與相關鏈接中顯示,非常不錯。

至于在info page當中可以使用的按鍵,可以看下面的表格,事實上,你也可以在info page中按下h。

按鍵
空格鍵向下翻一頁
[Page Down]向下翻一頁
[Page Up]向上翻一頁
[Tab]在節點之間移動,有節點的地方,通常會以*顯示
[Enter]當光標在節點上面時,按下Enter可以進入該節點
b移動光標到該info界面當中的第一處
e移動光標到該 info界面當中的最后一個節點處
n前往下一個節點處
p前往上一個節點處
u向上移動一層
s(/)在info page當中進行查找
h,?顯示幫助選項
q結束這次的info page

info page 是只有Linux上面才有的產物,而且易讀性增強很多,不過查詢的命令說明要具有info page功能的話,得用info page 的格式來寫成在線求助文件才行。

CentOS7將 info page的文件放置到/usr/share/info/目錄中,至于以非info page 格式寫成的說明文件(就是man page),雖然也能夠使用info 來顯示,不過其結果就會跟man相同。

舉例來說,你可以執行【info man】就知道結果了。

我們再看一個例子

這里是ls的相關介紹,我們按下Tab鍵

再按Tab鍵

?進去看看

我們可以通過按N,P,U去到下一個,上一個,上一層的結點,非常方便

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41585.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言4 運算符

目錄 1. 算術運算符 2. 關系運算符 3. 邏輯運算符 4. 位運算符 5. 賦值運算符 6. 自增和自減運算符 7. 條件運算符&#xff08;三元運算符&#xff09; 8. 逗號運算符 9. sizeof 運算符 10. 取地址和解引用運算符 11.運算符的優先級 1. 算術運算符 (加法)&#xff1…

CRT工具

CRT工具 傳輸位置設置 打開SFTP alt p 命令 ls&#xff1a;遠程機器當前目錄內容 lls&#xff1a;傳輸位置文件的目錄內容 pwd&#xff1a;遠程機器的當前位置 lpwd&#xff1a;傳輸位置的位置 get 文件&#xff1a;ftp傳輸文件 get -r 文件夾&#xff1a;ftp傳輸文件…

如何獲取歌曲id---cloudmusic

X-Requested-With:“XMLHttpRequest”: https://blog.csdn.net/muzico425/article/details/102735413 https://www.runoob.com/xml/xml-http.html https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest 通過該案例主要還是學習一下X-Requested-With:"XMLHtt…

大華DSS user_toLoginPage.action命令執行漏洞

免責聲明 本文章僅做網絡安全技術研究使用&#xff01;嚴禁用于非法犯罪行為&#xff0c;請嚴格遵守國家法律法規&#xff1b;請勿利用文章內的相關技術從事非法測試&#xff0c;如因此產生的一切不良后果與文章作者無關。使用本文所提供的信息或工具即視為同意本免責聲明&…

go語言day11 錯誤 defer(),panic(),recover()

錯誤&#xff1a; 創建錯誤 1&#xff09;fmt包下提供的方法 fmt.Errorf(" 格式化字符串信息 " &#xff0c; 空接口類型對象 ) 2&#xff09;errors包下提供的方法 errors.New(" 字符串信息 ") 創建自定義錯誤 需要實現error接口&#xff0c;而error接口…

JavaSe系列二十七: Java正則表達式

正則表達式 為什么要學習正則表達式再提幾個問題解決之道-正則表達式正則表達式基本介紹介紹 正則表達式底層實現實例分析 正則表達式語法基本介紹元字符-轉義號 \\\\元字符-字符匹配符元字符-選擇匹配符元字符-限定符元字符-定位符分組非貪婪匹配 應用實例對字符串進行如下驗證…

學習筆記——動態路由——OSPF聚合(匯總)

十一、OSPF聚合(匯總) 1、路由聚合(匯總) 路由匯總是一種重要的思想&#xff0c;在大型的項目中是必須考慮的一個重點事項。隨著網絡的規模越來越大&#xff0c;網絡中的設備所需維護的路由表項也就會越來越多&#xff0c;路由表的規模也就會逐漸變大&#xff0c;而路由表是需…

React中的useMemo和memo

引言 React是一個聲明式的JavaScript庫&#xff0c;用于構建用戶界面。在開發過程中&#xff0c;性能優化是一個重要的方面。useMemo和memo是React提供的工具&#xff0c;用于幫助開發者避免不必要的渲染和計算&#xff0c;從而提升應用性能。 問題背景 在React應用中&#…

實現antd designable平臺的組件拖拽功能

平臺&#xff1a;designable設計器 github&#xff1a;designable 目錄 1 背景2 技術棧3 組件拖拽和放置3.1 類型定義3.2 拖拽3.3 放置 1 背景 由于業務需求&#xff0c;我們需要實現designable平臺的一個簡易版的組件拖拽功能。 #mermaid-svg-QrxSDGe9YyGG3LbQ {font-family:…

【Unity2D 2022:UI】制作角色血條

一、創建血底UI 1. 創建畫布&#xff08;Canvas&#xff09; 2. 在畫布上添加血底圖像&#xff08;Image&#xff09;子物體 二、編輯血底UI 1. 將血底圖片拖入源圖像&#xff08;Source Image&#xff09;中 2. 點擊設置為圖片的原大小&#xff08;Set Native Size&#x…

設計一個會員卡系統

會員卡系統在現代商業環境中是一個重要的客戶關系管理工具。通過會員卡系統&#xff0c;企業可以有效地增加客戶粘性&#xff0c;提高客戶滿意度&#xff0c;進而提升銷售額。本文將詳細討論如何設計一個全面的會員卡系統&#xff0c;包括會員卡的類型、權益設計、續費規則、升…

Java | Leetcode Java題解之第219題存在重復元素II

題目&#xff1a; 題解&#xff1a; class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {Set<Integer> set new HashSet<Integer>();int length nums.length;for (int i 0; i < length; i) {if (i > k) {set.remove(nums[i - …

# 三 JS的流程控制和函數

三 JS的流程控制和函數 3.1 JS分支結構 if結構 這里的if結構幾乎和JAVA中的一樣,需要注意的是 if()中的非空字符串會被認為是trueif()中的非零數字會被認為是true 代碼 if(false){// 非空字符串 if判斷為trueconsole.log(true) }else{console.log(false) } if(){// 長度為0…

GitHub詳解:代碼托管與協作開發平臺

文章目錄 一、GitHub簡介二、GitHub的核心功能2.1 倉庫&#xff08;Repository&#xff09;2.2 版本控制與分支&#xff08;Branch&#xff09;2.3 Pull Request2.4 Issues與Projects2.5 GitHub Actions 三、GitHub的使用方法3.1 注冊與登錄3.2 創建和管理倉庫3.3 使用Git進行代…

【密碼學】密碼學中的四種攻擊方式和兩種攻擊手段

在密碼學中&#xff0c;攻擊方式通常指的是密碼分析者試圖破解加密信息或繞過安全機制的各種策略。根據密碼分析者對明文、密文以及加密算法的知識程度&#xff0c;攻擊可以分為以下四種基本類型&#xff1a; 一、四種攻擊的定義 &#xff08;1&#xff09;唯密文攻擊(COA, C…

PCIe驅動開發(2)— 第一個簡單驅動編寫和測試

PCIe驅動開發&#xff08;2&#xff09;— 第一個簡單驅動編寫和測試 一、前言 教程參考&#xff1a;02_實戰部分_PCIE設備測試 教程參考&#xff1a;03_PCIe設備驅動源碼解析 二、驅動編寫 新建hello_pcie.c文件 touch hello_pcie.c然后編寫內容如下所示&#xff1a; #i…

【持續集成_03課_Jenkins生成Allure報告及Sonar靜態掃描】

1、 一、構建之后的配置 1、安裝allure插件 安裝好之后&#xff0c;可以在這里搜到已經安裝的 2、配置allure的allure-commandline 正常配置&#xff0c;是要么在工具里配置&#xff0c;要么在系統里配置 allure-commandline是在工具里進行配置 兩種方式進行配置 1&#xff…

原生JavaScript實現錄屏功能

1. 前言 使用JavaScript實現瀏覽器中打開系統錄屏功能 示例圖: 2. 源碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><…

LabVIEW機器視覺系統中的圖像畸變、校準和矯正

在機器視覺應用中&#xff0c;圖像畸變、校準和矯正是確保圖像準確性的關鍵步驟。LabVIEW作為一種強大的圖像處理和分析工具&#xff0c;提供了一系列功能來處理這些問題。以下是對圖像畸變、校準和矯正的詳細介紹。 圖像畸變 圖像畸變 是指由于攝像鏡頭的光學特性或拍攝角度問…

算法重新刷題

基礎算法 前綴和 一維前綴和 [USACO16JAN] Subsequences Summing to Sevens S - 洛谷 這一題主要是需要結合數學知識來求解&#xff0c; #include <iostream> #include <cstring> #include <cstdio> #include <algorithm>using namespace std;con…