linux中which与whichis文件目录查找函数详解linux操作系统 -电脑资料
在linux中 which查找命令的所在目录了,而whereis查找系统命令的特定文件的,下面小编来给大家介绍一下他们的一些简单使用实例吧,
linux中which与whichis文件目录查找函数详解linux操作系统
。whereis查找系统命令的特定文件
1、命令格式
whereis -bmsu 搜索字符串•-b:binary 只搜索二进制的文件
•-m:manual 只搜索手册相关的文件
•-s:source 只搜原始代码的文件
•-u:unusual 搜素特殊的文件,这个参数比较奇怪
2、命令测试
搜索adduser命令相关的文件
$ whereis adduser
adduser: /usr/sbin/adduser /etc/adduser.conf /usr/share/adduser
/usr/share/man/man8/adduser.8.gz上面会搜索出所有二进制,手册,原始代码文件。
只搜索二进制文件
$ whereis -b adduser
adduser: /usr/sbin/adduser /etc/adduser.conf /usr/share/adduser关于-u参数的疑问
这个参数,man手册里解释是:Search for unusual entries. A file is said to be unusual if it
does not have one entry of each requested type. 这里究竟什么是不寻常项,笔者暂时也没搞清楚
。
man手册还有说明使用:Thus ‘whereis -m -u *’ asks for those files in the current directory
which have no documentation. 这个比较容易理解,就是说使用”whereis -m -u *”这个命令可以查
找出当前目录没有文档的文件。
笔者在/usr/sbin目录下执行这个命令,得到的结果也令人不解。
$ whereis-m-u*
arp: /usr/share/man/man8/arp.8.gz /usr/share/man/man7/arp.7.gz
chroot: /usr/share/man/man2/chroot.2.gz /usr/share/man/man8/chroot.8.gz
invoke-rc:
nologin: /usr/share/man/man5/nologin.5.gz /usr/share/man/man8/nologin.8.gz
tzconfig:
update-bootsystem-insserv:
update-locale:
update-rc:
update-rc:
upgrade-from-grub-legacy:
validlocale:
which查找命令的所在目录
、命令格式
which -a 命令参数含义:
•-a:all,列出所有匹配的路径,
电脑资料
《linux中which与whichis文件目录查找函数详解linux操作系统》()。•命令:就是shell命令,如ls、mkdir等
which这个命令实际上就是根据环境变量PATH设置的目录进行依次查找,找到第一个就停止。如果加上-a
参数,则会遍历所有PATH设置的目录进行查找。
2、命令测试
查看ls这个命令的全路径
$ which ls
/bin/ls可以看到ls命令是在bin下面,系统执行ls命令的时候,就是执行/bin/ls这个文件。
查找所有匹配的路径
为了更好的看到效果,将ls命令复制到环境变量PATH所在的目录,在笔者电脑上PATH值为:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games将ls命令复制
到/usr/games下:
$ cp /bin/ls /usr/games/ls加上-a参数测试:
$ which -a ls
/bin/ls
/usr/games/ls可以看到ls存在于两个目录之中了,那么系统执行ls命令的时候,会执行哪一个呢?答案
是第一个。
cd命令的问题
$ which cd在测试cd命令的时候,没找到这个命令所在的目录,非常奇怪。后来使用type cd查看,发现
cd原来是内建命令。
总结
which这个命令参数不多,其中涉及到了环境变量PATH而whereis搜索一些命令相关的文件,和which相比
,笔者使用which更多些。关于-u参数,如果有了解的朋友,非常感谢告知