Linux內建命令和非內建命令認識

2021-10-03 11:24:38 字數 1336 閱讀 9885

什麼是內建命令,什麼是外部命令呢?這和幫助命令又有什麼關係呢?

因為有一些檢視幫助的工具在內建命令與外建命令上是有區別對待的。

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

外部命令是 linux 系統中的實用程式部分,因為實用程式的功能通常都比較強大,所以其包含的程式量也會很大,在系統載入時並不隨系統一起被載入到記憶體中,而是在需要時才將其調入記憶體。雖然其不包含在 shell 中,但是其命令執行過程是由 shell 程式控制的。外部命令是在 bash 之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。

簡單來說就是:乙個是天生自帶的天賦技能,乙個是後天得來的附加技能。我們可以使用 type 命令來區分命令是內建的還是外部的。例如這兩個得出的結果是不同的

new@new-virtual-machine:~$ type

exit

exit 是 shell 內建

new@new-virtual-machine:~$ type vim

vim 是 /usr/bin/vim

對於內建命令使用 which 便無法查詢到如:

new@new-virtual-machine:~$ type cd

cd 是 shell 內建

new@new-virtual-machine:~$ type vim

vim 是 /usr/bin/vim

new@new-virtual-machine:~$ which cd

new@new-virtual-machine:~$ which vim

/usr/bin/vim

需要注意的是,有的命令可以多種實現,要檢視命令的不同實現可以使用type命令的-a引數。pwd就是既有內建也有非內建,如要使用外部命令,直接指明對應檔案即可;

new@new-virtual-machine:~$ type

pwdpwd 是 shell 內建

new@new-virtual-machine:~$ which pwd

/usr/bin/

pwd

Linux內建命令

主要shell內建命令 shell有很多內建在其源 中的命令。這些命令是內建的,所以shell不必到磁碟上搜尋它們,執行速度因此加快。不同的shell內建命令有所不同。a.2.1 bash內建命令 執行當前程序環境中的程式。同source。file dot命令從檔案file中讀取命令並執行。空操作,...

Linux內建命令和外部命令

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

Linux常見內建命令

shell有很多內建在其源 中的命令。這些命令是內建的,所以shell不必到磁碟上搜尋它們,執行速度因此加快。不同的shell內建命令有所不同。1 執行當前程序環境中的程式。同source。2 file dot命令從檔案file中讀取命令並執行。3 空操作,返回退出狀態0。4 alias 顯示和建立...