一、what和which的區別
作為一個Linux運維工程師,可能你會覺得what和which這兩個命令的用法相同,都是用來查找命令的,但其實它們有很大的不同。
what命令是查詢一個已經執行的命令是從哪個文件夾下調用的。而which命令則是查詢該命令在哪個文件夾下,可以找到命令的路徑
具體來說,what命令是在PATH環境變量內的目錄中查找可執行文件,找到之後再去讀取文件頭部信息,判斷該文件是否是二進制可執行文件,然後就可以知道該命令在哪個目錄下。而which命令則是直接查詢PATH環境變量內目錄下可執行文件的實際路徑,找到即停止。
二、which命令的用法
which命令的語法格式為:
which [選項] [命令名]
其中,命令名是必須要有的參數,它表示要查詢的命令所對應的可執行文件的路徑。
除此之外,which命令還有一些選項:
- -a:查詢所有可執行文件的路徑,而不是只查詢第一個可執行文件的路徑。
- –skip-alias:忽略所有別名,只查詢實際的可執行文件的路徑。
- –skip-dot:忽略以「.」開頭的目錄,這些目錄通常都是命令安裝在個人目錄下的情況。
三、常見用法舉例
1. 查詢某個命令的路徑
假設我們想要查詢命令「ls」所對應的可執行文件的路徑,只需在終端中輸入:
$ which ls
運行之後,會輸出類似「/bin/ls」的路徑。
2. 查詢所有可執行文件的路徑
如果想要查找某個命令在系統中所有可執行文件的路徑,可以使用選項「-a」:
$ which -a gzip
這會輸出所有gzip命令可執行文件的路徑。
3. 忽略別名和以「.」開頭的目錄
有時候我們會設置一些命令的別名,如果想忽略別名直接查詢實際的可執行文件路徑,可以使用選項「–skip-alias」:
$ which --skip-alias ll
此外,有些命令可能會安裝在個人的目錄下,這些目錄通常是以「.」開頭的,如果不想考慮這些目錄,可以使用選項「–skip-dot」:
$ which --skip-dot gcc
四、結語
which是一個常用的命令,可以幫助我們在終端中查找命令所對應的可執行文件路徑。深入了解和掌握該命令可以提高我們的終端使用效率。
原創文章,作者:SOWVQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/316917.html