这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战。
Linux中有很多的可执行命令,例如我们经常使用的cd、ls、mkdir等等,有时我们要查找这些命令所在的位置,该如何做呢?
Linux中有2个命令可完成该功能:which和whereis,接下来就来具体介绍一下。
which
which命令的作用是根据环境变量PATH设置的目录依次查找某个可执行文件的位置,并且返回第一个查找结果。也就是说,使用which命令,就可以看到某个可执行文件是否存在,以及可执行文件的位置。
语法格式
which [-a] command
选项含义
-a:列出所有匹配的路径,遍历所有PATH设置的目录进行查找command:系统命令
如果不加-a选项,返回第一个匹配的可执行文件的路径,如果加上-a选项,则会遍历所有PATH设置的目录进行查找,返回满足条件的所有可执行文件命令的路径。
示例
- 查看
mkdir命令的位置
which mkdir
/usr/bin/mkdir
可以看到mkdir命令是在/usr/bin/目录下。
whereis
whereis命令用于查找可执行文件、源代码文件、帮助手册文件在文件系统中的位置。和之前的文章:Linux 中使用 locate 命令查找文件介绍过的locate命令一样,whereis也是通过数据库中/var/lib/mlocate/mlocate.db查找,所以查找速度也非常快。
和which命令基本类似,只是多了源代码文件和帮助手册文件的查找。
语法格式
whereis [options] 字符串
常用选项
-b:只查找二进制文件-m:只查找man帮助手册相关的文件-s:只查找源代码文件
示例
- 查找mkdir命令相关的文件
whereis mkdir
mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz
不使用任何选项参数,会查找所有二进制、帮助手册以及源代码文件。
- 只搜索二进制文件
whereis -b mkdir
mkdir: /usr/bin/mkdir
查看man手册得知,whereis命令还支持指定查找目录:
-B <目录>:只在指定的目录下查找二进制文件-M <目录>:只在指定的目录下查找帮助手册相关的文件-S <目录>:只在指定的目录下查找源代码文件
但是我在实际使用中,指定了目录,却什么也查找不到,但是事实文件就在这个目录中,还有一个-u选项,实在是没整明白具体的作用,有些费解,了解的小伙伴可以告知,非常感谢!
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !