Linux 中的內部命令和外部命令

Linux 中的內部命令和外部命令

作者:Grey

原文地址:

博客園:Linux 中的內部命令和外部命令

CSDN:Linux 中的內部命令和外部命令

什麼是 bash shell ?

bash shell,就是一個程序,就是 Linux 系統安裝的一個軟件,用戶通過 SSH 輸入用戶名密碼登錄操作系統後,直接進入 bash shell 這個軟件

shell 命令分爲外部命令和內置命令:

比較 內置命令 外部命名
定義 Bash Shell 自帶的命令 Linux 系統中的應用程序
執行效率
執行過程 調用當前 Shell 進程的一個函數 觸發磁盤 I/O,fork 出一個單獨的進程,執行完成後退出

內部命令( Shell 自帶的命令)

例如:cd命令,使用

type cd

顯示:

cd is a shell builtin

說明cd命令是 shell 自帶的命令

通過

help -d

可以查看所有內部命令

image

外部命令(不是Shell自帶的命令,由用戶安裝的)

比如 ifconfig 命令

type ifconfig

顯示:ifconfig is /usr/sbin/ifconfig

可以使用 file 命令查看命令是一個什麼類型的文件

file /usr/sbin/ifconfig

顯示:

/usr/sbin/ifconfig: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=22d5b3be8d3ce3c71cad5b982581ede262397b56, stripped

使用 whereis 查看某個命令在哪個位置

whereis ifconfig

顯示

ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

此外:

內部命令的幫助用 help 指令,外部命令的幫助用 man 指令。

更多

bash shell 在執行命令的時候,做了兩步優化:

第一個優化,通過 PATH 來(echo $PATH) 搜索命令 。

第二個優化,通過 hash 來搜索命令,hash查看,hash -r(清空hash)

編寫腳本時候, 如需要執行權限,要賦予該文件執行權限 chmod u+rx filename

如果 bash 執行,則不需要賦予執行權限。

# 不需要執行權限
bash ./filename.sh
# 要賦予執行權限
./filename.sh

注:以上兩種執行方式都是新開一個進程,使用如下方式執行

source ./filename.sh
.filename.sh

不會產生新的子進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章