引子
為什么要從man和help開(kāi)始學(xué)習(xí)?因?yàn)檫@兩個(gè)命令可以大大提升學(xué)者的自學(xué)能力。學(xué)會(huì)了這兩個(gè)命令,可以搞定很多的問(wèn)題。
man命令
man是英文單詞manual的縮寫(xiě),在這里是手冊(cè)的意思,man最大的作用就是列出目標(biāo)命令的安裝手冊(cè),可供用戶(hù)查看目標(biāo)命令的使用方法。
man [OPTION] [COMMAND]
我們同樣可以通過(guò)man命令查看man的手冊(cè)進(jìn)行參考:
輸出man man
命令后會(huì)出現(xiàn)man的手冊(cè):
名稱(chēng)
man - 系統(tǒng)參考手冊(cè)的接口
概述
man [man 選項(xiàng)] [[章節(jié)] 頁(yè) ...] ...
man -k [apropos 選項(xiàng)] 正則表達(dá)式 ...
man -K [man 選項(xiàng)] [章節(jié)] 關(guān)鍵詞 ...
man -f [whatis 選項(xiàng)] 頁(yè) ...
man -l [man 選項(xiàng)] 文件 ...
man -w|-W [man 選項(xiàng)] page ...
從上面我們可以看出:
man -k其實(shí)與apropos等價(jià),因?yàn)槎叩腫OPTIONG]可以通用。
同理man -f與whatis等價(jià)。
是不是還有些困惑,沒(méi)關(guān)系man還為我們提供了示例:
示例:
man ls
顯示 項(xiàng)目 (程序) ls 對(duì)應(yīng)的手冊(cè)頁(yè)。
man man.7
顯示章節(jié) 7 中宏包 man 對(duì)應(yīng)的手冊(cè)頁(yè)。(這是“man 7 man”的另一種拼方
法。)
man 'man(7)'
顯示章節(jié) 7 中宏包 man 對(duì)應(yīng)的手冊(cè)頁(yè)。(這是“man 7 man”的另一種拼寫(xiě)方法。該方法在復(fù)制和粘貼手冊(cè)頁(yè)的交叉引用時(shí)可能更方便。請(qǐng)注意,括號(hào)在通常情況下必須被引號(hào)括起以避免 shell 轉(zhuǎn)義。)
man -a intro
正確執(zhí)行時(shí)顯示手冊(cè)中包含的所有可用的 intro 手冊(cè)頁(yè)。可以在連續(xù)顯示過(guò)
程中退出或跳過(guò)任一頁(yè)。
man -k printf
將關(guān)鍵詞 printf 作為正則表達(dá)式來(lái)搜索對(duì)應(yīng)的手冊(cè)頁(yè)概述和手冊(cè)頁(yè)名
稱(chēng),并打印所有匹配結(jié)果。等效于 apropos printf.
man -f smail
查找 smail 引用的手冊(cè)頁(yè)并輸出找到的所有概述。等效于 whatis smail.
這里其實(shí)我們就已經(jīng)初步了解了man的用法,剩下的就是應(yīng)用了。
help
help函數(shù)的主要作用是用于獲取“幫助”信息,命令的基本結(jié)構(gòu)是 help [-dms] [模式 ...]
輸出help help獲取help的幫助。
help: help [-dms] [模式 ...]
//這里解釋一下[-dms]的意思也就是[OPTION]的選項(xiàng)有三個(gè) -d -m 和 -s 我們可以從下面的
顯示內(nèi)建命令的相關(guān)信息。
顯示內(nèi)建命令的簡(jiǎn)略信息。如果指定了 <模式>,給出所有匹配 <模式>
的命令的詳細(xì)幫助,否則打印幫助主題列表。
選項(xiàng):
-d 輸出每個(gè)主題的簡(jiǎn)短描述
-m 以偽 man 手冊(cè)的格式顯示用法
-s 僅對(duì)每一個(gè)匹配 <模式> 的主題輸出簡(jiǎn)短的用法提要
參數(shù):
模式 用來(lái)確定幫助主題的模式
退出狀態(tài):
返回成功,除非沒(méi)有找到 <模式>,或者使用了無(wú)效的選項(xiàng)。
其實(shí)我們看上面的解釋就能很好地使用help了。
help和man的區(qū)別
在學(xué)習(xí)help用法的時(shí)候,我們可不可以輸入man help
指令查看help的手冊(cè)呢?
答案是不可以。
為什么呢?
- help 是Bash shell的內(nèi)建命令,用于獲取Shell內(nèi)建命令的簡(jiǎn)要幫助信息。它并不提供外部命令(系統(tǒng)上安裝的其他軟件包提供的命令)的幫助。
- man 主要用于查看外部命令的手冊(cè)頁(yè),包括系統(tǒng)上安裝的外部命令的詳細(xì)文檔。
為了理解以上一段話(huà),我們首先得知道內(nèi)建命令和外部命令。
內(nèi)建命令 vs 外部命令
內(nèi)建命令 (Built-in Commands):
定義:內(nèi)建命令是直接嵌入到Shell解釋器中的命令。它們不是獨(dú)立的可執(zhí)行文件,而是Shell的一部分。
執(zhí)行位置:在Shell解釋器中執(zhí)行,而不需要啟動(dòng)新的進(jìn)程。
性能:通常比外部命令執(zhí)行得更快,因?yàn)樗鼈儾恍枰獑?dòng)額外的進(jìn)程。
例子:cd、echo、pwd 是Bash中的內(nèi)建命令。
外部命令 (External Commands):
定義:外部命令是獨(dú)立的可執(zhí)行文件,存儲(chǔ)在文件系統(tǒng)中的某個(gè)位置。它們不是Shell解釋器的一部分。
執(zhí)行位置:需要啟動(dòng)新的進(jìn)程,通過(guò)調(diào)用外部命令的可執(zhí)行文件來(lái)執(zhí)行。
性能:相對(duì)較慢,因?yàn)樾枰獎(jiǎng)?chuàng)建新的進(jìn)程。
例子:ls、grep、cp 是外部命令,它們通常存儲(chǔ)在系統(tǒng)的可執(zhí)行文件路徑中。
如何判斷是內(nèi)建命令和外部命令
我們使用type命令來(lái)查找一個(gè)命令是內(nèi)建命令還是外部命令。type命令非常簡(jiǎn)單,就不贅述了,在這里我們可以先使用type type
查看type的命令類(lèi)型,然后決定使用man還是help自學(xué)type。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-822623.html
再學(xué)習(xí)
--help
可以在一定程度上解決man和help在內(nèi)建命令和外部命令的尷尬問(wèn)題,無(wú)論是內(nèi)建命令還是外部命令,都可以使用下面的代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822623.html
[command] --help
到了這里,關(guān)于每日Linux(一)——man和help命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!