shell 的內置命令與外部命令的區別

shell命令通常分爲兩類:

內置命令(man builtins)

外部命令

下面分析兩者的區別。


內置命令:    

        內部命令被構建在shell之中。當執行shell命令時,內部命令的執行速度非常快。這是因爲沒有其他的進程因爲執行這條命令而被創建。比如說,當我們執行“cd”命令時,沒有進程被創建。在執行過程中只是簡單的改變當前的目錄。


外部命令:

        外部命令並沒有被構建在shell中。這些可執行的外部命令保存在一個獨立的文件當中。當一個外部命令被執行時,一個新的進程即被創建同時命令被執行。


        通過type命令可以判斷命令是內置還是外部的。


        我們該使用外部命令還是內部命令或者哪一種命令更好?像這樣的問題是沒有任何意義的。因爲大多數情況下我們只要達成我們的目標,而不必在意使用的是內部命令還是外部命令。

        內部命令和外部命令最大的區別之處就是性能。內部命令由於構建在shell中而不必創建多餘的進程,要比外部命令執行快得多。因此和執行更大的腳本道理一樣,執行包含很多外部命令的腳本會損害腳本的性能。

        我們並不是總要面對內部命令與外部命令的選擇。但是在我們腳本聯繫的過程中只要我們認真的觀察,我們可以發現有些地方我們可以避免使用外部命令。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章