1、內(nèi)建命令與外部命令之分
2樟遣、help , man , info命令的使用以及區(qū)別
內(nèi)建命令與外部命令
有一些查看幫助的工具在內(nèi)建命令與外建命令上是有區(qū)別對待的而叼。
內(nèi)建命令實際上是 shell 程序的一部分身笤,其中包含的是一些比較簡單的 Linux 系統(tǒng)命令,這些命令是寫在bash源碼的builtins里面的葵陵,由 shell 程序識別并在 shell 程序內(nèi)部完成運行液荸,通常在 Linux 系統(tǒng)加載運行時 shell 就被加載并駐留在系統(tǒng)內(nèi)存中。而且解析內(nèi)部命令 shell 不需要創(chuàng)建子進(jìn)程脱篙,因此其執(zhí)行速度比外部命令快娇钱。比如:history、cd绊困、exit 等等文搂。
外部命令是 Linux 系統(tǒng)中的實用程序部分,因為實用程序的功能通常都比較強(qiáng)大考抄,所以其包含的程序量也會很大,在系統(tǒng)加載時并不隨系統(tǒng)一起被加載到內(nèi)存中蔗彤,而是在需要時才將其調(diào)入內(nèi)存川梅。雖然其不包含在 shell 中,但是其命令執(zhí)行過程是由 shell 程序控制的然遏。外部命令是在 Bash 之外額外安裝的贫途,通常放在/bin,/usr/bin待侵,/sbin丢早,/usr/sbin等等。比如:ls秧倾、vi等怨酝。
我們可以使用 type 命令來區(qū)分命令是內(nèi)建的還是外部的。例如這兩個得出的結(jié)果是不同的
#得到這樣的結(jié)果說明是內(nèi)建命令那先,正如上文所說內(nèi)建命令都是在 bash 源碼中的 builtins 的.def中
xxx is a shell builtin
#得到這樣的結(jié)果說明是外部命令农猬,正如上文所說,外部命令在/usr/bin or /usr/sbin等等中
xxx is /usr/bin/xxx
#若是得到alias的結(jié)果售淡,說明該指令為命令別名所設(shè)定的名稱斤葱;
xxx is an alias for xx --xxx
幫助命令
1、help命令
# help xxx 只能用于內(nèi)部命令揖闸,不能用于外部命令
$help cd
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)
$help ls
沒有與“l(fā)s”匹配的XXXX
# xxx --help 用于外部命令
$ls --help
dhsafkdsjfakjsdgjkasdbkjdsb
fasdfdsfdsagsdgsdgsdgasdg
asdgdsagdsagdsgdagsdgdsg(一堆幫助文檔)
2揍堕、man命令
$man ls
得到的內(nèi)容比用 help 更多更詳細(xì),而且 man 沒有內(nèi)建與外部命令的區(qū)分汤纸,因為 man 工具是顯示系統(tǒng)手冊頁中的內(nèi)容衩茸,也就是一本電子版的字典,這些內(nèi)容大多數(shù)都是對命令的解釋信息贮泞,還有一些相關(guān)的描述递瑰。通過查看系統(tǒng)文檔中的 man 也可以得到程序的更多相關(guān)信息和 Linux 的更多特性祟牲。
在嘗試上面這個命令時我們會發(fā)現(xiàn)最左上角顯示“ LS (1)”,在這里抖部,“ LS ”表示手冊名稱说贝,而“(1)”表示該手冊位于第一章節(jié)。這個章節(jié)又是什么慎颗?在 man 手冊中一共有這么幾個章節(jié)
章節(jié)數(shù) 說明
1 Standard commands (標(biāo)準(zhǔn)命令)
2 System calls (系統(tǒng)調(diào)用)
3 Library functions (庫函數(shù))
4 Special devices (設(shè)備說明)
5 File formats (文件格式)
6 Games and toys (游戲和娛樂)
7 Miscellaneous (雜項)
8 Administrative Commands (管理員命令)
9 其他(Linux特定的)乡恕, 用來存放內(nèi)核例行程序的文檔。
打開手冊之后我們可以通過 pgup 與 pgdn 或者上下鍵來上下翻看俯萎,可以按 q 退出當(dāng)前頁面
3傲宜、info命令
$info ls
得到的信息比 man 還要多,info 來自自由軟件基金會的 GNU 項目夫啊,是 GNU 的超文本幫助系統(tǒng)函卒,能夠更完整的顯示出 GNU 信息。所以得到的信息當(dāng)然更多
man 和 info 就像兩個集合撇眯,它們有一個交集部分报嵌,但與 man 相比,info 工具可顯示更完整的 GNU 工具信息熊榛。若 man 頁包含的某個工具的概要信息在 info 中也有介紹锚国,那么 man 頁中會有“請參考 info 頁更詳細(xì)內(nèi)容”的字樣。