Skip to content

Commit fd2fe3f

Browse files
authored
Update type.md
1 更新文档内容
1 parent dcca140 commit fd2fe3f

File tree

1 file changed

+92
-39
lines changed

1 file changed

+92
-39
lines changed

command/type.md

Lines changed: 92 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,122 @@
11
type
22
===
33

4-
显示指定命令的类型
4+
显示指定命令的类型
55

6-
## 补充说明
6+
## 概要
77

8-
**type命令** 用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
8+
```shell
9+
type [-afptP] name [name ...]
10+
```
911

10-
命令类型:
12+
## 主要用途
1113

12-
* alias:别名。
13-
* keyword:关键字,Shell保留字。
14-
* function:函数,Shell函数。
15-
* builtin:内建命令,Shell内建命令。
16-
* file:文件,磁盘文件,外部命令。
17-
* unfound:没有找到。
14+
- 显示要查找的命令的信息。
15+
- 控制查找范围和行为。
16+
- 显示要查找的命令优先级最高的类型。
1817

19-
### 语法
18+
## 选项
2019

2120
```shell
22-
type(选项)(参数)
21+
-a:在环境变量PATH中查找并显示所有包含name的可执行文件路径;当'-p'选项没有同时给出时,如果在别名、关键字,函数,内建的信息中存在name,则一并显示。
22+
-f:排除对shell函数的查找。
23+
-p:如果name在执行'type -t name'返回的不是'file',那么什么也不返回;否则会在环境变量PATH中查找并返回可执行文件路径。
24+
-P:即使要查找的name是别名、内建、函数中的一个,仍然会在环境变量PATH中查找并返回可执行文件路径。
25+
-t:根据name的类型返回一个单词(别名,关键字,函数,内建,文件),否则返回空值。
2326
```
2427

25-
### 选项
28+
## 参数
29+
30+
name:要查找的命令,可以为多个。
31+
32+
## 返回值
33+
34+
当指定的命令可以找到时返回成功,如果有没找到的返回失败。
35+
36+
## 例子
2637

2738
```shell
28-
-t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;
29-
-p:如果给出的指令为外部指令,则显示其绝对路径;
30-
-a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。
31-
```
39+
接下来要用到的例子假设'~/.bashrc'文件定义了以下的内容:
3240

33-
### 参数
41+
alias ls='ls --color=auto'
42+
mybash(){ vim ~/.bashrc; }
3443

35-
指令:要显示类型的指令。
44+
而且执行环境里没有使用enable禁用内建命令。
45+
```
3646

37-
### 实例
47+
```shell
48+
type -a mybash
49+
# 输出
50+
mybash is a function
51+
mybash ()
52+
{
53+
vim ~/.bashrc
54+
}
55+
56+
type -a -f mybash
57+
# 输出(因为排除了函数,所以报错)
58+
bash: type: mybash: not found
59+
60+
type -a -p mybash
61+
# 输出为空(因为排除了函数,所以什么也不返回)
62+
63+
type -a ls
64+
# 输出
65+
ls is aliased to `ls --color=suto'
66+
ls is /usr/bin/ls
67+
ls is /bin/ls
68+
69+
type -a -p ls
70+
# 输出
71+
/usr/bin/ls
72+
/bin/ls
73+
```
3874
3975
```shell
40-
[root@localhost ~]# type ls
41-
ls is aliased to `ls --color=tty'
76+
# '-f'不会影响'-P'的范围,'-f'不建议和'-p'使用。
77+
# 注意:printf同时是内建命令以及可执行文件(GNU coreutils),优先作为内建处理。
78+
79+
type -p printf
80+
# 输出为空
4281
43-
[root@localhost ~]# type cd
44-
cd is a shell builtin
82+
type -P printf
83+
# 输出
84+
/usr/bin/printf
85+
/bin/printf
86+
```
4587
46-
[root@localhost ~]# type date
47-
date is /bin/date
88+
```shell
89+
# 如果有多个类型,那么输出优先级最高的类型。
4890
49-
[root@localhost ~]# type mysql
50-
mysql is /usr/bin/mysql
91+
type -t ls
92+
# 输出
93+
alias
5194
52-
[root@localhost ~]# type nginx
53-
-bash: type: nginx: not found
95+
type -t for
96+
# 输出(bash关键字)
97+
keyword
5498
55-
[root@localhost ~]# type if
56-
if is a shell keyword
99+
type -t mybash
100+
# 输出
101+
function
57102
58-
[root@localhost ~]# type which
59-
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
103+
type -t -f mybash
104+
# 输出空值
60105
61-
[root@localhost ~]# type -a cd
62-
cd is a shell builtin
106+
type -t printf
107+
# 输出(bash内建优先级高)
108+
builtin
63109
64-
[root@localhost ~]# type -a grep
65-
grep is /bin/grep
110+
type -t chmod
111+
# 输出
112+
file
66113
```
67114
115+
### 注意
116+
117+
1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
118+
119+
2. 命令优先级问题请查看`builtin`命令。
120+
68121
69-
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->
122+
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->

0 commit comments

Comments
 (0)