• which       查看可执行文件的位置
  • whereis    查看文件的位置
  • locate       配合数据库查看文件位置
  • find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

1、which

语法:  
 [root @redhat ~]# which 可执行文件名称  
 例如:  
 [root @redhat ~]# which passwd  
 /usr/bin/passwd  
 which是通过 PATH环境变量 到该路径内查找可执行文件,所以基本的功能是寻找可执行文件

2、whereis

语法:  
 [root @redhat ~]# whereis [-bmsu] 文件或者目录名称  
 参数说 明:  
 -b : 只找二进制文件  
 -m: 只找在说明文件manual路径下的文件  
 -s : 只找source源文件  
 -u : 没有说明文档的文件  
 例如:  
 [root @redhat ~]# whereis passwd  
 passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz  
 将和passwd文件相关的文件都查找出来

[root @redhat ~]# whereis -b passwd  
 passwd: /usr/bin/passwd /etc/passwd  
 只将二进制文件查找出来

和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个 数据库文件 ( 参考资料1以及大多数文章中都是这样描述的,whereis会在一个数据库文件中查找,在参考资料2中找到这个数据库文件目录 /var/lib/slocate/slocate.db,我在服务器中并没有找到这个目录,原因应该是我没有装locate命令,那么whereis到底是怎么查找的呢? 找了很久没有,从参考资料3中有一种个人比较相信的答案,从 /{bin,sbin,etc}  /usr{lib,bin,old,new,local,games,include,etc,src,man,sbin,X386,TeX,g++-include} 
/usr/local/{X386,TeX,X11,include,lib,man,etc,bin,games,emacs} 中查找,也没有去看whereis的源码,如果有确定的可以交流一下 )中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。  
 但是 该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

3、 locate

语法:  
 [root@redhat ~]# locate 文件或者目录名称  
 例 如:  
 [root@redhat ~]# locate passwd  
 /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp  
 /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp  
 /lib/security/pam_unix_passwd.so  
 /lib/security/pam_passwdqc.so  
 /usr/include/rpcsvc/yppasswd.x  
 /usr/include/rpcsvc/yppasswd.h  
 /usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph  
 /usr/lib/kde3/kded_kpasswdserver.la  
 /usr/lib/kde3/kded_kpasswdserver.so  
 /usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb  
 /usr/bin/vncpasswd  
 /usr/bin/userpasswd  
 /usr/bin/yppasswd  
 …………

4、 find

语法:  
 [root@redhat ~]# find 路径 参数  
 参 数说明:  
 时间查找参数:  
 -atime n :将n*24小时内存取过的的文件列出来  
 -ctime n :将n*24小时内改变、新增的文件或者目录列出来  
 -mtime n :将n*24小时内修改过的文件或者目录列出来  
 -newer file :把比file还要新的文件列出来  
 名称查找参数:  
 -gid n       :寻找群组ID为n的文件  
 -group name  :寻找群组名称为name的文件  
 -uid n       :寻找拥有者ID为n的文件  
 -user name   :寻找用户者名称为name的文件  
 -name file   :寻找文件名为file的文件(可以使用通配符)  
 例 如:  
 [root@redhat ~]# find / -name zgz  
 /home/zgz  
 /home/zgz/zgz  
 /home/weblogic/bea/user_projects/domains/zgz  
 /home/oracle/product/10g/cfgtoollogs/dbca/zgz  
 /home/oracle/product/10g/cfgtoollogs/emca/zgz  
 /home/oracle/oradata/zgz

[root@redhat ~]# find / -name '*zgz*'  
 /home/zgz  
 /home/zgz/zgz1  
 /home/zgz/zgzdirzgz  
 /home/zgz/zgz  
 /home/zgz/zgzdir  
 /home/weblogic/bea/user_projects/domains/zgz  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log00006  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log00002  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log00004  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log00008  
 /home/weblogic/bea/user_projects/domains/zgz/zgz.log00005

当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。  
 locate 是在数据库里查找,数据库大至每天更新一次。  
 whereis 可以找到可执行命令和man page  
 find 就是根据条件查找文件。

which 可以找到可执行文件和别名(alias)

Linux 查询命令的更多相关文章

  1. 一次电话Java面试的问题总结(JDK8新特性、哈希冲突、HashMap原理、线程安全、Linux查询命令、Hadoop节点)

    面试涉及问题含有: Java JDK8新特性 集合(哈希冲突.HashMap的原理.自动排序的集合TreeSet) 多线程安全问题 String和StringBuffer JVM 原理.运行流程.内部 ...

  2. 记录linux查询命令的一个网站

    http://man.linuxde.net/ 另外下面是对常用命令的总结 https://www.cnblogs.com/soyxiaobi/p/9717483.html

  3. Linux查询命令帮助信息(知道)

    方法一 command --help 方法二 man command 操作涉及到的按键: 空格键:显示手册的下一屏 Enter键:一次滚动手册的一行 b:回滚一屏 f:前滚一屏 q:退出 结果基本上全 ...

  4. linux查询日志命令总结

    [背景] 排查线上环境问题,少不了去线上查日志.而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能. [命令] Linux查看命令有多种:tail,head,cat,t ...

  5. Linux 查询文件内容重复数 uniq、sort命令

    前提:uniq只能查询数据相邻的重复次数,而sort可以查询乱序的重复次数. 原谅我,以下内容都是复制菜鸟驿站的!!! Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sor ...

  6. Linux 简单命令查询CPU、内存、网卡等信息

    [转自]Linux查询CPU.内存.网卡等信息 看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c      1  Int ...

  7. linux下文件查询命令(cat,more,less,head,tail)

    众所周知Linux中命令cat.more.less均可用来查看文件内容,主要区别有:cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况:m ...

  8. 20145222《信息安全系统设计基础》Linux常用命令汇总

    学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...

  9. linux常用命令的介绍

    本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...

随机推荐

  1. xshell连接虚拟机linux系统失败问题

    问题:在xshell新建对话弹出的对话框中输入ip地址后,确定并没有弹出输入用户名和密码对话框 直接显示连接失败 Could not connect to ): Connection failed. ...

  2. Unity Lighting - Emissive Materials 自发光材质(九)

      Emissive Materials 自发光材质 Whilst Area Lights are not supported by Precomputed Realtime GI, similar ...

  3. Centos7部署Kubernetes集群(单工作节点)+配置dashboard可视化UI

    目标:docker+kubernetes+cadvosor+dashboard 一:物理硬件 两台虚拟机(centos7):一台做为主节点(master),一台做为工作节点(node) [root@M ...

  4. Redis5.0:现公测全免费,点击就送,注册账号,即开即用

    华为云分布式缓存服务Redis,是华为云服务的一款核心产品. 分布式缓存Redis是一款内存数据库服务,基于双机热备的高可用架构,提供单机.主从.集群等丰富类型的缓存类型. 现推出最新版本Redis5 ...

  5. 译 - 高可用的mesos计算框架设计

    原文地址 http://mesos.apache.org/documentation/latest/high-availability-framework-guide/ 阅读建议:有写过或者看过Mes ...

  6. 所见即所得:七大无需编程的DIY开发工具

    现如今,各种DIY开发工具不断的出现,使得企业和个人在短短几分钟内就能完成应用的创建和发布,大大节省了在时间和资金上的投入.此外,DIY工具的出现,也帮助广大不具备专业知识和技术的“移动开发粉”创建自 ...

  7. linux-sftp-指定端口号登录远程主机

    sftp -oPort=60001 root@192.168.0.254 -o选项来指定端口号 -oPort=远程端口号

  8. ie6下,莫名被复制出一段文字解决

    在IE6下使用浮动可能会出现文字重复的情况. 在IE6下,浮动层之间有注释文字的话,之前那个浮动层的内容文字就有可能遭遇一个“隐形”的复制,但是代码里查看文字可并没有多出来. 看个例子: HTML & ...

  9. 团队计划第二期Backlog

    团队计划第二期Backlog 一. 计划会议过程        今天中午我们小组就我们团队开发第二阶段的冲刺召开计划会议,总结了第一阶段开发的问题.不足和经验教训,然后对本次冲刺计划进行了合理的规划和 ...

  10. 智能客服 对话实现--python aiml包

    利用了python的aiml包进行应答 什么是AIML? AIML是Richard Wallace开发的. 他开发了一个叫A.L.I.C.E(Artificial Linguistics Intern ...