• 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. 原生 js 简单实现 Promise

    写在思否,欢迎各位大佬给出建议: https://segmentfault.com/a/1190000018530433

  2. 【实用】巧用For xml 生成HTML代码

    可以利用SQL的For xml直接生成HTML结构,比如我想生成如下结构: <li> <img src="..."/> <input type=&qu ...

  3. P,V操作及同步互斥实例

    无论是计算机考研.计算机软件水平考试.计算机操作系统期末考试还是其他计算机岗位考试,P.V原语操作都是一个常考点.下面笔者总结了关于P.V操作的一些知识. 信号量是最早出现的用来解决进程同步与互斥问题 ...

  4. 136.只出现一次的数字 leetcode ^运算符 JavaScript解法

    leetcode上的一道题简单题 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间 ...

  5. linux ——使用find如何快速替换所有相同参数

    在生成环境上有时候需要大规模修改某一配置里的参数,但是该参数存在多个地方,比如IP地址 端口 项目名等,特别是项目名称混乱想统一 find  /项目地址 -type f |xargs grep &qu ...

  6. 亚马逊AWS业务副总裁:如何在基础设施上降成本

    腾讯科技 林靖东 11月17日编译 亚马逊Amazon Web Services业务的副总裁.著名工程师詹姆斯汉密尔顿(James Hamilton)在AWS re:Invent大会上解释了公司是如何 ...

  7. [笔记] mysql5.6一些编译参数

    cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE ...

  8. linux中使用wget设置参数防止中文乱码问题

    在linux中一般会用到wget命令来请求远程的某个文件,此时,文件中会有一些中文字符或者中文汉字,要保持不出现"乱码"就需要在后面加上参数,如下图所示: 其中的 --restri ...

  9. Summarize to the Power of Two(map+思维)

    A sequence a1,a2,…,ana1,a2,…,an is called good if, for each element aiai, there exists an element aj ...

  10. Android 7.1.1 又出幺蛾子了 —— 再谈 Android 上的 Wifi 连接

    在之前的博客文章中,我写了点在 Android 6 系统中连接到指定名称的 Wifi 的体验.然而,在 Android 7 中,有一些东西又变化了.另外就是在那篇文章中我说要提供代码,结果拖到这篇文章 ...