1.外部命令
外部命令走孽,有時(shí)候也被稱為文件系統(tǒng)命令尺棋,是存在于bash shell之外的程序。它們并不是shell程序的一部分莽使。外部命令通常位于/bin锐极、/usr/bin、/sbin或/usr/sbin中吮旅。當(dāng)執(zhí)行這些外部命令的時(shí)候溪烤,會(huì)創(chuàng)建一個(gè)子進(jìn)程味咳。這種操作被稱為衍生庇勃。當(dāng)進(jìn)程執(zhí)行衍生操作時(shí)檬嘀,它需要花費(fèi)時(shí)間和精力來設(shè)置新子進(jìn)程的環(huán)境。所以說责嚷,外部命令多少還是需要代價(jià)的鸳兽。
2.內(nèi)建命令
內(nèi)建命令和外部命令的區(qū)別在于前者不許喲使用子進(jìn)程來執(zhí)行。它們已經(jīng)和shell編譯成一體罕拂,作為shell工具的組成部分存在揍异。不需要借用外部程序來運(yùn)行。因?yàn)榧炔恍枰ㄟ^衍生出子程序來zhixing 爆班,也不需要打開程序文件衷掷,內(nèi)建命令的執(zhí)行速度要更快,效率也更高柿菩。
如何區(qū)別命令是內(nèi)建命令還是外部命令
使用type命令和which命令
type -a ps
which ps