Linux學習之內置命令和外部命令詳解

2021-07-24 05:52:41 字數 1674 閱讀 1615

linux命令

有內部命令(內建命令)和外部命令之分,內部命令和外部命令功能基本相同,但是其工作機制相差很大。本文就內建命令和外部命令做一下介紹。

一、內部命令(內建命令)

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

所以在內部命令被執行的時候是先去記憶體裡面查詢,然後再被執行。

二、外部命令

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

三、內部命令和外部命令的其他相關介紹

1)如何區分二者

判斷乙個命令是內部命令還是外部命令的方法是:type command

[root@localhoast ~]# typepwdpwdisashellbuiltin

[root@localhoast ~]# typevimvimis/usr/bin/vi

顯示的builtin就表示該命令是內部(內建命令),顯示出執行路徑的命令就是外部命令。

2)二者的執行過程

內部命令被使用者執行時系統會從記憶體中去呼叫,呼叫的速率快。外部命令被執行的時候,系統將會讀取環境變數檔案.bash_profile、/etc/profile去找path路徑。

然後在提一下命令的呼叫,有些外部命令被使用過後,會存在在hash表中,當你再次輸入該命令它的呼叫會是這樣乙個過程。

hash——>內建命令——>path 命令的呼叫其實應該是這樣乙個過程。hash的優先順序最高,然後是內部命令,最後是外部命令。

[root@localhost ~]#pwd

/root

[root@localhost ~]#ls

anaconda-ks.cfg install.log install.log.syslog

[root@localhost ~]# hash -l

//顯示hash表

builtin hash -p/bin/catcat

builtin hash -p/bin/lsls

從hash表中可以看出,hash表不存放系統內建命令。

運維部落

Linux內建命令和外部命令

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

linux的內建命令和外部命令

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

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

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