## 內建命令與外部命令
Linux命令有內建命令(內部命令)和外部命令之分,內部命令和外部命令功能基本相同,但也有些細微差別。
內建命令,實際上是Shell程序的一部分,其中包含的是一些比較簡單的Linux系統命令,這些命令由Shell程序識別并在Shell程序內部完成運行,通常在Linux系統加載運行時Shell就被加載并駐留在系統內存中。內部命令是寫Bash源碼里面的,其執行速度比外部命令快,因為解析內部命令Shell不需要創建子進程。比如:exit,history,cd,echo等,更多的內建命令使用見https://www.gnu.org/software/bash/manual/html_node/Builtin-Index.html#Builtin-Index。
外部命令,Linux系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以其包含的程序量也會很大,在系統加載時并不隨系統一起被加載到內存中,而是在需要時才將其調用內存。通常外部命令的實體并不包含在Shell中,但是其命令執行過程是由Shell程序控制的。Shell程序管理外部命令執行的路徑查找、加載存放,并控制命令的執行。外部命令是在Bash之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通過“echo $PATH”命令查看外部命令的存儲路徑,比如:ls、vi等。
我們可以通過type命令來識別內建命令還是外部命令。
```
[root@blog.puppeter.com_centos ~]# type test # 內建命令
test is a shell builtin
[root@blog.puppeter.com_centos ~]# type df # 外部命令
df is /usr/bin/df
```
- Introduction
- 1.Shell編程基礎
- 什么是Shell
- 編寫第一個Bash程序
- 2.變量
- 什么是變量
- 變量四種賦值方式
- 指定變量類型
- 變量的類型
- 特殊變量
- 3.Bash符號相關
- Bash符號相關
- 特殊符號
- 數學運算符號
- 4.內建命令與外部命令
- 內建命令與外部命令
- 5.read命令
- read命令
- 6.條件語句
- if..then..fi
- if..then..else..fi
- if..then..elif..fi
- 空命令
- 文件測試符
- 字符串判斷、與、或和非
- []與[[]]符號
- 7.Bash循環 && 分支語句
- while循環語句
- for循環
- for..in循環
- until循環
- select循環
- case分支語句
- 8.正則表達式
- 正則表達式
- 9.子Shell和受限Shell
- 子Shell
- 受限Shell
- 10.函數與函數的加載
- 函數語法與案例
- 遞歸函數
- 函數的加載
- 11.Bash腳本風格
- Bash腳本風格
- 12.Bash腳本調試
- Bash腳本調試
- 13.sed && awk
- sed
- 14.awk
- awk
- 15 Bash雜項 && 案例
- while循環的陷阱
- Bash的生命周期
- IO重定向
- /bin/bash和/bin/sh區別
- 命令雜項
- Shell加密
- 16.10.2.案例
- Bash版回收站
- 17.Bash中文速查表
- 中文速查表