Linux中內部命令和外部命令如何區分?
在Linux系統中,有很多命令可供我們使用,大部分操作都可以藉助命令來完成,讓我們的工作更加高效。那麼Linux系統中命令有幾種型別?Linux命令分為兩類,具體為內部命令和外部命令,接下來我們來看看具體的內容介紹。
Linux命令有內部命令和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。
內建命令在系統啟動時就調入記憶體,是常駐記憶體的,所以執行效率高。而外部命令是系統的軟體功能,使用者需要時才從硬碟中讀入記憶體。
外部命令
外部命令也稱為檔案系統命令,是bash shell之外的程式,也並不是shell的一部分。外部命令一般位於/bin、/usr/bin、/sbin或/usr/sbin中。外部命令是Linux系統中的實用程式部分,因為實用程式的功能通常都比較強大,所以其包含的程式量也會很大,在系統載入時並不隨系統一起被載入到記憶體中,而是在需要時才將其呼叫記憶體。
通常外部命令的實體並不包含在shell中,但是其命令執行過程是由shell程式控制的。shell程式管理外部命令執行的路徑查詢、載入存放,並控制命令的執行。外部命令是在bash之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/bin……等等。可透過“echo$PATH”命令檢視外部命令的儲存路徑,比如:ls、vi等。
內建命令
內部命令實際上是shell程式的一部分,其中包含的是一些比較簡單的Linux系統命令,這些命令由shell程式識別並在shell程式內部完成執行,通常在Linux系統載入執行時shell就被載入並駐留在系統記憶體中。
內部命令是寫在bash原始碼裡面的,其執行速度比外部命令快,因為解析內部命令shell不需要建立子程式。比如:exit,history,cd,echo等。
說明
其中,pwd命令是一個特殊的命令,其有兩個版本,一個版本是內建命令,一個版本是外部命令。
總結而言,外部命令會建立出一個包含全新環境的子程式,而內建命令不會。相比之下,外部命令的使用成本更高,所以內建命令更高效,不會受到環境變化的影響。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2939366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Bash 中同名的內部命令和外部命令
- <linux下內建命令和外部命令>Linux
- vue不是內部或外部命令Vue
- node不是內部或外部命令
- Pycharm:terminal中python不是內部或外部命令PyCharmPython
- anaconda中執行pip命令顯示不是內部或外部命令
- net start mysql net不是內部或外部命令MySql
- cmake的使用(cmake不是內部或外部命令)
- Linux shell命令列檢視判斷檔案是內部內建自帶命令還是外部命令Linux命令列
- python不是內部或外部命令怎麼回事Python
- Win10提示python不是內部或外部命令怎麼回事 win10執行python提示不是內部或外部命令如何解決Win10Python
- 說說Linux shell外部命令與內建命令Linux
- Windows下配置Git(git命令會提示“不是內部或外部命令)WindowsGit
- perl中如何執行外部命令
- maven安裝問題——mvn不是內部或外部命令Maven
- git ssh金鑰生成過程中ssh-keygen不是內部或外部命令Git
- pytorch中’tensorboard‘不是內部或外部命令,也不是可執行的程式PyTorchORB
- 菜鳥調錯(七)——控制檯中執行mvn命令後提示‘cmd’不是內部或外部命令
- ‘cnpm' 不是內部或外部命令,也不是可執行的程式NPM
- 'findstr' 不是內部或外部命令,也不是可執行的程式
- 'ping' 不是內部或外部命令,也不是可執行的程式
- cmd執行命令時:不是內部或外部命令,也不是可執行的程式
- win10電腦執行telnet命令時提示“telnet不是內部或外部命令”如何解決Win10
- xxx 不是內部或外部命令解決辦法以及npm配置NPM
- windows下cmd中輸入nvidia-smi顯示不是內部或外部命令解決方法!Windows
- 'webpack-dev-server' 不是內部或外部命令,也不是可執行的程式WebdevServer
- 如何從 Vim 中訪問 shell 或者執行外部命令
- conda不是內部或外部命令,也不是可執行的程式解決方案
- win10環境下jdk1.8的安裝和環境配置(javac不是內部或者外部命令)Win10JDKJava
- 靜態內部類和非靜態內部類區別
- 在cmd上一直報javac不是內部或外部命令的詳解及原理Java
- Linux中apt和apt-get命令有什麼區別?如何使用?Linuxapt-get
- 【linux】free命令中cached和buffers的區別Linux
- Linux free 命令中cached 和 buffers 的區別Linux
- Linux中rmdir和rm命令的主要區別!Linux
- iOS中atomic和nonatomic區別及內部實現iOS
- ‘javac‘ 不是內部或外部命令,也不是可執行的程式 或批處理檔案。Java
- 如何區分Linux和Unix?作業系統!Linux作業系統