爱技术 & 爱分享
爱蛋蛋 & 爱生活

type命令

type命令用来显示指定命令的类型。一个命令的类型可以是如下之一

类型 解释
alias 别名
keyword 关键字,Shell保留字
function 函数,Shell函数
builtin 内建命令,Shell内建命令
file 文件,磁盘文件,外部命令
unfound 没有找到

它是Linux系统的一种自省机制,知道了是那种类型,我们就可以针对性的获取帮助。比如内建命令可以用help命令来获取帮助,外部命令用man或者info来获取帮助。

命令格式

type [-aftpP] name [name ...

选项

如果没有设置选项的话将每个名称解释为命令名。

如果使用-t选项,则type分别打印一个字符串,如果name是别名,shell保留字,函数,内建函数或磁盘文件 该字符串是 alias,keyword,function,builtin或file。

如果找不到名称,则不会打印任何内容,并返回为false的退出状态。

如果使用了-p选项,则输入如果名称被指定为命令名称,则返回将被执行的磁盘文件的名称;如果“type -t name”返回的不是文件的话,不返回任何内容。当且仅当不使用-p选项时,返回中包括alias和function。

-P选项强制PATH搜索每个名称,即使“type -t name”返回的不是文件。

如果一个命令在hash中,-p-P打印hash值,不一定是PATH中第一个出现的文件。

如果使用-a选项,则type打印所有包含可执行文件名称的位置。使用-a时,不会查阅命令hash表。

-f选项抑制查找shell函数,与内置的命令一样。

如果所有参数匹配成功,则返回true,如果有任何参数没有找到,则返回false。

使用实例

[root@localhost ~]# type ls
ls is aliased to `ls --color=tty`

[root@localhost ~]# type cd
cd is a shell builtin

[root@localhost ~]# type date
date is /bin/date

[root@localhost ~]# type mysql
mysql is /usr/bin/mysql

[root@localhost ~]# type nginx
-bash: type: nginx: not found

[root@localhost ~]# type if
if is a shell keyword

[root@localhost ~]# type which
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde`

[root@localhost ~]# type -a cd
cd is a shell builtin

[root@localhost ~]# type -a grep
grep is /bin/grep

参考链接:

http://man.linuxde.net/type

http://codingstandards.iteye.com/blog/831504

http://www.cnblogs.com/frydsh/archive/2012/11/07/2758774.html

赞(0) 传送门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。编程日志 » type命令
分享到: 更多 (0)

游戏 && 后端

传送门传送门