• 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. Python小白学习之如何添加类属性和类方法,修改类私有属性

    如何添加类属性和类方法,修改类私有属性 2018-10-26  11:42:24 类属性.定义类方法.类实例化.属性初始化.self参数.类的私有变量的个人学习笔记 直接上实例: class play ...

  2. InTelliJ 字体调整

    Java IDE 工具InTelliJ 调整字体大小 1.File -> Settings 2.左上的搜索框中输入 font. 等待自动查找结果. 3.修改size 大小

  3. fastCMS数据库相关操作类

    fastCMS针对数据库的操作有以下几个类: 1.[paging_Class]分页类 此类用于分页检索数据库内符合条件的记录 1) 支持百万级数据分页 2) 支持多种类型的SQL语法,比如 Left ...

  4. MapPartition和Map的区别

    在Spark中有map和mapPartitions算子,处理数据上,有一些区别 主要区别: map是对rdd中的每一个元素进行操作: mapPartitions则是对rdd中的每个分区的迭代器进行操作 ...

  5. UVa 10071

    简单运动学公式 v=v0+at x=v0t+1/2*a*t^2=2vt #include<stdio.h> int main() { int v, t; while((scanf(&quo ...

  6. Python基础灬函数补充(作用域,迭代器,生成器)

    变量作用域 函数里面操作外部变量时,作用域仅限于函数里面. var1 = 123 def func(): var1 = 456 print("函数里:", var1) func() ...

  7. curl常用用法

    -v显示请求详细信息 curl www.baidu.com -v -X 指定请求方式 GET请求 curl -X GET http://localhost:8080/search?data=123 # ...

  8. Chrome 鲜为人知的秘籍(内部协议)&&Chrome功能指令大全

    楼主以 Chrome 版本 39.0.2171.95 m 为例,耗费2小时的记录: chrome://accessibility 用于查看浏览器当前访问的标签,打开全局访问模式可以查看:各个标签页面的 ...

  9. PIGCMS 关闭聊天机器人(小黄鸡)

    无脑操作举例 1.找到 WeixinAction.class.php 文件,路径: 你的版本\PigCms\Lib\Action\Home 2.查询 function chat ,在 chat() 函 ...

  10. music, let's go

    最近研究个新玩意,叫window.AudioContext;不懂?没关系,我也是才接触,这完全可以说个全新领域,这玩意干啥的?顾名思义,媒体上下文,也就是你媒体的数据分析,就是一串数据啊?那有啥用呢? ...