A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash/zsh: which: command not found #Debian apt-get install which #Ubuntu apt-get install which #Alpine apk add which #Arch Linux pacman -S which #Kali Linux apt-get install which #CentOS yum install which #Fedora dnf install which #Raspbian apt-get install which #Docker docker run cmd.cat/which which
which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH
中保存了查找命令时需要遍历的目录。which 指令会在环境变量 $PATH
设置的目录里查找符合条件的文件。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which [options] [--] programname [...]
--all, -a: 打印每个匹配文件名的所有匹配路径名。 -V:显示版本信息。
which 退出状态:
# | 数值 |
---|---|
0 | 找到了所有文件名,所有文件都是可执行的。 |
1 | 找不到一个或多个文件名,或者文件名不可执行。 |
2 | 指定的选项无效。 |
指令名:指令名列表。
查找文件、显示命令路径:
[root@dsp-adx ~] $ which pwd /usr/bin/pwd [root@dsp-adx ~] $ which sh /bin/sh
如果有多个匹配可执行文件,则显示全部:
$ which -a executable /usr/bin/which: no executable in (/usr/local/rvm/gems/ruby-2.4.1/bin:/usr/local/rvm/gems/ruby-2.4.1@global/bin:/usr/local/rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/rvm/bin:/home/www/.local/bin:/home/www/bin)
其实这个也不能算是坑,只是需要注意下,在当前用户没有权限的情况下,有些命令,将会提示找不到命令位置:
[commandnotfound@dsp-adx ~] $ which adduser /usr/bin/which: no adduser in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/commandnotfound/.local/bin:/home/commandnotfound/bin) [commandnotfound@dsp-adx ~]