it is possible that you have used the commands which, whereis, and whatis multiple times on linux.。這三個命令都用于查找關(guān)于其他 linux 命令的信息。這些命令看起來相似,但它們確實(shí)有一些區(qū)別。
以下是對 Linux 上 which、whereis 和 whatis 命令的詳細(xì)比較。
which 命令
某些命令在不同的目錄中具有多個可執(zhí)行文件。Shell會在PATH環(huán)境變量所指定的文件夾中查找可執(zhí)行文件,以運(yùn)行相應(yīng)的命令。
要查找 PATH 環(huán)境變量中包含的目錄,請?jiān)?Linux 終端中運(yùn)行以下命令:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ echo $PATH
小貼士:您還可以手動將目錄添加到您的PATH環(huán)境變量中。
一旦在Linux中找到了第一個可執(zhí)行的路徑,shell將立即執(zhí)行該路徑。使用 which 命令,您可以確定該可執(zhí)行文件的路徑。
這種情況下會很有用:當(dāng)您的系統(tǒng)上安裝了兩個具有不同版本的同一程序時,或者安裝了兩個具有相同名稱但不同程序的軟件時。使用 which 命令,您可以找出哪個將首先被執(zhí)行。
以下是 which 命令的語法:
which [選項(xiàng)] [命令]
例如,要檢查 tar 命令的實(shí)際路徑,您可以輸入:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ which tar
這個命令會展示tar命令在PATH中的第一個可執(zhí)行路徑,即位于/usr/bin。每次運(yùn)行 tar 命令時,都會由 shell 執(zhí)行位于 /usr/bin 目錄中的二進(jìn)制文件,這就是其意義。
要顯示命令的所有可用可執(zhí)行路徑,請使用 which 命令加上 -a 選項(xiàng):
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ which -a tar
您還可以同時顯示多個命令的可執(zhí)行路徑,如下所示:
which [命令1] [命令2] [命令3]
whereis 命令
whereis命令能夠展示與指定命令相關(guān)的可執(zhí)行文件、源代碼文件和手冊頁面文件的路徑。與 which 命令不同,它不僅在 $PATH 中搜索可執(zhí)行文件,還在 $MANPATH 和其他預(yù)定義位置進(jìn)行搜索。
如果沒有任何命令行選項(xiàng),whereis 命令會顯示命令的二進(jìn)制文件、源文件和手冊頁面文件:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whereis tar
要僅顯示二進(jìn)制文件路徑,請使用 -b 選項(xiàng):
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whereis -b tar
要僅顯示源文件,請使用-s標(biāo)志:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whereis -s tar
要僅顯示手冊頁面,請使用 -m 選項(xiàng):
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whereis -m tar
whatis 命令
whatis 命令提供了給定 Linux 命令的一行描述。它從命令的 man 頁面中獲取這些信息。
例如,要查找 tar 命令的功能,請運(yùn)行:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whatis tar
您還可以同時查找多個命令的信息,例如:
┌──(linuxmi?linuxmi)-[~/www.linuxmi.com]└─$ whatis ls cp mkdir cat head
which、whereis 和 whatis 之間的區(qū)別是什么?
若您需要查找 shell 中命令的可執(zhí)行文件路徑,請嘗試使用 which 命令。使用 whereis 命令可查找命令的源文件、二進(jìn)制文件和 man 頁面。
whereis 命令列出所有的二進(jìn)制可執(zhí)行文件,而 which 命令僅顯示在 shell 中輸入該命令時執(zhí)行的第一個可執(zhí)行文件。
which 命令在 PATH 變量中進(jìn)行搜索,而 whereis 命令在標(biāo)準(zhǔn)的Linux目錄中進(jìn)行搜索,包括 $PATH 和 $MANPATH。
最后,whatis 命令會從命令的 man 頁面中提取出一行簡短的描述。
查找Linux命令的信息
which、whereis 和 whatis 命令可以幫助您找到其他 Linux 命令的信息,如可執(zhí)行文件的完整路徑、二進(jìn)制文件、源文件、手冊頁面以及命令的功能。
除了 whatis 命令,您還可以使用其他命令,如 apropos、man、info 和 help,以獲得關(guān)于 Linux 命令及其功能的詳細(xì)信息和更好的理解。