您的位置:

Linux命令which的使用方法

一、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是一个常用的命令,可以帮助我们在终端中查找命令所对应的可执行文件路径。深入了解和掌握该命令可以提高我们的终端使用效率。