相关知识
在第一关中我们讲解了locate
命令的使用方法以及其原理,本关将介绍 Linux 另外两个定位文件的命令,分别是which
和whereis
。
which
命令主要是用来查找系统PATH
目录下的可执行文件,说白了就是查找那些我们已经安装好的可以直接执行的命令。
whereis
命令可以用来查找二进制(命令)、源文件、man
文件。与which
不同的是这条命令可以是通过文件索引数据库而非PATH
来查找的,所以查找的面比which
要广。
接下让我们详细的学习which
和whereis
的使用方法。
which
which
命令用于查找并显示给定命令的绝对路径,环境变量PATH
中保存了查找命令时需要遍历的目录。which
指令会在环境变量$PATH
设置的目录里查找符合条件的文件。也就是说,使用which
命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which
是shell
内建命令,内建命令要比系统论命令有比较高的执行效率。
具体命令如下:
which 命令
案例演示:
使用which
命令定位passwd
命令的位置,具体使用如下命令:
which passwd
可以看到passwd
命令是存放在/usr/bin
目录下。
whereis
whereis
命令用来定位指令的二进制程序、源代码文件和man
手册页等相关文件的路径。
具体命令如下:
whereis 命令参数 文件名
常用命令参数如下:
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
案例演示1
:
使用whereis
命令查找passwd
命令所有信息,包括二进制文件位置、说明文件位置和源码文件位置,具体使用如下命令:
whereis passwd
案例演示2
:
使用whereis
命令仅查找passwd
命令二进制文件位置,具体使用如下命令:
whereis -b passwd
可以看到passwd
命令存在的位置有两处,分别是/usr/bin/passwd
和/usr/bin/X11/passwd
,那么在我们执行passwd
时,如何确定是执行的哪一个,此时我们就可以使用which
命令来定位首先被执行的命令位置。
编程要求
在右侧编辑器中补充代码,使用which
和whereis
命令定位命令位置,具体编程要求如下:
-
使用
which
命令定位useradd
命令的位置; -
使用
whereis
命令查询useradd
命令的所有信息,包括二进制文件位置、说明文件位置和源码文件位置; -
使用
whereis
命令仅查找useradd
命令说明文件位置
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
#使用which命令定位useradd命令的位置;#
which useradd
#使用whereis命令查询useradd命令的所有信息,包括二进制文件位置、说明文件位置和源码文件位置;#
whereis useradd
#使用whereis命令仅查找useradd命令说明文件位置。#
whereis -m useradd
#************end**************#