Linux whereis 命令介绍
whereis 是一个 Linux 命令,它的全称是 where is,它用于查找文件。这个命令会在特定的目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。这个命令只能用于查找二进制文件、源代码文件和 man 手册页,一般文件的定位需使用 locate 命令。whereis 命令可以帮助你快速找到一个命令的位置、文档和源码,方便你进行进一步的学习和使用。
Linux whereis 命令适用的 Linux 版本
whereis 命令是 GNU 项目的一部分,它在大多数 Linux 发行版中都是预装的,如 Ubuntu、Debian、Fedora、CentOS 等。如果你的 Linux 系统没有安装 whereis 命令,你可以使用包管理器来安装它。例如,在 CentOS 7 中,你可以使用 yum 命令来安装 whereis 命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install util-linux
在 CentOS 8 中,你可以使用 dnf 命令来安装 whereis 命令:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install util-linux
Linux whereis 命令的基本语法
whereis 命令的基本语法如下:
whereis [选项] [文件名]...
其中,[选项] 是可选的,可以用来指定一些查找的参数,如 -b、-m、-s 等。[文件名] 是必须的,可以是一个或多个要查找的文件名,如 bash、netcat、uptime 等。如果没有指定文件名,whereis 命令会显示帮助信息。
Linux whereis 命令的常用选项说明
whereis 命令有很多选项,可以用来控制查找的行为和输出。以下是一些常用的选项:
选项 | 说明 |
---|---|
-b | 只查找二进制文件。 |
-B <目录> | 只在指定的目录下查找二进制文件。 |
-f | 分隔指定的目录和文件名。 |
-h | 显示帮助信息。 |
-l | 显示 whereis 命令搜索的目录列表。 |
-m | 只查找说明文件。 |
-M <目录> | 只在指定的目录下查找说明文件。 |
-s | 只查找原始代码文件。 |
-S <目录> | 只在指定的目录下查找原始代码文件。 |
-u | 查找不包含指定类型的文件。 |
-v | 显示详细的查找信息。 |
-V | 显示 whereis 命令的版本信息。 |
Linux whereis 命令的实例
以下是一些使用 whereis 命令的实例,可以帮助你更好地理解和使用这个命令。
如何查找一个命令的位置
如果你想查找一个命令的位置,你可以使用 whereis 命令,并指定要查找的命令名,如下:
[linux@bashcommandnotfound.cn ~]$ whereis bash
这将显示 bash 命令的二进制文件、源代码文件和说明文件的位置,如下:
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
在输出中,bash: 是要查找的命令名,/bin/bash 是二进制文件的位置,/etc/bash.bashrc 是源代码文件的位置,/usr/share/man/man1/bash.1.gz 是说明文件的位置。
如何查找多个命令的位置
如果你想查找多个命令的位置,你可以一次性指定多个命令名,如下:
[linux@bashcommandnotfound.cn ~]$ whereis netcat uptime
这将显示 netcat 和 uptime 命令的二进制文件、源代码文件和说明文件的位置,如下:
netcat: /bin/netcat /usr/share/man/man1/netcat.1.gz
uptime: /usr/bin/uptime /usr/share/man/man1/uptime.1.gz
如何只查找一个命令的二进制文件
如果你只想查找一个命令的二进制文件,你可以使用 -b 选项,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -b ping
这将只显示 ping 命令的二进制文件的位置,如下:
ping: /bin/ping
当只查找一个命令的二进制文件时,建议使用 which 或 type 命令,它们会显示命令的完整路径,而不是简单的目录。
如何只查找一个命令的说明文件
如果你只想查找一个命令的说明文件,你可以使用 -m 选项,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -m ls
这将只显示 ls 命令的说明文件的位置,如下:
ls: /usr/share/man/man1/ls.1.gz
如何只在指定的目录下查找一个命令
如果你只想在指定的目录下查找一个命令,你可以使用 -B、-M 或 -S 选项,分别用于查找二进制文件、说明文件或源代码文件,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -B /bin -f cp
这将只在 /bin 目录下查找 cp 命令的二进制文件,如下:
cp: /bin/cp
注意,这里需要使用 -f 选项来分隔目录和文件名。
如何查找不包含指定类型的文件的命令
如果你想查找不包含指定类型的文件的命令,你可以使用 -u 选项,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -m -u *
这将查找当前目录下所有不包含说明文件的命令,如下:
a.out: /home/linux/a.out
hello: /home/linux/hello
这里使用通配符(*)表示当前目录下的所有文件。
如何显示 whereis 命令的版本信息
如果你想显示 whereis 命令的版本信息,你可以使用 -V 选项,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -V
这将显示 whereis 命令的版本号、版权信息和作者信息,如下:
whereis from util-linux 2.36.2
Copyright (C) 1993
David C. Niemi <niemi@tuxers.net>
Modified by Albert Cahalan <albert@users.sf.net>
这表示 whereis 命令来自于 util-linux 2.36.2 这个软件包,它的原始作者是 David C. Niemi,后来由 Albert Cahalan 修改。
如何显示详细的查找信息
如果你想显示详细的查找信息,如查找的目录、文件类型和文件名等,你可以使用 -v 选项,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -v ls
这将显示 ls 命令的详细查找信息,如下:
ls: /bin/ls
Searching for ls in:
/bin /sbin /usr/bin /usr/sbin /usr/games /usr/local/bin /
/usr/man/man1 /usr/man/man2 /usr/man/man3 /usr/man/man4 /usr/man/man5 /usr/man/man6 /usr/man/man7 /usr/man/man8 /usr/man/man9 /usr/man/man0 /usr/man/manl /usr/man/mann /usr/man/mano /usr/man/manp /usr/man/manw
/usr/src
/usr/man/man1/ls.1.gz
这表示 ls 命令的二进制文件在 /bin/ls,说明文件在 /usr/man/man1/ls.1.gz,whereis 命令在以下的目录中查找了 ls 命令的二进制文件、源代码文件和说明文件。
Linux whereis 命令的注意事项
在使用 whereis 命令时,你需要注意以下几点:
- whereis 命令只能查找二进制文件、源代码文件和说明文件,不能用于查找一般文件,如文本文件、图片文件等。如果需要查找一般文件,可以使用 locate 命令,它会在一个数据库中搜索文件名。
- whereis 命令只能查找特定的目录中的文件,这些目录是在 whereis 命令的源代码中硬编码的,或者是在环境变量中指定的。你可以使用 -l 选项来查看 whereis 命令搜索的目录列表,如下:
[linux@bashcommandnotfound.cn ~]$ whereis -l
The following standard paths are searched:
/bin /sbin /usr/bin /usr/sbin /usr/games /usr/local/bin /
...
评论区