Linux基本命令whereis命令詳解
whereis是 Linux 系統(tǒng)中一個非常有用的命令,用于定位二進(jìn)制程序、源代碼文件和手冊頁的位置。與which命令不同,whereis不僅能找到可執(zhí)行文件,還能找到相關(guān)的文檔和源代碼,它也是系統(tǒng)管理員和開發(fā)人員在查找命令相關(guān)文件時的有用工具,特別是在需要了解命令的完整安裝位置時非常實(shí)用。
一、基本語法
whereis [選項(xiàng)] 文件名
二、主要功能
whereis 命令會搜索以下類型的文件:
二進(jìn)制文件(可執(zhí)行程序)
源代碼文件
手冊頁(man pages)
三、常用選項(xiàng)
| 選項(xiàng) | 說明 |
|---|---|
-b | 只搜索二進(jìn)制文件 |
-m | 只搜索手冊頁文件 |
-s | 只搜索源代碼文件 |
-u | 搜索不常見的文件(即沒有文檔、源代碼或二進(jìn)制文件的命令) |
-B | 指定二進(jìn)制文件的搜索路徑 |
-M | 指定手冊頁的搜索路徑 |
-S | 指定源代碼的搜索路徑 |
-f | 終止前面的路徑列表(與 -B, -M, -S 一起使用) |
四、使用示例
基本使用 - 查找命令的所有相關(guān)文件:
whereis ls
輸出示例:

只查找二進(jìn)制文件:
whereis -b gcc
輸出示例:

只查找手冊頁:
whereis -m printf
輸出示例:

只查找源代碼:
whereis -s python
whereis的默認(rèn)行為:如果找不到匹配的文件,它只會返回命令名稱后跟冒號:,表示“未找到”。whereis -s專門用于查找 源代碼文件(source code),但 Python 的源代碼通常不會默認(rèn)安裝在標(biāo)準(zhǔn)系統(tǒng)路徑中,因此whereis可能找不到。
查找不常見的命令(即沒有文檔、源代碼或二進(jìn)制文件的命令):
whereis -u *

指定搜索路徑:
whereis -B /usr/local/bin -f python

whereis:Linux 命令,用于查找二進(jìn)制文件、手冊頁和源代碼文件。-B /usr/local/bin:指定只搜索二進(jìn)制文件,并且限定在/usr/local/bin目錄下查找。-f:表示終止-B指定的路徑列表,后面接要查找的命令名(這里是python)。python:要查找的目標(biāo)命令。
五、whereis 與 which 的區(qū)別(重點(diǎn))
| 特性 | whereis | which |
|---|---|---|
| 搜索范圍 | 二進(jìn)制文件、手冊頁、源代碼 | 僅PATH中的可執(zhí)行文件 |
| 顯示結(jié)果 | 所有相關(guān)文件路徑 | 第一個找到的可執(zhí)行文件路徑 |
| 搜索速度 | 較快(使用數(shù)據(jù)庫) | 較慢(實(shí)時搜索) |
| 適用場景 | 查找命令的所有相關(guān)文件 | 確定執(zhí)行的是哪個版本 |
六、注意事項(xiàng)
whereis通常比which更快,因?yàn)樗阉鞯氖窍到y(tǒng)預(yù)先構(gòu)建的數(shù)據(jù)庫,而不是實(shí)時搜索文件系統(tǒng)。在某些系統(tǒng)上,
whereis可能不會找到所有文件,這取決于數(shù)據(jù)庫的更新頻率。如果找不到預(yù)期的文件,可以嘗試使用
updatedb命令更新數(shù)據(jù)庫(需要root權(quán)限):
再使用 updatedb 命令更新數(shù)據(jù)庫:

updatedb的作用
updatedb是mlocate包提供的工具,用于更新系統(tǒng)的文件索引數(shù)據(jù)庫(/var/lib/mlocate/mlocate.db)。whereis、locate等命令依賴此數(shù)據(jù)庫快速查找文件,而非實(shí)時掃描磁盤。如果新安裝了軟件(如 Python 源碼),但數(shù)據(jù)庫未更新,
whereis可能無法找到它。
到此這篇關(guān)于Linux基本命令whereis命令詳解的文章就介紹到這了,更多相關(guān)linux whereis命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決bash:/root/.bashrc:Permission denied的問題
本文主要介紹了解決bash:/root/.bashrc:Permission denied的問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Linux下使用nextcloud搭建個人網(wǎng)盤代碼實(shí)例
這篇文章主要介紹了Linux下使用nextcloud搭建個人網(wǎng)盤代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06
shell產(chǎn)生隨機(jī)數(shù)七種方法的實(shí)現(xiàn)
這篇文章主要介紹了shell產(chǎn)生隨機(jī)數(shù)七種方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Shell判斷字符串變量是否為空的方法實(shí)現(xiàn)
本文主要介紹了Shell判斷字符串變量是否為空的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Shell腳本實(shí)現(xiàn)的一個簡易Web服務(wù)器例子分享
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)的一個簡易Web服務(wù)器例子分享,本文實(shí)現(xiàn)的Web服務(wù)器非常簡單實(shí)用,可以在你不想安裝nginx、apache等大型WEB服務(wù)器時使用,需要的朋友可以參考下2014-12-12

