讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux下快速查找可执行程序路径 which与whereis

冬浩同学_9156

冬浩同学_9156

发布时间:2026-04-09 15:22:03

|

298人浏览过

|

来源于php中文网

原创

which只查PATH中首个可执行文件,whereis查预建数据库中的二进制、man、源码路径;前者用于确定实际执行命令,后者适合找手册位置。

linux下快速查找可执行程序路径 which与whereis

which 和 whereis 都能查路径,但它们查的不是一回事——用错一个,就可能拿不到你真正想要的信息。

which 只认 PATH,且只返回第一个可执行文件

它干的事很专一:顺着 PATH 环境变量从左到右扫目录,找到第一个名字匹配的可执行文件就停。不看手册页、不看源码、不关心有没有同名非可执行文件。

  • 适合脚本中判断命令是否存在:if [ -x "$(which curl)" ]; then ...
  • 排查别名或 shell 函数干扰:which ls 能告诉你实际执行的是 /bin/ls 还是被 alias 覆盖了
  • which -a python 可列出 PATH 中所有 python 可执行文件(不止第一个)
  • 注意:如果当前 shell 有函数定义叫 foo,which foo 不会提示“这是函数”,而是静默失败(返回空)

whereis 默认查三类路径:二进制、man 手册、源码

它不依赖 PATH,而是查系统预建的数据库(通常由 updatedb 维护),固定扫描 /usr/bin、/usr/share/man、/usr/src 等标准位置。

  • whereis gcc 可能输出:gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz
  • 加参数可限定范围:whereis -b python 只查二进制;whereis -m python 只查 man 手册路径
  • 数据库不是实时更新:刚 apt install 的新命令,whereis 可能搜不到,需手动运行 sudo updatedb
  • 没输出基本等于没安装(而 which 空输出可能是 PATH 没配对)

常见误用场景与排查建议

当你发现 which python3 返回路径,但 whereis python3 什么都没返回,大概率是这个 python3 是你自己编译装在 /opt/python3 这种非标准路径下的——whereis 的数据库压根不扫那里。

  • 想确认「敲命令时到底执行谁」→ 无条件用 which
  • 想快速找某个命令的 man 文档位置(比如直接 man /usr/share/man/man1/git.1.gz)→ 用 whereis -m git
  • 两者结果不一致?先检查 echo $PATH,再确认是否刚装完软件还没更新数据库
  • 需要绝对可靠、绕过所有缓存和别名 → 直接上 find /usr -name python3 -type f -executable 2>/dev/null(慢但准)

真正容易被忽略的点是:whereis 查到的路径里,有些根本不是可执行文件(比如 /etc/passwd 也会被列出来),别直接当成 which 的替代品去执行。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

549

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1678

2024.03.01

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3523

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

795

2023.10.30

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

5899

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

1740

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

1014

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3837

2024.04.09

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn