【Shell 命令集合 文件管理】Linux 定位可执行文件命令 whereis 命令使用教程

简介: 【Shell 命令集合 文件管理】Linux 定位可执行文件命令 whereis 命令使用教程

描述

whereis命令是Linux操作系统中的一个用于定位可执行文件、源代码文件和帮助文件的工具。

语法:

whereis [选项] [文件名]

选项:

-b:只搜索可执行文件。

-m:只搜索帮助文件。

-s:只搜索源代码文件。

-u:搜索不包含指定文件类型的文件。

-B<目录>:指定可执行文件的搜索路径。

-M<目录>:指定帮助文件的搜索路径。

-S<目录>:指定源代码文件的搜索路径。

-U<目录>:指定不包含的文件类型的搜索路径。

-f:打印所有匹配的路径。

示例:

  1. 搜索可执行文件和帮助文件:
    whereis ls
    输出示例:ls: /bin/ls /usr/share/man/man1/ls.1.gz
  2. 只搜索可执行文件:
    whereis -b ls
    输出示例:ls: /bin/ls
  3. 只搜索帮助文件:
    whereis -m ls
    输出示例:ls: /usr/share/man/man1/ls.1.gz
  4. 只搜索源代码文件:
    whereis -s ls
    输出示例:ls:
  5. 指定搜索路径:
    whereis -B /usr/local/bin ls
    输出示例:ls: /usr/local/bin/ls
  6. 打印所有匹配的路径:
    whereis -f ls
    输出示例:ls: /bin/ls /usr/share/man/man1/ls.1.gz

whereis命令可以快速定位系统中某个文件的位置,方便用户查找和使用。


语法格式

whereis [选项] [文件名]

参数说明

  • -b:只搜索可执行文件。
  • -m:只搜索帮助文件。
  • -s:只搜索源代码文件。
  • -B <目录>:指定可执行文件的搜索路径。
  • -f:打印所有匹配的路径。
  • -u:搜索不包含指定文件类型的文件。

错误情况

  • 如果未指定文件名,则会搜索所有可执行文件、帮助文件和源代码文件。
  • 如果未找到匹配的文件,则不会输出任何内容。
  • 如果指定了无效的选项或参数,会显示错误信息并给出正确的使用方法。

注意:whereis命令只能搜索二进制文件、帮助文件和源代码文件,无法搜索其他类型的文件。

注意事项

在使用Linux shell的whereis命令时,需要注意以下几点:

  1. whereis命令只能搜索二进制文件、帮助文件和源代码文件,无法搜索其他类型的文件。
  2. 如果未指定文件名,则whereis命令会搜索系统中所有可执行文件、帮助文件和源代码文件。
  3. 可以使用选项来限制搜索的类型。例如,使用-b选项只搜索可执行文件,使用-m选项只搜索帮助文件,使用-s选项只搜索源代码文件。
  4. 可以使用-B选项指定可执行文件的搜索路径。例如,whereis -B /usr/local/bin将只在/usr/local/bin目录下搜索可执行文件。
  5. 使用-f选项可以打印所有匹配的路径,而不仅仅是第一个匹配的路径。
  6. 使用-u选项可以搜索不包含指定文件类型的文件。例如,whereis -u -B /usr/local/bin将搜索不包含可执行文件的文件。
  7. 如果未找到匹配的文件,whereis命令不会输出任何内容。
  8. 如果指定了无效的选项或参数,whereis命令会显示错误信息并给出正确的使用方法。

总之,在使用whereis命令时,需要明确搜索的文件类型,并使用合适的选项来限制搜索范围,以获得准确的结果。


底层实现

在Linux中,whereis命令的底层实现是通过搜索系统的路径来查找指定文件的位置。它主要依赖于以下两个文件:

  1. /etc/whereis.rc:这个文件包含了whereis命令的配置信息,例如指定的搜索路径和文件类型。
  2. /usr/lib/whereis:这个脚本文件是whereis命令的实际执行程序。它会读取/etc/whereis.rc文件中的配置信息,并根据配置信息来搜索指定文件。

具体的实现步骤如下:

  1. 读取/etc/whereis.rc文件,获取配置信息。配置信息包括搜索路径和文件类型。
  2. 根据配置信息,依次搜索指定文件类型的文件。搜索的路径包括系统的默认路径(例如/bin/usr/bin等)和配置文件中指定的路径。
  3. 如果找到匹配的文件,输出文件的路径。
  4. 如果没有找到匹配的文件,不输出任何内容。

需要注意的是,whereis命令只搜索二进制文件、帮助文件和源代码文件,而不搜索其他类型的文件。它通过查找系统的路径来进行搜索,因此需要配置正确的搜索路径和文件类型,以获得准确的结果。


示例

示例一

命令:whereis ls

输出示例:ls: /bin/ls /usr/share/man/man1/ls.1.gz

解释:搜索可执行文件和帮助文件,找到ls可执行文件的路径为/bin/ls,帮助文件的路径为/usr/share/man/man1/ls.1.gz。

示例二

命令:whereis -b gcc

输出示例:gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz

解释:只搜索可执行文件,找到gcc可执行文件的路径为/usr/bin/gcc。

示例三

命令:whereis -m tar

输出示例:tar: /usr/share/man/man1/tar.1.gz

解释:只搜索帮助文件,找到tar帮助文件的路径为/usr/share/man/man1/tar.1.gz。

示例四

命令:whereis -s vim

输出示例:vim:

解释:只搜索源代码文件,未找到vim源代码文件。

示例五

命令:whereis -B /usr/local/bin python

输出示例:python: /usr/local/bin/python

解释:指定可执行文件的搜索路径为/usr/local/bin,找到python可执行文件的路径为/usr/local/bin/python。

示例六

命令:whereis -f find

输出示例:find: /usr/bin/find /usr/share/man/man1/find.1.gz

解释:打印所有匹配的路径,找到find可执行文件的路径为/usr/bin/find,帮助文件的路径为/usr/share/man/man1/find.1.gz。

示例七

命令:whereis -u zip

输出示例:zip:

解释:搜索不包含zip文件类型的文件,未找到zip文件。



结语

在我们的探索过程中,我们已经深入了解了Shell命令的强大功能和广泛应用。然而,学习这些技术只是开始。真正的力量来自于你如何将它们融入到你的日常工作中,以提高效率和生产力。

心理学告诉我们,学习是一个持续且积极参与的过程。所以,我鼓励你不仅要阅读和理解这些命令,还要动手实践它们。尝试创建自己的命令,逐步掌握Shell编程,使其成为你日常工作的一部分。

同时,请记住分享是学习过程中非常重要的一环。如果你发现本博客对你有帮助,请不吝点赞并留下评论。分享你自己在使用Shell命令时遇到的问题或者有趣的经验,可以帮助更多人从中学习。

此外,我也欢迎你收藏本博客,并随时回来查阅。因为复习和反复实践也是巩固知识、提高技能的关键。

最后,请记住:每个人都可以通过持续学习和实践成为Shell编程专家。我期待看到你在这个旅途中取得更大进步!

目录
相关文章
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
768 9
|
8月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
778 2
|
10月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
1741 13
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1178 1
|
11月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
396 16
|
11月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
199 4
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
314 1
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
243 0