`
mmdev
  • 浏览: 12845769 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Linux下的五个查找命令:grep、find、locate、whereis、which

 
阅读更多

1、grep

grep(General Regular Expression Parser,通用规则表达式分析程序)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

它的使用语法为:

grep [选项] pattern [文件名]

. 匹配任意一个字符
* 匹配0 个或多个*前的字符
^ 匹配行开头
$ 匹配行结尾
[] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,
例如[a-z]表示字母a 至z 中的任意一个
\ 转意字符
命令中的选项为:
-b 显示块号
-c 仅显示各指定文件中包含模式的总行数
-i 模式中字母不区分大小
-h 不将包含模式的文件名显示在该行上
-l 仅显示包含模式的文件名
-n 显示模式所在行的行号
-s 指定文件若不存在或不可读,不提示错误信息
-v 显示所有不包含模式的行

其中,pattern为所要匹配的字符串。如在/etc/passwd文件下查找包含“carey”字符的行:

$grep carey /etc/passwd

要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。

$grep 'test' d*

显示所有以d开头的文件中包含test的行。

$ls -l | grep '^public'

通过管道过滤ls -l输出的内容,只显示以public开头的行。

后面的^字符强制grep命令只在每行的开头找public。整个搜索模式(pattern)用单引号括起来,使shell不理会它们。shell只将单引号去掉,将搜索模式送给grep命令。

$grep -i 'hello world' menu.h main.c

显示在menu.h和main.c文件中匹配“hello world”的行,忽略大小写。

例如:

grep 'sample' -R *

2、find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  find <指定目录> <指定条件> <指定动作>

  - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

  - <指定条件>: 所要搜索的文件的特征。

  - <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find的使用实例:

$find . -name 'my*' –ls

搜索当前目录(含子目录,下同)中所有文件名以my开头的文件,并显示它们的详细信息。

$find /home -user rtos

搜索/home下拥有者为rtos的文件

$find . -type f -mmin -10

搜索当前目录中,在过去10分钟中更新过的所有的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

$find / -type f -size +100M

查找系统中所有大于100M的文件

说明:如果你要寻找一个档案的话,那么使用 find 会是一个不错的主意。不过,由于 find 在寻找数据的时候相当的耗硬盘,所以没事情不要使用 find 啦!有更棒的指令可以取代呦,那就是 whereis 与 locate 咯~

3、locate

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate命令的使用实例:

$locate /etc/sh

搜索etc目录下所有以sh开头的文件。

$locate -i ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

4、whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whereis命令的使用实例:

$whereis grep

grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz

5、which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which命令的使用实例:

$which grep

/bin/grep

转载自:http://www.cnblogs.com/wanqieddy/archive/2011/07/15/2107071.html

分享到:
评论

相关推荐

    Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本.zip

    查看 Linux 命令帮助信息 - 关键词:help, whatis, info, which, whereis, man Linux 文件目录管理 - 关键词:cd, ls, pwd, mkdir, rmdir, tree, touch, ln, rename, stat, file, chmod, chown, locate, find, cp, ...

    Linux命令笔记

    4:whereis 搜索命令所在目录级帮助文档路径 语法:whereis[命令名称] 5:grep 在文件中搜索字串匹配的行并输出 语法:grep -iv[指定字串][文件] 6:uname 显示当前操作系统名称 常用命令/压缩解压 1:gzip 压缩文件 ...

    Linux常见命令与shell脚本

    1.24 whereis和which查找命令所在目录 13 1.25 grep搜索文件内容 13 1.26 tar文档管理 14 1.27 gzip/gunzip 和 bzip2/bunzip2文件压缩/解压缩 15 1.28 unzip winzip文件解压缩 17 1.29 其他常用命令 17 2 vi编辑器 ...

    Linux基础知识(4): 文件搜索命令

    文章目录1 文件搜索——locate2 命令搜索——whereis与which3 文件名搜索——find命令4 字符串搜索——grep 注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/105856510 1 文件...

    linux-tutorial:Linux教程,主要内容:Linux命令,Linux系统运维,软件运维,精选常用Shell脚本

    help-关键词: help , whatis , info , which , whereis , man cd , ls , pwd , mkdir , rmdir , tree , touch , ln , rename , stat , file , chmod , chown , locate , find , cp , mv , ...

    Linux命令搜索工具linux-command.zip

    diff、diffstat、file、find、git、gitview、ln、locate、lsattr、mattrib、mc、mcopy、mdel、mdir、mktemp、mmove、mread、mren、mshowfat、mtools、mtoolstest、mv、od、paste、patch、rcp、rhmask、rm、slocate...

    Linux指令一周通 (技术图书大系).azw3

    1.83 whereis指令:查找文件 1.84 which指令:查找文件 1.85 zip指令:压缩文件 1.86 zipinfo指令:显示压缩文件的信息 第2天 文本编辑指令 2.1 col指令:过滤控制字符 2.2 colrm指令:删除指定的列 2.3 comm指令:...

    Linux命令大全(CHM格式离线版)

    whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon...

    Linux命令大全完整版

    whereis 104 which 105 cat 105 chattr(change attribute) 106 chgrp(change group) 106 chmod(change mode) 107 chown(change owner) 108 cksum(check sum) 109 cmp(compare) 109 cp(copy) 110 cut 111 indent...

    Linux系统总复习.txt

    whereis 帮助文档 find -name -iname -size -user -atime -ctime -mtime -type -inum -perm -exec(查询结果中直接执行) locate 在数据库中按文件名查找 updatadb 强制更新数据库 grep -i -v -i 忽略大小写 -v ...

    Linux命令大全

    whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon...

    linux.chm文档

    whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经...

    2009 达内Unix学习笔记

    rm –f 文件 只要是该文件或者目录的拥有者,无论是否有权限删除,都可以用这个命令参数强行删除。 rm -rf * 删除所有文件及目录 rmdir 删除空目录。只可以删除空目录。 ln 创建硬链接或软链接,硬链接=同一文件的...

Global site tag (gtag.js) - Google Analytics