在linux上經常使用ls,grep,vi等命令,如何查看這些命令的絕對路徑呢?
通過whereis/which 就可以啦,但是這兩個命令之間還是有一些區別。網上查了一下資料,解釋如下:
which 用來查看當前要執行的命令所在的路徑。
whereis 用來查看一個命令或者文件所在的路徑,
which命令的原理:在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
which命令的使用實例:
$ which grep
whereis命令原理:只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
whereis命令的使用實例:
$ whereis grep
下面舉個例子來說明。假如你的linux系統上裝了多個版本的java。如果你直接在命令行敲命令 "java -version" ,會得到一個結果。但是,你知道是哪一個路徑下的java在執行嗎?如果想知道,可以用 which 命令:
which java
返回的是 PATH路徑中第一個JAVA的位置,也就是JAVA命令默認執行的位置
如果使用命令: whereis java
那么你會得到很多條結果,因為這個命令把所有包含java(不管是文件還是文件夾)的路徑都列了出來。
轉載blog地址:http://hi.baidu.com/longredhao/item/911356ea2d8bed3687d9deed