1.內(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í)行速度比外部命令快特漩。
2.外部命令是 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 程序控制的。
3.使用 type 命令來(lái)區(qū)分命令是內(nèi)建的還是外部的
得到這樣的結(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/sbin/xxx
若是得到alias的結(jié)果雳灾,說(shuō)明該指令為命令別名所設(shè)定的名稱漠酿;
xxx is an alias for xx --xxx
help 命令只能用于顯示內(nèi)建命令的幫助信息 5.外部命令的話基本上都有一個(gè)參數(shù)--help,這樣就可以得到相應(yīng)的的幫助