1. 程式人生 > 實用技巧 >Linux的內部命令和外部命令

Linux的內部命令和外部命令

為了提高系統執行效率,將經常使用的輕量的命令在系統啟動時一併載入這些命令到記憶體中供shell隨時呼叫,這部分命令即為內部命令。反之,只有當被呼叫時才會被硬碟載入的這部分命令即為外部命令。
內部命令實際上是shell程式的一部分,其中包含的是一些比較輕量的linux系統命令。
外部命令在系統啟動時並不隨系統一起被載入到記憶體中,而是在需要時才將其呼叫記憶體。存放位置被定義在$PATH中。如/usr/bin /usr/sbin,在初次被呼叫之後 外部命令會被快取到記憶體中 以便下次系統更快的呼叫。
當前有哪些外部命令被快取 可以使用hash命令來檢視。要注意的是 快取的外部命令只針對當前使用者的本次登入。
不同型別的命令執行順序也不同,別名優先順序最高,比較好理解,因為我們通常使用的ls ll cp等命令實際上都是別名。
執行順序:別名>內部命令>被快取的外部命令>外部命令

[root@Server00 ~]# type man 使用type命令可以判斷命令是內部命令還是外部命令
man is /usr/bin/man
[root@Server00 ~]# type help
help is a shell builtin
[root@Server00 ~]# hash 使用hash命令,可以檢視該外部命令是否被快取
hits    command
   2    /usr/bin/ssh
[root@Server00 ~]# man ls
[root@Server00 ~]# hash 可以發現當外部命令被使用過之後 會被快取
hits    command
   2    /usr/bin/ssh
   1    /usr/bin/man
[root@Server00 ~]# alias 檢視當前設定了哪些別名
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'