目录

Linux which 命令完全指南

命令简介

which 命令用于查找并显示给定命令的绝对路径。它会在环境变量 PATH 设置的目录里查找符合条件的文件,帮助用户确认命令的具体位置以及实际执行的是哪一个命令。

使用场景
当系统中存在多个同名命令时,which 命令可以帮助你确定实际执行的是哪个版本的命令。

命令语法

1
which [选项] 命令名称

选项参数

选项说明
-n <文件名长度>指定文件名长度,必须大于等于所有文件中最长的文件名
-p <文件名长度>-n,但长度包含文件的路径
-w指定输出时栏位的宽度
-V显示版本信息

使用示例

基本用法

1
2
3
4
5
6
7
# 查找 pwd 命令的位置
$ which pwd
/bin/pwd

# 查找 adduser 命令的位置
$ which adduser
/usr/sbin/adduser

特殊情况

Shell 内建命令

对于 Shell 内建命令,which 会显示特殊提示:

1
2
$ which cd
cd: shell built-in command

这是因为 which 命令只在 PATH 环境变量指定的路径中搜索,而内建命令是 Shell 的一部分,并不存在于文件系统中。

工作原理

查找机制
  1. which 命令会检查环境变量 PATH 中列出的所有目录
  2. 按照 PATH 中目录的先后顺序进行查找
  3. 返回第一个匹配的可执行文件的完整路径
  4. 对于 Shell 内建命令,会显示特殊提示

常见应用

  1. 确认命令的具体位置
  2. 验证是否安装了某个程序
  3. 检查可能的命令冲突
  4. 确认执行的是否是预期的命令版本

相关命令

  • whereis - 查找命令的二进制文件、源码和手册页
  • type - 显示命令的类型信息
  • command - 执行命令或显示命令信息
注意事项
  1. which 命令只能查找可执行文件
  2. 不能查找 Shell 内建命令的具体位置
  3. 查找结果取决于当前用户的 PATH 环境变量设置