1.什麼是build in命令:
shell內建命令是指bash(或其它版本)工具集中的命令。一般都會有一個與之同名的系統命令,比如bash中的echo命令與/bin/echo是兩個不同的命令,盡管他們行為大體相仿。當在bash中鍵入一個命令時系統會先看他是否是一個內建命令,如果不是才會查看是否是系統命令或第三方工具。所以在bash中鍵入echo命令實際上執行bash工具集中的bash命令也就是內建命令,而不是/bin/echo這個系統命令。
2.內建命令與系統命令
內建命令要比系統論命令有比較高的執行效率。外部命令執行時往往需要fork出(產生出)一個子進程,而內建命令一般不用。下面(或許以後還會有)這一篇文章將介簡bash的內建命令。
3.查看一個命令是系統命令還是內建命令:type
[email protected]:~/Documents
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
[email protected]:~/Documents
$ type -a echo
echo is a shell builtin
echo is /bin/echo
可以看出,有些命令,echo和pwd同時是內建命令和系統命令。
4.常見命令的類型
[root@linuxidc ~]# type -a cd
cd is a shell builtin
[root@linuxidc ~]# type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
[root@linuxidc ~]# type -a time
time is a shell keyword
time is /usr/bin/time
[root@linuxidc ~]# type -a date
date is /bin/date
[root@linuxidc ~]# type -a which
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
which is /usr/bin/which
[root@linuxidc ~]# type -a whereis
whereis is /usr/bin/whereis
[root@linuxidc ~]# type -a whatis
whatis is /usr/bin/whatis
[root@linuxidc ~]# type -a function
function is a shell keyword
[root@linuxidc ~]# type -a ls
ls is aliased to `ls --color=tty'
ls is /bin/ls
[root@linuxidc ~]# type -a ll
ll is aliased to `ls -l --color=tty'
[root@linuxidc ~]# type -a echo
echo is a shell builtin
echo is /bin/echo
[root@linuxidc ~]# type -a bulitin
-bash: type: bulitin: not found
[root@linuxidc ~]# type -a builtin
builtin is a shell builtin
[root@linuxidc ~]# type -a keyword
-bash: type: keyword: not found
[root@linuxidc ~]# type -a command
command is a shell builtin
[root@linuxidc ~]# type -a alias
alias is a shell builtin
[root@linuxidc ~]# type -a grep
grep is /bin/grep
[root@linuxidc ~]#