Linux每天学习一个命令之type命令

今天看到了type命令觉得和which命令很像,所以想着学习记录一下。回想起之前使用which命令的时候,当查看cd命令,history命令的时候,会出现这句话

[root@localhost ~]# which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

表示此命令是bash自带的即是内部命令,不是外部命令,如何证明这个结果,之前不知道怎么做不过学习了type命令就明白了。

type [-tpa] name

当没有选项参数的时候,type会列出此命令是内部命令还是外部命令

-t:表示会显示一下几个标识
file:表示此命令是外部命令
alias:表示此命令是为别名
builtin:表示此命令是内部命令

-p:后面接外部命令式才会显示,命令的路径

-a:会列出PATH变量含name的命令都列出来,包括alias

下面来看看一些例子:

例子一:
查看cd命令是内部命令还是外部命令:

[root@localhost ~]# type cd
cd 是 shell 内嵌
[root@localhost ~]# which cd
/usr/bin/cd
[root@localhost ~]# type -a cd
cd 是 shell 内嵌
cd 是 /usr/bin/cd
[root@localhost ~]# type -t cd
builtin

从显示的结果中可以看到cd命令式内部命令,并且在PATH中/usr/bin/cd目录下有一个与cd同名的命令

例子二:
查看mkdir命令的相关信息:

[root@localhost ~]# type mkdir
mkdir 是 /usr/bin/mkdir
[root@localhost ~]# type -t mkdir
file
[root@localhost ~]# type -a mkdir
mkdir 是 /usr/bin/mkdir
[root@localhost ~]# type -p mkdir
/usr/bin/mkdir

总结:type命令的作用和which命令差不多,可以把type命令当做与which命令功能相同的命令使用。
文笔有限,才疏学浅,文中若有不正之处,万望告知,相互学习共同进步。

点赞