linux指令-which-whereis
which
which指令用来搜索其他指令的详细位置,他搜索的路径是PATH环境变量中的的一系列路径
命令格式:
1  | which [options] [--] programname [...]  | 
参数:
| 参数 | 解释 | 
|---|---|
| -a | 将PATH下的搜索到的所有结果全部列出来 | 
演示:
搜索ls所在的位置
1  | [sui@VM-8-14-centos ~]$ which ls  | 
可以看到出现了一个alias,这个是别名代表输入ls则等同于输入了后面的一串
可以使用-a选项,列出ls的所有位置
1  | [sui@VM-8-14-centos ~]$ which -a ls  | 
最后再来看一个特殊的例子
1  | [sui@VM-8-14-centos ~]$ which history  | 
当搜索history命令时,找不到history命令的位置,由于history是shell的内置命令(可以使用type查看命令的类型),并不在PATH当中,因此无法搜索到
1  | [sui@VM-8-14-centos ~]$ type history  | 
whereis
whereis会到几个特定的目录下去查找包含输入的命令位置,一般情况下,我们查找内容时都会先使用whereis或者locate,当查找不到的时候,再使用find命令去查找
命令格式:
1  | whereis [options] [-BMS directory... -f] name...  | 
参数:
| 参数 | 解释 | 
|---|---|
| -l | 列出where去搜索的所有目录 | 
| -b | 只找二进制文件 | 
| -m | 只找说明文件man路径下的文件 | 
| -s | 只找src下的文件 | 
| -u | 搜索不在上述三个特定路径下的文件 | 
演示:
查找ls所在的所有位置
1  | [sui@VM-8-14-centos ~]$ whereis ls  | 
查找ls二进制可执行文件的位置以及man帮助文档的位置
1  | [sui@VM-8-14-centos ~]$ whereis -b ls  | 
列出whereis都在哪些目录下查找内容,由于内容过多,只展示部分路径
1  | [sui@VM-8-14-centos ~]$ whereis -l  |