在Linux系统中,有很多个命令可供用户使用,其中一个非常有用而且不容忽视的命令就是which。该命令可以帮助用户快速地定位某一指定命令或可执行文件的路径。which命令可以起到定位文件位置的作用,也可以确认当前环境中哪个版本的命令被执行。既然which命令具备如此重要的作用,那么如何用linux which命令快速定位执行文件路径呢?接下来让我们逐一了解。
一、which命令
which命令的作用是搜索一下PATH系统环境变量设置中指定的路径,找到对应命令的文件名并输出命令所在的完整路径。通俗来说,就是用来查找命令所在的路径。
二、which命令的使用方法
打开终端,输入如下命令执行:
$ which
其中,是需要查找的命令的名称,例如:
$ which ls
该命令输出如下:
/bin/ls
这表示ls命令所在的完整路径为/bin/ls。
在实际使用中,为了保证更加准确的定位执行文件路径,可使用which命令的一些参数,以便更好地搜索执行文件的位置。下面我们将分享一些常用的which命令参数:
1. -a,--all:查找所有路径
这个参数可以查找所有与命令名称匹配的文件,而不仅限于搜索到的第一个文件。例如,我们执行以下命令:
$ which -a ls
输出结果如下:
/bin/ls
/usr/bin/ls
/usr/local/bin/ls
从结果可以看到,ls命令在3个不同路径下都存在,每个路径都单独显示了出来。
2. -i,--read-stdin:从标准输入中读取命令
这个参数让which命令从标准输入中读取命令名,再输出其完整路径。例如:
$ echo "ls" | which -i
该命令的输出同样是:
/bin/ls
3. -n,--no-aliases:禁用别名
该参数禁用在.bashrc中定义的别名的使用,这样which命令将确定实际的命令位置而不是别名。例如:
$ which nmap
输出结果为:
/usr/bin/nmap
而如果别名被打开,那么结果会是:
alias nmap='sudo nmap'
/bin/nmap
4. -p,--path=
:指定搜寻路径
这个参数可以指定which命令所需查找的路径,而不是在环境变量$PATH中查找。例如:
$ which -p /sbin/ifconfig
输出结果为:
/sbin/ifconfig
在上面的例子中,我们将路径指定为/sbin,并搜索ifconfig命令的位置。
5. -s,--skip-alias:忽略别名
通过该参数,which命令将忽略所有别名和其他定义,仅显示实际命令的位置。例如:
$ which -s nmap
输出结果仅仅是/usr/bin/nmap。
6. -v,--version:显示版本信息
该参数显示which命令的版本信息,例如:
$ which -v
输出:
which 2.21
三、总结
通过which命令查询命令的位置,是Linux系统中必不可少的技能之一。在使用which命令时,要注意各种参数的作用,可更准确地搜索执行文件的位置。此外,在使用which命令时,也要了解环境变量$PATH的设置情况,并适时加以修改,以便更好地使用linux which命令快速定位执行文件路径。