which 寻找“执行文件”

来源:互联网 发布:云服务百度 计算 编辑:程序博客网 时间:2024/06/08 22:17

命令解释

如果我们在终极端模式中,连续按下两次[tab]键后,会列出当前用户可以执行的所有命令。但是我们假如想知道这个命令完整的文件名或者文件地址,就可以使用这个命令进行查看。

文件说明

[root@localhost wenjie]# which [-a] command参数:-a : 将所有由 PATH 目录中可以找到的命令都列出来。

命令举例

例子一:分别用root用户和普通用户查看 ifconfig 命令[root@localhost wenjie]# which ifconfig/sbin/ifconfig <== 找到正确的执行文件[root@localhost wenjie]# su - wenjie[wenjie@localhost ~]$ which ifconfig <== 切换到普通用户再进行执行/usr/bin/which: no ipconfig in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/wenjie/bin)# 这个时候我们会发现,竟然找到不了# 因为 which 是根据当前用户设置的 PATH 变量内的目录去查找可执行文件的。# 不同的 PATH 设置,所找到的命令也不一样,因为当前用户中 PATH 设置中没有 /sbin例子二:用 which 去找 which 的文件[root@localhost wenjie]# which whichalias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'    /usr/bin/which# 竟然会有两个which,其中一个是 alias。# 那就是所谓的“命令别名”例子三:请找出 cd 这个命令的完整文件名[root@localhost wenjie]# which cd/usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/home/wenjie/bin:/sbin)# 没有cd这个命令?咱们明明就可以使用 root 执行 cd 的。
  • 之所以找不到cd这个命令,是因为它是bash内置的命令,但which默认查找的是PATH内的目录,所以就找不到了。
1 0
原创粉丝点击