内建命令:

  shell内建命令是指bash(或其它版本)工具集中的命令。一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他们行为大体相仿。内建命令比系统论命令有比较高的执行效率,外部命令执行时往往需要fork一个子进程,而内建命令一般不用。

  常用参数

  type命令的基本使用方式就是直接跟上命令名字。

  type -a可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令。

  type -p只返回外部命令的信息,相当于which命令。

  type -f只返回shell函数的信息。

  type -t 只返回指定类型的信息。

 


 

  1.判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是:

  type ls 的输出是 ls 是 `ls --color=auto' 的别名

  type if 的输出是 if 是 shell 关键字

  type type 的输出是 type 是 shell 内嵌

  type gedit 的输出是 gedit 是 /usr/bin/gedit

  type frydsh 的输出是 bash: type: frydsh: 未找到
 

  2.判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是的另一种方法(适用于脚本编程):

  type -t ls 的输出是 alias

  type -t if 的输出是 keyword

  type -t type 的输出是 builtin

  type -t gedit 的输出是 file

  type -t frydsh 没有输出
 

  3.显示一个名字的所有可能:

  type -a kill 的输出是 kill 是 shell 内嵌 和 kill 是 /bin/kill

  type -at kill 的输出是 builtin 和 file
 

  4.查看一个命令的执行路径(如果它是外部命令的话):

  type -p gedit 的输出是 /usr/bin/gedit

  type -p kill 没有输出(因为kill是内置命令)
 

  5.强制搜索外部命令:

  type -P kill 的输出是 /bin/kill