• 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. katalon系列十六:代码运行时实时创建元素对象或列表

    Katalon的常规方法是先抓取元素并保存到仓库,在脚本中需要用到的时候调取,但假如元素属性和个数是可变的,就不能事先保存到仓库了,需要在脚本运行时实时创建. 代码运行时实时创建一个元素对象的例子im ...

  2. Windows下Mongo分片及集群

    这里简单介绍一下windows下mongodb的分片设置和集群搭建,希望能够为迷茫的新手起到一点点作用.其实windows下与linux下思路是一致的,只是绑定时的ip,与端口号不同,linux下可以 ...

  3. JY播放器【蜻蜓FM电脑端,附带下载功能】

    今天给大家带来一款神器----JY播放器.可以不用打开网页就在电脑端听蜻蜓FM的节目,而且可以直接下载,对于我这种强迫症患者来说真的是神器.我是真的不喜欢电脑任务栏上面密密麻麻. 目前已经支持平台(蜻 ...

  4. CSP201609-2:火车购票

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...

  5. POJ 1417 并查集 dp

    After having drifted about in a small boat for a couple of days, Akira Crusoe Maeda was finally cast ...

  6. Node2vec 代码分析

    Node2vec 代码从Github上clone到本地,主要是main.py和node2vec.py两个文件. 下面把我的读代码注释放到上面来, import numpy as np import n ...

  7. 创建image

    摘要: 本节演示如何通过 Web GUI 和 CLI 两种方法创建 Image. 本节演示如何通过 Web GUI 和 CLI 两种方法创建 Image. OpenStack 为终端用户提供了 Web ...

  8. daterangepicker时间段插件

    1.序言: daterangepicker是Bootstrap的一个时间组件,使用很方便 用于选择日期范围的JavaScript组件. 设计用于Bootstrap CSS框架. 它最初是为了改善报表而 ...

  9. ORM(object relational Maping)

    ORM即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中.本质上 ...

  10. ASP.NET MVC5 学习系列之模型绑定

    一.理解 Model Binding Model Binding(模型绑定) 是 HTTP 请求和 Action 方法之间的桥梁,它根据 Action 方法中的 Model 类型创建 .NET 对象, ...