LINUXWHICH(linux which命令详解)
一、在Windows系列中的Linux系统下"Which"命令的使用方法介绍
在Linux下,有一个命令叫做which,它可以在Path中寻找某个命令所在的目录并显示出来。
Linux下:
[adam@i ase adam]$ which ls
/bin/ls
[adam@i ase adam]$ which rm
/bin/rm在NT的Resource Kit中有一个where.exe,它也有相同的功效,不过Resource Kit是收费的,在这里我们可以作一个批处理文件来实现这个功能。
使用记事本编辑一个which.bat,并将其存放在Wi t目录或者其他Path变量中的目录里,该批处理文件的内容如下:
@echo off Rem检查命令行参数
if{%1}=={} goto:Usage
for%%i i({{/{-) do if{%1}==%%i?} goto:Usage%%i
echo.:Rem在当前目录检查看是否存在该文件
for%%i i(%1) do if exist%%~nx%i(
echo%%~Fi
goto:EOF
):Rem在Path中检查该文件
for%%i i(%1) do(
if exist%%~$PATH:i(
echo%%~$PATH:i
) else(
echo Error:%1不在路径里!!!
goto:Usage
)
)
goto:EOF
:Usage
echo.
echo WHICH quot;filename"
echo.
echo输入文件明,返回该文件的全路径!
echo.
我们来对我们的程序作一个测试:
Microsoft Window 2000 [Versio 5.00.2195]
(C)版权所有 1985-1998 Microsoft Corp. C:/which WHICH quot;filename"输入文件明,返回该文件的全路径!
C:/which cmd.exe C:/WI T/system32/cmd.exe C:/ OK,测试通过!
二、Linux里面where和which命令区别是什么
which命令主要是用来查找系统***PATH目录下***的可执行文件。说白了就是查找那些我们已经安装好的可以直接执行的命令。whereis命令可以用来查找二进制(命令)、源文件、man文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广。
三、Linux新人问两个关于linux中的which命令的问题
以下为which为详细说明,参看以确实问题。
which命令属于文件查找和比较命令
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
语法
which(选项)(参数)
选项
-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度;
-V:显示版本信息。
参数
指令名:指令名列表。
实例
查找文件、显示命令路径:
[root@localhost~]# which pwd/bin/pwd
[root@localhost~]# which adduser/usr/sbin/adduser
说明:which是根据使用者所配置的 PATH变量内的目录去搜寻可运行档的!所以,不同的 PATH配置内容所找到的命令不同!