每天一個linux命令(ling)(16):which命令(ling)
我(wo)們(men)經(jing)常在(zai)linux要(yao)查(cha)找(zhao)某個文件(jian),但(dan)不知道放在(zai)哪(na)里了(le),可以(yi)使(shi)用(yong)下(xia)面的一些命(ming)令來搜索:
which 查看(kan)可執(zhi)行文件的位置。
whereis 查看文(wen)件(jian)的位置。
locate 配合數據庫(ku)查看文件位(wei)置。
find 實際搜尋硬(ying)盤查詢文(wen)件名稱。
which命(ming)令的(de)(de)作用是(shi),在(zai)PATH變量指定的(de)(de)路徑(jing)中,搜索某(mou)個系(xi)統(tong)命(ming)令的(de)(de)位(wei)置,并且返回第(di)一個搜索結果。也就是(shi)說,使用which命(ming)令,就可以看到(dao)某(mou)個系(xi)統(tong)命(ming)令是(shi)否存(cun)在(zai),以及執行(xing)的(de)(de)到(dao)底(di)是(shi)哪一個位(wei)置的(de)(de)命(ming)令。
1.命令格(ge)式:
which 可執行文件名稱
2.命令功能:
which指(zhi)令會在(zai)PATH變量指定(ding)的路徑中,搜(sou)索某個系統命令的位(wei)置,并且返回(hui)第一個搜(sou)索結果。
3.命(ming)令(ling)參(can)數(shu):
-n 指定(ding)(ding)文件(jian)(jian)名長(chang)度,指定(ding)(ding)的長(chang)度必(bi)須大于(yu)或等于(yu)所有文件(jian)(jian)中最長(chang)的文件(jian)(jian)名。
-p 與-n參(can)數相同,但此處的包(bao)括了文件(jian)的路徑。
-w 指定輸(shu)出(chu)時欄位的(de)寬度。
-V 顯示版(ban)本信息(xi)
4.使用實例:
實例1:查找文件、顯示命令(ling)路徑
命(ming)令:
which lsmod
輸出:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]#
說(shuo)明(ming):
which 是根(gen)據使用(yong)者所配(pei)置的(de) PATH 變量內的(de)目錄去搜尋(xun)可(ke)運行檔的(de)!所以(yi),不同(tong)的(de) PATH 配(pei)置內容所找到的(de)命令當(dang)然不一樣的(de)!
實例2:用(yong) which 去找(zhao)出 which
命(ming)令(ling):
which which
輸出:
[root@localhost ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
/usr/bin/which
[root@localhost ~]#
說明:
竟然會有兩個(ge) which ,其中一個(ge)是(shi) alias 這就是(shi)所謂的(de)『命(ming)令別名』,意思是(shi)輸入 which 會等於(wu)后(hou)面接(jie)的(de)那串命(ming)令!
實例(li)3:找(zhao)出 cd 這個(ge)命令
命令:
which cd
輸出:
![]()
說(shuo)明(ming):
cd 這個常用的命(ming)令(ling)竟然找(zhao)不(bu)到啊!為什么呢?這是因為 cd 是bash 內建(jian)的命(ming)令(ling)! 但是 which 默認是找(zhao) PATH 內所(suo)規范的目錄,所(suo)以當然一定找(zhao)不(bu)到的!
關注 熵減黑客 ,一起學習成長
