• 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. RabbitMQ各协议异同详解

    一.官网介绍 Which protocols does RabbitMQ support? RabbitMQ supports several messaging protocols, directl ...

  2. HBASE理论篇

    1.Hbase是什么 HBase是一种构建在HDFS之上的分布式.面向列的存储系统.在需要实时读写.随机访问超大规模数据集时,可以使用HBase. 尽管已经有许多数据存储和访问的策略和实现方法,但事实 ...

  3. JAVA基础学习之路(十二)链表

    定义链表的基本结构: class Link {//外部类 //内部类,只为链表类服务 private class Node {//定义节点类 private String data;//保存的数据 p ...

  4. Python常用模块之PIL

    官方网址:http://www.pythonware.com/products/pil/index.htm Python Imaging Library (PIL) Python图像库(PIL)将图像 ...

  5. python基础知识-8-三元和一行代码(推导式)

    python其他知识目录 1.三元运算(三目运算) 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值格式:[on_true] if [expression] else [on_false]re ...

  6. ArrayList中ensureCapacity的使用与优化

    对于ArrayLis中有一个方法ensureCapacity(int n),这个方法可以对ArrayList低层的数组进行扩容,显示的调用这个函数,如果参数大于低层数组长度的1.5倍,那么这个数组的容 ...

  7. React Native 【学习总结】-【常用命令】

    前言 刚接触RN,相信很多人无从下手,不知道下一步要干什么,能干什么,本次学习围绕这个问题,将RN的常用命令总结一下,帮助你快速上手 架构理解 光知道命令的作用,远远不够,如果知道命令背后的意义,才能 ...

  8. ECharts模块化使用5分钟上手

    什么是EChats? 一句话: 一个数据可视化(图表)Javascript框架,详细?移步这里,类似(推荐)的有 HighCharts,其他? 嗯,先看看吧-- 快速上手: 模块化单文件引入(推荐). ...

  9. Scrum立会报告+燃尽图(Beta阶段第二周第三次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411 项目地址:https://coding.net/u/wuyy694 ...

  10. Week4_Linux书本一二两章

    第一章的学习内容就是对Linux内核有一个基本的了解,同时知道一些关于Linux的知识. 学习Linux,可以自己有一台装有Linux操作系统的机器,源代码的作用无可替代: Linux发展历程简介:L ...