1、內(nèi)建命令與外部命令之分
2胆胰、help , man , info命令的使用以及區(qū)別
內(nèi)建命令與外部命令
有一些查看幫助的工具在內(nèi)建命令與外建命令上是有區(qū)別對(duì)待的狞贱。
內(nèi)建命令實(shí)際上是 shell 程序的一部分,其中包含的是一些比較簡(jiǎn)單的 Linux 系統(tǒng)命令蜀涨,這些命令是寫在bash源碼的builtins里面的瞎嬉,由 shell 程序識(shí)別并在 shell 程序內(nèi)部完成運(yùn)行蝎毡,通常在 Linux 系統(tǒng)加載運(yùn)行時(shí) shell 就被加載并駐留在系統(tǒng)內(nèi)存中。而且解析內(nèi)部命令 shell 不需要?jiǎng)?chuàng)建子進(jìn)程氧枣,因此其執(zhí)行速度比外部命令快沐兵。比如:history、cd便监、exit 等等扎谎。
外部命令是 Linux 系統(tǒng)中的實(shí)用程序部分,因?yàn)閷?shí)用程序的功能通常都比較強(qiáng)大烧董,所以其包含的程序量也會(huì)很大毁靶,在系統(tǒng)加載時(shí)并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時(shí)才將其調(diào)入內(nèi)存逊移。雖然其不包含在 shell 中预吆,但是其命令執(zhí)行過(guò)程是由 shell 程序控制的。外部命令是在 Bash 之外額外安裝的胳泉,通常放在/bin拐叉,/usr/bin,/sbin胶背,/usr/sbin等等巷嚣。比如:ls、vi等钳吟。
我們可以使用 type 命令來(lái)區(qū)分命令是內(nèi)建的還是外部的廷粒。例如這兩個(gè)得出的結(jié)果是不同的
#得到這樣的結(jié)果說(shuō)明是內(nèi)建命令,正如上文所說(shuō)內(nèi)建命令都是在 bash 源碼中的 builtins 的.def中
xxx is a shell builtin
#得到這樣的結(jié)果說(shuō)明是外部命令红且,正如上文所說(shuō)坝茎,外部命令在/usr/bin or /usr/sbin等等中
xxx is /usr/bin/xxx
#若是得到alias的結(jié)果,說(shuō)明該指令為命令別名所設(shè)定的名稱暇番;
xxx is an alias for xx --xxx
幫助命令
1嗤放、help命令
# help xxx 只能用于內(nèi)部命令,不能用于外部命令
$help cd
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)
$help ls
沒(méi)有與“l(fā)s”匹配的XXXX
# xxx --help 用于外部命令
$ls --help
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)
2壁酬、man命令
$man ls
得到的內(nèi)容比用 help 更多更詳細(xì)次酌,而且 man 沒(méi)有內(nèi)建與外部命令的區(qū)分,因?yàn)?man 工具是顯示系統(tǒng)手冊(cè)頁(yè)中的內(nèi)容舆乔,也就是一本電子版的字典岳服,這些內(nèi)容大多數(shù)都是對(duì)命令的解釋信息,還有一些相關(guān)的描述希俩。通過(guò)查看系統(tǒng)文檔中的 man 也可以得到程序的更多相關(guān)信息和 Linux 的更多特性吊宋。
在嘗試上面這個(gè)命令時(shí)我們會(huì)發(fā)現(xiàn)最左上角顯示“ LS (1)”,在這里颜武,“ LS ”表示手冊(cè)名稱璃搜,而“(1)”表示該手冊(cè)位于第一章節(jié)拖吼。這個(gè)章節(jié)又是什么?在 man 手冊(cè)中一共有這么幾個(gè)章節(jié)
章節(jié)數(shù) 說(shuō)明
1 Standard commands (標(biāo)準(zhǔn)命令)
2 System calls (系統(tǒng)調(diào)用)
3 Library functions (庫(kù)函數(shù))
4 Special devices (設(shè)備說(shuō)明)
5 File formats (文件格式)
6 Games and toys (游戲和娛樂(lè))
7 Miscellaneous (雜項(xiàng))
8 Administrative Commands (管理員命令)
9 其他(Linux特定的)这吻, 用來(lái)存放內(nèi)核例行程序的文檔吊档。
打開手冊(cè)之后我們可以通過(guò) pgup 與 pgdn 或者上下鍵來(lái)上下翻看,可以按 q 退出當(dāng)前頁(yè)面
3唾糯、info命令
$info ls
得到的信息比 man 還要多籍铁,info 來(lái)自自由軟件基金會(huì)的 GNU 項(xiàng)目,是 GNU 的超文本幫助系統(tǒng)趾断,能夠更完整的顯示出 GNU 信息拒名。所以得到的信息當(dāng)然更多
man 和 info 就像兩個(gè)集合,它們有一個(gè)交集部分芋酌,但與 man 相比增显,info 工具可顯示更完整的 GNU 工具信息。若 man 頁(yè)包含的某個(gè)工具的概要信息在 info 中也有介紹脐帝,那么 man 頁(yè)中會(huì)有“請(qǐng)參考 info 頁(yè)更詳細(xì)內(nèi)容”的字樣同云。