which
1.0、参考
1.1、which简介
是什么 ?:shows the full path of (shell) commands
开发语言:C
开发组织:GNU
官方主页:https://carlowood.github.io/which/index.html

which命令首次出现是在FreeBSD 2.1

which命令是通过PATH环境变量到该路径内查找可执行文件, 所以基本的功能是寻找可执行文件的所在路径。

注意which命令是个使用非常频繁的命令,但是它只是zsh内置命令, 作为其他Shell外部命令被预先安装在绝大多数的操作系统中, 不过,某些被裁剪过的系统中不存在此命令,所以在编写Shell脚本的时候,不要使用此命令进行判断 某个命令是否存在,应该使用在所有Shell中都是内置命令的命令,比如command命令进行判断。

1.2、通过包管理器安装GNU which
操作系统包管理器安装命令
Windowsscoopscoop install which
macOSHomeBrewbrew install gnu-which
GNU/LinuxLinuxBrewbrew install gnu-which
aptsudo apt-get install -y which
CentOSyumsudo yum install -y which
dnfsudo dnf install -y which
openSUSEzyppersudo zypper install -y which
Alpine Linuxapksudo apk add which

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm which
Gentoo LinuxPortagesudo emerge which
1.3、通过源码安装GNU which 

step1、安装依赖

下载时cURL
解压时targzip
编译时POSIX shGNU CoreUtilsmakegcc
运行时glibc ( libc.sold-linux-x86-64.so )

step2、使用curl命令下载which源码包 (

curl -LO https://mirrors.tuna.tsinghua.edu.cn/gnu/which/which-2.21.tar.gz

step3、使用tar解压which源码包

tar vxf which-2.21.tar.gz

step4、进入which-2.21目录,并查看它的内容

step5、配置、编译、安装

./configure && make && sudo make install
1.4、which命令

which命令的使用格式:

which COMMAND

示例:

which java

运行效果如下: