linux的內建命令和外部命令

2021-06-21 15:07:38 字數 938 閱讀 6054

linux命令有內部命令(內建命令)和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。

內部命令實際上是shell程式的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程式識別並在shell程式內部完成執行,通常在linux系統載入執行時shell就被載入並駐留在系統記憶體中。內部命令是寫在bashy原始碼裡面的,其執行速度比外部命令快,因為解析內部命令shell不需要建立子程序。比如:exit,history,cd,echo等。更直觀點理解就是,內建命令就在shell程式中,載入shell的同時就把它內部的內建命令載入進記憶體了。

外部命令是linux系統中的實用程式部分,因為實用程式的功能通常都比較強大,所以其包含的程式量也會很大,在系統載入時並不隨系統一起被載入到記憶體中,而是在需要時才將其呼叫記憶體。通常外部命令的實體並不包含在shell中,但是其命令執行過程是由shell程式控制的。shell程式管理外部命令執行的路徑查詢、載入存放,並控制命令的執行。外部命令是在bash之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通過「echo $path」命令檢視外部命令的儲存路徑,比如:ls、vi等。

用type命令可以分辨內部命令與外部命令

[root@localhost account]# type cd

cd is a shell builtin

通常情況下,,指令碼中的bash內建命令在執行的時候是不會fork出乙個子程序的.。但是指令碼中的外部或者過濾命令通常會fork出乙個子程序。 乙個內建命令通常會與乙個系統命令同名, 但是bash在內部重新實現了這些命令.。比如,,bash的echo命令與/bin/echo就不盡相同,,雖然它們的行為在絕大多數情況下都是一樣的。

既然還想知道ls用了哪些呼叫,只好直接去看看ls的原始碼。

具體的步驟可以參考

大致的思路就應該是去讀取當前資料夾的目錄項來獲得該目錄下的所有檔名。

Linux內建命令和外部命令

1 linux的命令可以分為內部命令和外部命令 內建命令在系統啟動時就調入記憶體,是常駐記憶體的,所以執行效率高。而外部命令是系統的軟體功能,使用者需要時才從硬碟中讀入記憶體。2 type display information about command type 檢視當前系統的命令是否為內建命令...

區分Linux內建命令和外部命令 pwd

linux命令有內部命令 內建命令 和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令實際上是shell程式的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程式識別並在shell程式內部完成執行,通常在 linux系統載入執行時shell就被載入並...

區分Linux內建命令和外部命令 pwd

linux命令有內部命令 內建命令 和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。內部命令實際上是shell程式的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程式識別並在shell程式內部完成執行,通常在 linux系統載入執行時shell就被載入並...